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

2014-11-24 17:22:11 · 作者: · 浏览: 0

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


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


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


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


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


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


五、实验一
备份完成后,我们把控制文件删除掉,然后用过去的控制文件来恢复,看看是否能恢复数据库
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/b