这几天磁带机坏了,于是只能手工写RMAN的备份脚本。
为了防止共享存储发生意外,所以RMAN的备份集没有放到 ASM共享存储中。而且RAC节点本地都有不小的剩余空间 ,但是完全备份到一台节点中,空间又不够,于是想到把备份集分别放置在各自节点的本地硬盘中 。
根据以前提供的脚本发现一个问题就是,在删除过期备份集中,只能删除一个节点的备份集,不能删除另外一个的 。
如果你的备份集放置在共享存储中,没有任何问题。但是备份集放置在各自本地盘中,就会出现另外一个节点备份集 无法删除。 ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE disk;
run{
allocate channel d1 device type disk;
allocate channel d2 device type disk;
backup as compressed backupset DATABASE include CURRENT controlfile;
delete noprompt obsolete redundancy 1;
release channel d1;
release channel d2;
}
为了防止共享存储发生意外,所以RMAN的备份集没有放到 ASM共享存储中。而且RAC节点本地都有不小的剩余空间 ,但是完全备份到一台节点中,空间又不够,于是想到把备份集分别放置在各自节点的本地硬盘中 。
根据以前提供的脚本发现一个问题就是,在删除过期备份集中,只能删除一个节点的备份集,不能删除另外一个的 。
如果你的备份集放置在共享存储中,没有任何问题。但是备份集放置在各自本地盘中,就会出现另外一个节点备份集 无法删除。 ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE disk;
run{
allocate channel d1 device type disk;
allocate channel d2 device type disk;
backup as compressed backupset DATABASE include CURRENT controlfile;
delete noprompt obsolete redundancy 1;
release channel d1;
release channel d2;
}
经过多次尝试,终于写好了正确的脚本,删除各自的过期备份,就是需要分配2个维护通道。
正确的脚本应该是:
此脚本,必须保证 各个节点都需要有 /back/目录
这样一个备份脚本,只需要在一台节点中运行,即可完成备份和删除操作。
查看各节点备份集:
节点1:
nwdb1:/nwback/backup#ls -l
total 419874736
-rw-r----- 1 oracle dba 69699559424 Jan 10 01:27 full_45otm6fh_1_1_19589
-rw-r----- 1 oracle dba 68617748480 Jan 10 01:44 full_47otm7ft_1_1_19591
-rw-r----- 1 oracle dba 8249638912 Jan 10 01:46 full_49otm8gq_1_1_19593
-rw-r----- 1 oracle dba 68406444032 Jan 10 01:59 full_4aotm8ko_1_1_19594
节点2:
nwdb2:/nwback/backup#ls -l
total 262353984
-rw-r----- 1 oracle dba 64775233536 Jan 10 01:28 full_46otm6f3_1_1_19590
-rw-r----- 1 oracle dba 69548843008 Jan 10 01:48 full_48otm7h8_1_1_19592
点击(此处)折叠或打开
run{
ALLOCATE CHANNEL ch00 TYPE DISK connect 'sys/oracle@rac1';
ALLOCATE CHANNEL ch01 TYPE DISK connect 'sys/oracleV@rac2';
backup filesperset 20 database format '/back/backup/full_%U_%s' plus archivelog format '/back/arch_%U_%s_%h' DELETE all INPUT ;
release channel ch00;
release channel ch01;
}
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE disk connect 'sys/oracle@racj1';
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE disk connect 'sys/oracle@rac2';
crosscheck backup device type disk;
report obsolete device type disk;
delete noprompt obsolete redundancy 1 device type disk;
ALLOCATE CHANNEL ch00 TYPE DISK connect 'sys/oracle@rac1';
ALLOCATE CHANNEL ch01 TYPE DISK connect 'sys/oracleV@rac2';
backup filesperset 20 database format '/back/backup/full_%U_%s' plus archivelog format '/back/arch_%U_%s_%h' DELETE all INPUT ;
release channel ch00;
release channel ch01;
}
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE disk connect 'sys/oracle@racj1';
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE disk connect 'sys/oracle@rac2';
crosscheck backup device type disk;
report obsolete device type disk;
delete noprompt obsolete redundancy 1 device type disk;
这样一个备份脚本,只需要在一台节点中运行,即可完成备份和删除操作。
查看各节点备份集:
节点1:
nwdb1:/nwback/backup#ls -l
total 419874736
-rw-r----- 1 oracle dba 69699559424 Jan 10 01:27 full_45otm6fh_1_1_19589
-rw-r----- 1 oracle dba 68617748480 Jan 10 01:44 full_47otm7ft_1_1_19591
-rw-r----- 1 oracle dba 8249638912 Jan 10 01:46 full_49otm8gq_1_1_19593
-rw-r----- 1 oracle dba 68406444032 Jan 10 01:59 full_4aotm8ko_1_1_19594
节点2:
nwdb2:/nwback/backup#ls -l
total 262353984
-rw-r----- 1 oracle dba 64775233536 Jan 10 01:28 full_46otm6f3_1_1_19590
-rw-r----- 1 oracle dba 69548843008 Jan 10 01:48 full_48otm7h8_1_1_19592
因为主机以前是磁带库备份的,所以list backup 会产生很多磁带库备份的信息和磁盘的信息。
如果只想查看磁盘的备份信息,只需要在后面加上 deice type disk;
同样,删除或者检查备份信息 都加上 deice type disk;
所以我在脚本中 加上了
crosscheck backup device type disk;
report obsolete device type disk;
如果只想查看磁盘的备份信息,只需要在后面加上 deice type disk;
同样,删除或者检查备份信息 都加上 deice type disk;
所以我在脚本中 加上了
crosscheck backup device type disk;
report obsolete device type disk;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/501889/viewspace-1069142/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/501889/viewspace-1069142/