互联网服务AIXOracle备份

AIX下Oracle备份草稿

备份目的

将数据迁移至其他环境使用。
运行环境

AIX + Oracle 9i(primary + standby),数据文件大小约为几百G。
备份方案

考虑到主从数据库的运行环境,采用在standby数据库上进行备份,从而可以不影响业务系统的运行。



ORACLE数据库有三种标准的备份:导出/导入(EXPORT/IMPORT) 、冷备份、热备份。导出备份是一种逻辑备份,这种方法包括读取一系列的数据库日志,并写入文件中,这些日志的读取与其所处位置无关。
      冷备份和热备份是物理备份(也称低级备份),它涉及到组成数据库的文件,但不考虑逻辑内容。

下面分别进行考虑。


冷备份



冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。冷备份的优点是:

  1、 是非常快速的备份方法(只需拷文件)

  2、 容易归档(简单拷贝即可)

  3、 容易恢复到某个时间点上(只需将文件再拷贝回去)

  4、 能与归档方法相结合,做数据库“最佳状态”的恢复。

  5、 低度维护,高度安全。

但冷备份也有如下不足:

  1、 单独使用时,只能提供到“某一时间点上”的恢复。

2、 在实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,

       在冷备份过程中,数据库必须是关闭状态。

  3、 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。

  4、 不能按表或按用户恢复。

  如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:

   1、 所有数据文件

  2、 所有控制文件

  3、所有联机REDO LOG文件

  4、 Init.ora文件(可选)

  值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。

  

  具体备份步骤如下(举例):   

<1>以DBA用户或特权用户登录,查询动态性能视图v$datafile、v$controlfile可以分别列出数据库的数据文件以及控制文件。   

  SQL> select name from v$datafile;   

NAME   

-------------------------

/u02/oradata/db01/system01.dbf   

/u02/oradata/db01/undotbs01.dbf   

/u02/oradata/db01/sysaux01.dbf   

/u02/oradata/db01/users01.dbf   

SQL>; select name from v$controlfile;   

NAME   

-----------------------------

/u02/oradata/db01/control01.ctl   

/u02/oradata/db01/control02.ctl   

/u02/oradata/db01/control03.ctl   

/u01/app/oracle/bak/control04.ctl   

<2>以DBA用户或特权用户关闭数据库。   

SQL>; conn /  as sysdba;   

Connected.   

SQL>shutdown normal   

Database closed.   

Database dismounted.   

ORACLE instance shut down.   

<3>复制数据文件,复制时应该将文件复制到单独的一个硬盘或者磁盘上。控制文件是相互镜像的,因此只需复制一个控制文件即可。   

cp /u02/oradata/db01/*.dbf  /u01/app/oracle/bak   

cp /u02/oradata/db01/*.ctl  /u01/app/oracle/bak   

<4>启动例程打开数据库。   

SQL> conn / as sysdba;   

Connected to an idle instance.   

SQL> startup   



评估:由于公司不具备AIX运行环境,暂不考虑


热备份

热备份是在数据库运行的情况下,采用archive log mode方式备份数据库的方法。

热备份要求数据库处于archive log模式下操作,并需要大量的档案空间。一旦数据库处于archive log模式,就可以进行备份了,当执行备份时,只能在数据文件级或表空间进行。   

1、优点:   

               <1>可在表空间或数据文件级备份,备份时间短。   

<2>可达到秒级恢复(恢复到某一时间点上)。   

               <3>可对几乎所有数据库实体作恢复。   

          <4>恢复是快速的,在大多数情况下在数据库仍工作时恢复。   

<5>备份时数据库仍可用。

2、缺点:   

         <1>因难以维护,所以要特别仔细小心,不允许“以失败而告终”。   

         <2>若热备份不成功,所得结果不可用于时间点的恢复。   

         <3>不能出错,否则后果严重。
Rman方式(热)

Recovery Manager(RMAN)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN也允许您进行增量数据块级别的备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。而且,通过RMAN提供的接口,第三方的备份与恢复软件如veritas将提供更强大的备份与恢复的管理功能。通过RMAN,也提供了其它更多功能,如数据库的克隆、采用RMAN建立备用数据库、利用RMAN备份与移动裸设备(RAW)上的文件等工作将变得更方便简单。9i的RMAN通过增强的自动配置与管理功能,以及特有的块级别的恢复,将使备份与恢复工作变得更加快捷与完美。9i的RMAN有如下特征特性:

·自动的备份与恢复

·方便的备份归档日志

·自动检测新的数据文件

·支持增量备份

·最大限度的减少备份与恢复的错误

·减少恢复的时间

·在热备份中不会产生额外的redo日志

·腐烂数据块的自动检测

·并行的备份与恢复操作

·在线备份时,表空间不用置于备份模式



评估:可以采用一次性全量RMAN的方式进行备份,命令参考如下:

run {

backup database include current controlfile format '/orabackup/rmanbk/%U_%s.bak';

sql 'alter system archive log current' ;

ALLOCATE CHANNEL node_c1 DEVICE TYPE DISK CONNECT 'sys/sys@gdtel1';

ALLOCATE CHANNEL node_c2 DEVICE TYPE DISK CONNECT 'sys/sys@gdtel2';

sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';

backup archivelog all delete input format '/orabackup/rmanbk/%U_%s.bak';

}


联机热备份

热备份是一种数据库的处于打开时的物理备份,因为数据库在不断发生改变,因此备份的文件必然是不一致的,这就要求数据库必须处于归档日志模式。



热备份的一般流程:

      查看数据库是否处于归档日志模式,若不是,将数据库置为归档日志模式。      



--将表空间置为热备份模式(以users 表空间为例)l

Alter tablespace users begin backup;

      --物理拷贝数据文件l

Sql>host copy c:oracleora92user01.dbf d: hotbackup;      



      结束表空间的热备份模式

Alter tablespace users end backup;

    相同方法备份其他表空间(readl only 和 offline 表空间不能置为热备份模式)

      --备份二进制的控制文件l

Alter database backup control file to ‘d:oraclehotbackcontrolfile.ctl’ reuse;--reuse 表示当文件存在时覆盖。



评估:虽然是热备份,但还是一种对数据文件在操作系统级别的拷贝,因为恢复时不能提供AIX环境,所以暂时不考虑。
Exp导出

EXPORT将数据库中数据备份成一个二进制系统文件称为“导出转储文件”(EXPORT DUMP FILE),并将重新生成数据库写入文件中。

EXPORT 的命令可以交互式进行,各参数的具体含义如下:



关键字         说明(默认)                    关键字                    说明(默认)

--------------------------------------------------------------------------

USERID       用户名/口令               FULL                    导出整个文件 (N)

BUFFER      数据缓冲区大小           OWNER                   所有者用户名列表

FILE          输出文件 (EXPDAT.DMP) TABLES                  表名称列表

COMPRESS   导入到一个区 (Y)              RECORDLENGTH IO 记录的长度

GRANTS      导出权限 (Y)             INCTYPE                增量导出类型

INDEXES   导出索引 (Y)        RECORD                 跟踪增量导出 (Y)

DIRECT     直接路径 (N)        TRIGGERS              导出触发器 (Y)

LOG        屏幕输出的日志文件  STATISTICS       分析对象 (ESTIMATE)

ROWS        导出数据行 (Y)            PARFILE                 参数文件名

CONSISTENT      交叉表的一致性 (N)   CONSTRAINTS          导出的约束条件 (Y)



OBJECT_CONSISTENT   只在对象导出期间设置为读的事务处理 (N)

FEEDBACK               每 x 行的显示进度 (0)

FILESIZE                  每个转储文件的最大大小

FLASHBACK_SCN       用于将会话快照设置回以前状态的 SCN

FLASHBACK_TIME      用于获取最接近指定时间的 SCN 的时间

QUERY                   用于导出表的子集的 select 子句

RESUMABLE            遇到与空格相关的错误时挂起 (N)

RESUMABLE_NAME     用于标识可恢复语句的文本字符串

RESUMABLE_TIMEOUT  RESUMABLE 的等待时间

TTS_FULL_CHECK       对 TTS 执行完整的或部分相关性检查

TABLESPACES            要导出的表空间列表

TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)

TEMPLATE               调用 iAS 模式导出的模板名



在进行导出备份时我们要考虑一点问题,那就是导出的一致性,在导出过程中导出每读一次就读取一个表,因而尽管导出是在一个特点时自己开始的,但不同的表读取的时间不同,因此,导出开始读一个表时,此时表中的数据才是导出的数据,这样当大多数表按内部关键字和外部关键字相互联系时,在导出过程中这些相关联表的改变就会导致导出的不一致性,要避开这个,我们可以将导出过程安排在不对表操作的时候进行。另外,当ORACLE中RESTRICTEP CONSISTENT 选项就可以保证导出数据一致性。



评估:该方式在只关心业务数据的情况下可以使用,需要注意的导出文件大小的限制,因为有的系统不支持超大文件。


第三方工具

赛门铁克的Veritas,IBM的TSM,EMC的legato,CA ARCserve Backup等



评估:千变万化,终归脱离不了底层对RMAN的调用,但向用户提供了友好的图形界面,多种可选择的备份方式和策略,完善的备份集管理方式,如果有的话一定要充分利用。




恢复方案

请查阅相关资料
总结

综合各方面因素,采用逻辑导出或者RMAN备份的方式,为了确保万无一失,可以两种手段并举。
参与1

0同行回答

“答”则兼济天下,请您为题主分忧!

提问者

hotmail
软件开发工程师hotmail
擅长领域: 数据库服务器云计算

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2012-02-08
  • 关注会员:1 人
  • 问题浏览:3836
  • X社区推广