分类:
2008-10-16 19:35:49
恢复管理维护任务
这部分主要介绍一下如何管理维护RMAN库和快速恢复区:
1、没有恢复目录的情况下如何管理RMAN库
2、交叉验证备份(CROSSCHECKING BACKUP)
3、删除备份
4、利用RMAN删除数据库
5、多个通道的情况下交叉验证和删除操作
6、如何改变一个备份记录的状态
7、归档日志目录和手工拷贝
8、修改RMAN存储库目录
9、维护快速恢复区
没有恢复目录的情况下管理RMAN存储库
备份控制文件:
如果没有恢复目录,控制文件的备份更加重要。要通过多个镜像控制文件或者操作系统镜像来备份变化了的控制文件。另外最好要配置控制文件的自动备份。
CONTROLFILE AUTOBACKUP ON
注意:如果从自动备份或者其他备份恢复了控制文件,最近执行的CONFIGURE配置内容将会被覆盖,回到备份时刻的设置。
监控控制文件记录重写:
没有恢复目录的情况下,oracle的控制文件记录了所有的历史备份记录,为了保证控制文件不会无限制的增长,oracle提供了一个可以设置控制文件保留时间的阀值的初始化参数:CONTROL_FILE_RECORD_KEEP_TIME.
例如我们设置了CONTROL_FILE_RECORD_KEEP_TIME=14,任何超过14天的纪录都有可能被覆盖,如果没有超过14天的记录,oracle将扩展控制文件的大小,如果由于受到操作系统的限制(比如磁盘空间满)无法扩展控制文件的大小,oracle会强制覆盖最老的记录并且在alter.log中记录这一情况。如下所示:
kccwnc: following controlfile record written over: RECID #72 Recno 72 Record timestamp 07/28/00 22:15:21 Thread=1 Seq#=3460 Backup set key: stamp=372031415, count=17 Low scn: 0x0000.3af33f36 07/27/00 21:00:08 Next scn: 0x0000.3af3871b 07/27/00 23:23:54 Resetlogs scn and time scn: 0x0000.00000001 08/05/99 10:46:44 Block count=102400 Blocksize=512 |
快速恢复区Flash Recovery Area和控制文件记录保存时间参CONTROL_FILE_RECORD_KEEP_TIME之间的相互作用
如果我们在使用快速恢复区保留RMAN备份的话,控制文件将记录恢复区中文件的创建记录,因为一般来讲文件创建的记录要比执行备份的信息要晚,如果有备份文件超过了CONTROL_FILE_RECORD_KEEP_TIME参数所规定的时间,ORACLE试图删除这些这些文件,否则ORACLE将增加控制文件的大小并且在alter.log中记录这一情况。如下所示:
kccwnc: tring to expand controlfile section nnnn for Managed Files |
如果无法扩展控制文件,则alter.log中将出现以下信息:
WARNING: Managed File filename is unknown to controlfile. This is the result of limitation in control file size that could not keep all recovery |
也就是不能满足备份的保留冗余策略来保存备份了。
为了避免和降低这种情况的发生,我们可以采取以下措施:
使用32K大小的块创建控制文件,如果想设置控制文件32K大小的BLOCK,我们必须首先把SYSTEM表空间设置成为大于或者等于控制文件使用的BLOCK SIZE.修改了控制文件BLOCK_SIZE后,必须重建控制文件。
使用BACKUP RECOVERY AREA命令备份快速恢复区使得快速恢复区的文件成为可以删除的文件, 或者减小备份保留时间或者减小备份保留冗余度维护控制文件中的RMAN备份存储库。
交叉验证备份CROSESSCHECK BACKUPS
验证备份存储库中的备份记录和磁盘(或者磁带)上的备份文件是否一致。如果用磁盘保存备份,CROSSCHECK检查文件头是否有效,如果用磁带保存备份,CROSSCHECK检查文件是否存在。备份文件的三种可能的状态为:AVAILABLE, UNAVAILABLE, and EXPIRED,我们可以用LIST命令查看或者直接查询V$BACKUP_FILES、RC_DATAFILE_COPY、RC_ARCHIVED_LOG等视图。
给出几个CORSSCHECK示例命令:
CROSSCHECK BACKUP; # checks backup sets, proxy copies, and image copies CROSSCHECK COPY OF DATABASE; CROSSCHECK BACKUPSET 1338, 1339, 1340; CROSSCHECK BACKUPPIECE TAG = 'nightly_backup'; CROSSCHECK CONTROLFILECOPY '/tmp/control01.ctl'; CROSSCHECK DATAFILECOPY 113, 114, 115; CROSSCHECK PROXY 789; |
交叉验证指定数据库文件的备份
# these CROSSCHECK commands use configured channels, which means that they # always check the disk device. If you configured an sbt channel, then RMAN # checks the sbt device, too CROSSCHECK BACKUP OF DATAFILE "ora_home/oradata/trgt/system01.dbf" COMPLETED AFTER 'SYSDATE-180'; CROSSCHECK BACKUP OF ARCHIVELOG ALL SPFILE; |
[1]