--通过备份日志发现数据库备份失败
channel c2: starting archived log backup set
released channel: c1
released channel: c2
released channel: c3
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on c2 channel at 11/13/2019 04:30:30
ORA-19588: archived log RECID 154573 STAMP 1024167886 is no longer valid
RMAN>
错误的是由于备份期间某一个归档文件在控制文件中没有找到导致备份失败,可能导致这个错误的原因主要有3个:
1、控制文件信息与归档文件信息不一致,可以使用如下命令更新控制文件信息;
2、RMAN备份任务被启动了两次;
3、错误的备份脚本语法。
对于第1种错误,可以使用下面的命令对控制文件进行更新:
- RMAN> crosscheck archivelog all;
对于第二种错误,需要检查备份任务的启动情况,不要让RMAN备份任务重复启动,对于第三种错误,通常是在备份脚本中出现了如下的写法:
- backup archivelog all archivelog until time 'sysdate -7' delete input ;
上面的脚本在RMAN中的执行过程是先备份所有的归档,然后删除归档,接着再执行备份直到sysdate-7的归档,所以执行第二步备份时会发现归档
已经被删除了,就会出现ORA-19588错误。
检查备份脚本发现,crosscheck archivelog all已经写入到备份脚本中,所以排除第一种错误,在备份脚本中也没有发现第三种情况中的错误写法。所以
怀疑NBU启动了两次备份任务,但是检查NBU日志发现,备份任务只启动了一次,但是有个奇怪的现象是针对这个系统有两个不同的备份任务,接下来
检查两个备份任务的脚本,其中一个是对数据库进行全备,同时备份所有的归档文件和控制文件,另外一个备份脚本是备份所有的归档,并删除3天前
的归档。两个备份脚本都涉及到对归档的操作,接下来检查两个任务的执行时间:
14:20:19 SYS@ssdb1(ssdb1)> select START_TIME,END_TIME,STATUS,ELAPSED_SECONDS from V$RMAN_BACKUP_JOB_DETAILS order by START_TIME;
START_TIM END_TIME STATUS ELAPSED_SECONDS
--------- --------- ----------------------- ---------------
30-OCT-19 31-OCT-19 COMPLETED WITH WARNINGS 15414
31-OCT-19 01-NOV-19 COMPLETED WITH WARNINGS 16518
01-NOV-19 02-NOV-19 COMPLETED WITH WARNINGS 25345
02-NOV-19 03-NOV-19 COMPLETED WITH WARNINGS 17378
03-NOV-19 04-NOV-19 COMPLETED 19038
04-NOV-19 05-NOV-19 COMPLETED 20009
05-NOV-19 06-NOV-19 COMPLETED 20366
06-NOV-19 07-NOV-19 COMPLETED 20461
07-NOV-19 08-NOV-19 COMPLETED 21385
08-NOV-19 09-NOV-19 COMPLETED 22322
09-NOV-19 10-NOV-19 COMPLETED 23005
10-NOV-19 11-NOV-19 COMPLETED 23984
11-NOV-19 12-NOV-19 COMPLETED WITH WARNINGS 24515
12-NOV-19 13-NOV-19 FAILED 26427
14 rows selected.
14:20:29 SYS@ssdb1(ssdb1)>
从上面的备份任务的起止时间分析,不存在两个备份任务出现交叉,以及都涉及到对归档的操作,所以不是导致ORA-19588的原因。不需要将备份任务的时间窗口进行
重新分布,也不用避免同一时间有两个备份任务执行。