RMAN备份脚本书写格式和注意事项

一、 rman信息库可以存放两个位置
 1,目标数据库的控制文件;
 2,恢复目录;

二、 控制文件里面存放记录分为两类
 1,可删除的记录归档日志文件的历史记录以及rman备份的元数据(记录备份集位置的数据)
 2,不可删除记录数据文件,联机日志文件列表等
 如果需要在控制文件中存放新的记录,则可以删除那些可删除部分,从而提供可用空间。
 注意:如果rman备份的元数据被删除,rman的备份数据失去了意义,因此rman备份的元数据很重要。

三、设置初始化参数
 controlfile_record_keep_time 来决定控制文件中可删除部分,这个参数默认是七天,表示控制文件始终保持最近七天的可删除记录,七天前的备份信息,归档日志记录被删除,如果设置为零,表 示不删除历史记录,那么控制文件的增长将会失控,因此rman的备份周期不能超过七天。

四、rman备份顺序,保证不丢失数据
 1,数据库数据文件
 2,归档日志
 3,控制文件
 4,参数文件

--------------------------------------推荐阅读 --------------------------------------

RMAN 配置归档日志删除策略

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

--------------------------------------分割线 --------------------------------------

五、实验一
 备份完成后,我们把控制文件删除掉,然后用过去的控制文件来恢复,看看是否能恢复数据库
 RMAN> run {
 2> allocate channel c1 type disk;
 3> allocate channel c2 type disk;
 4> backup database filesperset 2 format '/u02/backup/full_%d_%t_%s_%p';
 5> backup current controlfile format '/u02/backup/ctl_%d_%t_%s_%p';
 6> sql 'alter system archive log current';
 7> sql 'alter system archive log current';
 8> sql 'alter system archive log current';
 9> backup archivelog all format '/u02/backup/log_%d_%t_%s_%p' delete input;
 10> }
 备份完成后,删除所用的控制文件,我们用过去的控制文件进行恢复,是否可以恢复并打开数据库?
 RMAN> restore controlfile from  '/u02/backup/ctl_ORCL_843148742_17_1';
 RMAN> alter database mount;
 RMAN> recover database;
 RMAN-00571: ===========================================================
 RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
 RMAN-00571: ===========================================================
 RMAN-03002: failure of recover command at 03/25/2014 16:08:31
 RMAN-06054: media recovery requesting unknown log: thread 1 seq 37 lowscn 1157615
 注意:这里提示我们缺少日志文件seq37!
 说明这个备份方案有错误!有可能找不到我们的日志文件的备份级,如果是在磁盘上也不是太难,但是如果是带库就比较麻烦了!
 打开另一个会话:
 RMAN> catalog backuppiece  '/u02/backup/log_ORCL_843148747_18_1';
 cataloged backuppiece
 backup piece handle=/u02/backup/log_ORCL_843148747_18_1 recid=14 stamp=843150418
 RMAN> catalog backuppiece  '/u02/backup/log_ORCL_843148747_19_1';
 cataloged backuppiece
 backup piece handle=/u02/backup/log_ORCL_843148747_19_1 recid=15 stamp=843150442
 RMAN> catalog backuppiece  '/u02/backup/log_ORCL_843148749_20_1';
 cataloged backuppiece
 backup piece handle=/u02/backup/log_ORCL_843148749_20_1 recid=16 stamp=843150457
 RMAN>
 返回到上一个会话上:
 RMAN> recover database;
 Starting recover at 25-MAR-14
 using channel ORA_DISK_1
 starting media recovery
 如果我们先备份控制文件后备份归档日志,那么控制文件中,一定没有记录备份的归档信(备份归档信息的名称和存放的位置)

六、备份全库
 orale]$ rman target / log /tmp/rman_full.log
 RMAN> configure controlfile autobackup on;
 RMAN> configure controlfile autobackup format for device type sbt_tape to '%F';
 注:在添加数据文件和删除数据文件的时候,在数据库物理操作,它会自动备份控制文件,这样数据库有可能出现挂起现象。
 RMAN> configure controlfile autobackup format for device type disk to '%F';k to '%F';注:物理操作备份到disk
 run{
 allocate channel c1 type sbt_tape;把控制文件备份到带库上。
 backup database;
 }
 如果rman中把控制文件的自动备份打开,还是刚才的那个备份脚本,当它完成对归档备份完成以后,仍然对控制文件进行备份。
 run {
 2> allocate channel c1 type disk;
 3> allocate channel c2 type disk;
 4> backup database filesperset 2 format '/u02/backup/full_%d_%t_%s_%p';
 5> backup current controlfile format '/u02/backup/ctl_%d_%t_%s_%p';
 6> sql 'alter system archive log current';
 7> sql 'alter system archive log current';
 8> sql 'alter system archive log current';
 9> backup archivelog all format '/u02/backup/log_%d_%t_%s_%p' delete input;
 10> }
 七、Rman Log
 在rman备份的时候,有个选项是log输出,在备份的时候,oracle说明是一个选项,但是对于我们来说,备份一定要有log。
 1,备份脚本的格式
 %c:备份片的副本数
 %d:数据库名称
 %D:位于该月的第几天
 %M:位于该年的第几个月
 %n:数据库名称,向右增补到最大8个字符
 %u:一个8个字符的名称,代表备份集和创建时间
 %p:该备份集的备份片号,从1开始到创建的文件数
 %U:一个唯一的名字%u_%p_%c
 %s:备份的编号
 %t:备份的时间戳
 %T:年月日格式(YYYY-MM-DD)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b0d7559b72545d96839bca14c0cf23e0.html