日期:2014-05-16  浏览次数:20372 次

rman系列之7问rman

    第一问:是否选择增量备份?

    所有增量备份都必须先创建0级备份。0级备份相当于全库备份,但二者并不等同,因为,全库备份不包含增量备份策略。

    对users 表空间建立增量备份:

RMAN> backup incremental level=0 tablespace users;

RMAN> backup incremental level=1 tablespace users;


    如果选择了增量备份,请务必启用块修改跟踪,否则,会因块级检查而耽误了备份时间。

    可通过下列语句启用块修改跟踪:

sys@ORCL>alter database enable block change tracking;


    可通过下列语句查询是否启用块修改跟踪:

sys@ORCL>select status from v$block_change_tracking;


    可通过下列语句禁用块修改跟踪:

sys@ORCL>alter database disable block change tracking;


    需要提醒的是,备份与恢复本就是此消彼长的,备份时间、大小短了,恢复时就不得不多读几个备份集才能完成恢复操作。

    第二问:是否使用rman备份集保留策略?

    rman提供了两种备份保留策略:基于时间和基于冗余数量

    基于时间,也就是你希望数据库最早能恢复到几天前。

RMAN>configure retention policy to recovery window of n days;


    基于冗余数量

RMAN>configure retention policy to redundancy n;


    控制文件中记录的保存时间有可能对备份保留策略影响!

    对于nocatalog下创建的备份,rman的备份集信息都是保存在目标数据库的控制文件中,不过oracle数据库的控制文件并不是无限扩展,其中能够保存的记录也是有限的,控制文件保存rman备份集信息受制于初始化参数control_file_record_keep_time。以天为单位,缺省是7天。如果超过7天,而且,空间不足,则rman的信息可能会被覆盖。所以,建议,control_file_record_keep_time初始化参数要大于rman的备份保留时间。

    当前控制文件,可存储记录数和已存储记录数,可以借助v$controlfile_record_section获取。

    第三问:是否使用多个通道?

    rman支持两种备份设备:SBT(磁带)和Disk(任何带盘的东东)

    allocate channel :通道= 1:1.该命令只能在run块中运行。

RMAN>run{
allocate channel c1 device type disk format '/u01/app/oracle/backup/cn_%U';
backup tablespace users;
}


    rman会在run块执行完后自动释放掉通道。

    第四问:是否启用复合备份?

    复合备份,也就是向指定位置生成指定份数。注意,默认的flash_recovery_area是不能启用复合备份的。

RMAN> backup copies 2 tablespace users;

Starting backup at 06-AUG-12
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00004 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_8050fkdh_.dbf
channel ORA_DISK_1: starting piece 1 at 06-AUG-12
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 08/06/2012 10:56:20
ORA-19806: cannot make duplex backups in recovery area


    需要为备份片指定名称:

RMAN> backup copies 2 tablespace users format '/u01/app/oracle/flash_recovery_area/ORCL/think_%U';

Starting backup at 06-AUG-12
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00004 name=/u01/app/oracle/oradata/ORCL/datafi