今日在做巡检的时候,发现一数据库RMAN备份时报ORA-19588错误,查看MOS
RMAN Backup Error ORA-19588: Archived Log Recid <n> Stamp <nn> Is No Longer Valid [ID 1189883.1]
Applies to:
Oracle Database - Enterprise Edition - Version 10.1.0.2 to 11.2.0.2 [Release 10.1 to 11.2]Information in this document applies to any platform.
***Checked for relevance on 24-May-2012***
Symptoms
RMAN Backup of archived logs fails with following error:
channel dev_0: starting archive log backupset
released channel: dev_0
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on dev_0 channel at 08/27/2010 07:22:55
ORA-19588: archived log recid 1485 stamp 727949642 is no longer valid
Cause
There are a few possible causes for this error :
1. Invalid records in the controlfile
Invalid and/or deleted records in the controlfile. Records might be aged out of the controlfile during the backup.复制
2. The rman backup job had been started TWICE.
The initial resync for each job identified the same set of logs to be backed up.
Both jobs were trying to backup and delete the SAME archivelog set, one of which failed eventually as the other job had
already backed up and deleted the log.
3. Incorrect syntax
The backup command being used is correct by 'syntax', however incorrect by 'logic' because RMAN will try to backup some archivelogs (archivelogs which completed till 'sysdate-1') twice in the same command:
RMAN> backup archivelog all archivelog until time 'sysdate -1' delete input ;
^^^^^^^^^^ ^^^^^^^^
This backup command is interpreted by RMAN like the following:
+ Take backup of 'all' archived logs and then delete them
and
+ Take backup of archivelogs completed till 'sysdate-1'
If we don't specify 'DELETE INPUT', the command will be succeeded, however, by doing so, we will unnecessarily backing up some of the archived logs (archivelogs which completed till 'sysdate-1') twice which doesn't seem to be the intention of above command.
Solution
1. Invalid records in the controlfile
Run the below command to synchronize the controlfile with the current status
of the backup-related information.复制
RMAN> crosscheck archivelog all;
2. No concurrent RMAN backups
Make sure that concurrent backups of the archivelogs of the SAME database are not run.
3. Correct the syntax
Correct the RMAN backup command 'logically' by removing the repeated 'archivelog' keyword:
RMAN> backup archivelog until time 'sysdate -1' delete input ;
If we wish to take backup of all archivelogs, then:
RMAN> backup archivelog all delete input ;
Addtl. Info:
ORA-19588 may be seen with 'datafile copy' as well
like:
.
RMAN-03009: failure of backup command on ch01 channel at 02/01/2013 21:30:59
ORA-19588: datafile copy RECID 1019958 STAMP 806188828 is no longer valid