- 13
- 0
- 约 4页
- 2017-06-12 发布于北京
- 举报
今天在公司的数据库上看到这样的一个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: ==============================
有哪些信誉好的足球投注网站
文档评论(0)