skipping archived logs of thread 1 from sequence 29 to 46; already backed up
问题描述:删除归档的备份,在进行归档的重新备份,提示:skipping archived logs of thread 1 from sequence 29 to 46; already backed up,这个也不算报错,接着之前的ora-19625
1.进行备份,但是提示我归档已经存在,但是我已经把备份全都物理删除了,rm * /u01/app/oracle/oradata/backup 已经删除过backup下所有的备份,包括这些归档,但是提示过下边这些归档已经存在,很奇怪
然后我的备份路径下只有数据库的备份文件,没有归档备份?全部删掉重来
2.查看rman备份的归档信息,然而这个路径下是没有任何文件的,在之后find这个bak也是没有找到的
rman> list backup of archivelog all;
3.重启,重启完重新执行以下脚本,这里很有意思,看起来没有问题。
run{
allocate channel ch_1 type disk;
backup database format '/u01/app/oracle/oradata/backup/database_$t_%u_%c.bak'';
backup archivelog all format '/u01/app/oracle/oradata/backup/archive_$t_%u_%c.bak';
}
4.但是下边这个就不明白了,我就已经删除归档备份了,怎么还有这几个归档已经有备份了,直接被跳过了,而且归档文件是存在的。这里是我重启完数据库,而且shutdown immediate了一次数据库,要注意的是这时会产生归档文件,所以数据库备份的是我shutdown产生的一次归档文件,之前的该跳过还是跳过了
5.后来才知道这个原因,物理删除归档备份,数据库是知道的,但是控制文件是还有记录的,这个单词一开始不知道什么意思,这次可记住了”过期“!
rman> crosscheck backup; 这里查看一下所有的备份,这里的备份是expired过期的,但是控制文件不知道,下边就要告诉控制文件
rman> delete expired backup; 删除掉过期的备份,选择yes
6.在此进行备份,第无数次备份了,这里需要注意的是最好一行一行来,点击回车系统会检测你的语法,备份成功
7.查看一下备份的文件,这里的归档备份是没有问题的,当时调整了show all命令的参数,设置成了两个备份归档保留数,先记录一下,忽略一下show all里边设置路径%_后边的错误语法,没有改过来,这里回头再研究一下