您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Oracle入门教程:RMAN备份归档日志的注意要点

2024/3/2 18:57:02发布23次查看
今天在公司的数据库上看到这样的一个rman备份脚本: run { allocate channel c1 type disk maxpiecesize = 2g; allocate channel
今天在公司的数据库上看到这样的一个rman备份脚本:
run {
 allocate channel c1 type disk maxpiecesize = 2g;
 allocate channel c2 type disk maxpiecesize = 2g;
 backup incremental level 1 database format '/backup/osedb_osedb01/data/%d_df_%t_%s_%p.bak'
 plus archivelog  format '/backup/osedb_osedb01/arch/%d_af_%t_%s_%p.log' all delete all input;
 release channel c1;
 release channel c2;
}
注意上面红色字体部分。我一看,感觉好像有些问题,于是在测试机上做了一下试验,,发现果然是有错误的。下面进行详细说明。
1. 首先,上面的脚本是错误的,应该将上面红色字体的第一个all去掉即可。
2. delete input和delete all input的区别
(1)如果归档日志目录只是一个时,即归档时只有一份归档日志时,上面的两种写法是没有区别的;
(2)如果归档日志目录有多个时,即归档时保存有多份归档日志时,那么:
delete input当备份了归档日志后,会删除第一个归档目录(如:log_archive_dest_1)下的所有归档日志;
delete all input则在备份了归档日志后,所有所有log_archive_dest_n中的备份的archivelog都会被删除。
3. 那么,至于什么时候可以使用all delete input或all delete all input呢?
在1,2小点中提到的写法都是在备份数据库时顺便备份归档日志的写法,如:
backup database plus archivelog delete all input;
而使用all delete all input是直接专门对数据库归档日志进行备份时使用,如:
backup archivelog all delete all input;
附加:
当在备份归档日志时,如果有些归档日志被删除了或是丢失了,那么在备份过程就就会报错rman-06059:
假如现数据库有如下的归档日志:
rman> list archivelog all;
list of archived log copies
key    thrd seq  s    low time   name
-------  ----  -------  -      ---------         -------------
59       1      35      a   16-may-11  /u01/backup/arch1/1_35_750725106.dbf
60       1      35      a   16-may-11  /u01/backup/arch2/1_35_750725106.dbf
61       1      36      a   16-may-11  /u01/backup/arch1/1_36_750725106.dbf
62       1      36      a   16-may-11  /u01/backup/arch2/1_36_750725106.dbf
现在手工在操作系统下用rm命令将36号归档日志文档删除,模拟36号归档日志丢失了,那么在执行备份归档日志时将出现:
rman> backup tablespace app plus archivelog delete all input;
starting backup at 16-may-11
current log archived
using channel ora_disk_1
archived log /u01/backup/arch1/1_36_750725106.dbf not found or out of sync with catalog
trying alternate file for archivelog thread 1, sequence 36
rman-00571: ===========================================================
rman-00569: =============== error message stack follows ===============
rman-00571: ===========================================================
rman-03002: failure of backup plus archivelog command at 05/16/2011 03:22:29
rman-06059: expected archived log not found, lost of archived log compromises recoverability
ora-19625: error identifying file /u01/backup/arch2/1_36_750725106.dbf
ora-27037: unable to obtain file status
linux error: 2: no such file or directory
additional information: 3
这就是因为缺少了36号归档日志的原因,那么现在怎么处理呢?
解决办法:
rman> crosscheck archivelog all;
或者:rman> change archivelog all crosscheck;
再次执行备份操作即可。
然后需要在rman中进行清除操作:
rman> list archivelog all;
list of archived log copies
key     thrd seq     s low time  name
------- ---- ------- - --------- ----
62      1    36      x 16-may-11 /u01/backup/arch2/1_36_750725106.dbf
61      1    36      x 16-may-11 /u01/backup/arch1/1_36_750725106.dbf
rman> delete archivelog 61,62;
released channel: ora_disk_1
allocated channel: ora_disk_1
channel ora_disk_1: sid=141 devtype=disk
list of archived log copies
key     thrd seq     s low time  name
------- ---- ------- - --------- ----
61      1    36      x 16-may-11 /u01/backup/arch1/1_36_750725106.dbf
62      1    36      x 16-may-11 /u01/backup/arch2/1_36_750725106.dbf
do you really want to delete the above objects (enter yes or no)? y
deleted archive log
archive log filename=/u01/backup/arch1/1_36_750725106.dbf recid=61 stamp=751258131
deleted archive log
archive log filename=/u01/backup/arch2/1_36_750725106.dbf recid=62 stamp=751258131
deleted 2 objects
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product