Welcome 微信登录

首页 / 数据库 / MySQL / Oracle入门教程:RMAN备份归档日志的注意要点

今天在公司的数据库上看到这样的一个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 CopiesKey    Thrd Seq  S    Low Time   Name-------  ----  -------  -      ---------         ------------- 59       1      35      A   16-MAY-11  /u01/backup/arch1/1_35_750725106.dbf60       1      35      A   16-MAY-11  /u01/backup/arch2/1_35_750725106.dbf61       1      36      A   16-MAY-11  /u01/backup/arch1/1_36_750725106.dbf62       1      36      A   16-MAY-11  /u01/backup/arch2/1_36_750725106.dbf现在手工在操作系统下用rm命令将36号归档日志文档删除,模拟36号归档日志丢失了,www.linuxidc.com那么在执行备份归档日志时将出现:RMAN> backup tablespace app plus archivelog delete all input;Starting backup at 16-MAY-11current log archivedusing channel ORA_DISK_1archived log /u01/backup/arch1/1_36_750725106.dbf not found or out of sync with catalogtrying alternate file for archivelog thread 1, sequence 36RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of backup plus archivelog command at 05/16/2011 03:22:29RMAN-06059: expected archived log not found, lost of archived log compromises recoverabilityORA-19625: error identifying file /u01/backup/arch2/1_36_750725106.dbfORA-27037: unable to obtain file statusLinux Error: 2: No such file or directoryAdditional 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.dbfRMAN> delete archivelog 61,62;released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=141 devtype=DISKList 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.dbfDo 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 objectsOracle数据库表空间日常操作Oracle入门教程:如何kill掉RMAN备份进程相关资讯      Oracle数据库  Oracle入门教程  oracle数据库教程 
  • Oracle数据库全球化  (03月01日)
  • Oracle数据库日期过滤方法性能比较  (02/02/2015 13:20:26)
  • Oracle数据库安装中端口被占用问题  (10/29/2014 07:42:24)
  • 在CentOS 6.6上搭建C++运行环境并  (10/10/2015 19:44:40)
  • Oracle数据库无法使用localhost和  (11/14/2014 16:39:10)
  • 使用SQLT来构建Oracle测试用例  (08/28/2014 06:17:41)
本文评论 查看全部评论 (0)
表情: 姓名: 字数