欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

RMAN备份时遇到ORA-19588

程序员文章站 2022-05-13 14:17:59
...

客户反映NBU备份任务失败,检查RMAN备份脚本的日志输出发现是由于ORA-19588导致备份任务终止,

客户反映NBU备份任务失败,检查RMAN备份脚本的日志输出发现是由于ORA-19588导致备份任务终止,具体报错如下:

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03009: failure of backup command on ch00 channel at 07/15/2015 11:51:47

ORA-19588: archived log recid 125609 stamp 884484359 is no longer valid

错误的是由于备份期间某一个归档文件在控制文件中没有找到导致备份失败,可能导致这个错误的原因主要有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天前的归档。两个备份脚本都涉及到对归档的操作,接下来检查两个任务的执行时间:

SQL> select START_TIME,END_TIME,STATUS,ELAPSED_SECONDS from V$RMAN_BACKUP_JOB_DETAILS order by START_TIME;

START_TIME END_TIME STATUS ELAPSED_SECONDS

------------------- ------------------- ----------------------- ---------------

2015-07-14 05:00:04 2015-07-14 07:20:31 COMPLETED 8427

2015-07-14 11:23:57 2015-07-14 11:25:27 FAILED 90

2015-07-14 11:33:34 2015-07-15 00:28:41 COMPLETED 46507

2015-07-14 16:59:36 2015-07-15 10:22:13 FAILED 62557

2015-07-15 00:31:01 2015-07-15 11:51:47 FAILED 40846

从上面的备份任务的起止时间分析,两个备份任务出现交叉,而且都涉及到对归档的操作,因此导致了ORA-19588。需要将两个备份任务的时间窗口进行重新分布,避免同一时间有两个备份任务执行。

--------------------------------------推荐阅读 --------------------------------------

RMAN备份时遭遇ORA-19571

RMAN 配置归档日志删除策略

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

--------------------------------------分割线 --------------------------------------