Last week, because the Dataguard system was full, it caused an emergency deletion of some of the archived logs that were not applied.
Afterwards, the following command was run through Rman extracting the ASM archive log from the main library to the local disk:
rman> copy archivelog ' +data/log/archivelog/rman2_5585_697238176.dbf ' to '/u01/rman2_5585_697238176.dbf ';
Then FTP to the Dataguard server and activate the log application, allowing the Dataguard system log to be fully restored,
However, the subsequent discovery of an archived log backup error in the Rman backup of the main library is as follows:
Starting backup at 02-jun-11
Current log Archived
Archived log/u01/rman/2_5585_697238176.dbf not found or out of sync with catalog
Trying alternate file for Archivelog thread 2, sequence 5585
Released Channel:d1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR message STACK follows ===============
RMAN-00571: ===========================================================
Rman-03015:error occurred in stored script global_inc1
Rman-03015:error occurred in stored script Global_arch
Rman-03002:failure of Backup command at 06/02/2011 01:20:45
rman-06059:expected archived log not found, lost of archived log compromises recoverability
Ora-19625:error Identifying FILE/U01/RMAN2_5585_697238176.DBF
Ora-27037:unable to obtain file status
linux-x86_64 error:2: No such file or directory
Additional Information:3
Analysis:
Apparently Rman thought/u01/rman2_5585_697238176.dbf also needed backup, which I deleted from the OS after I used it,
This problem obviously does not occur if removed through Rman.
To resolve the backup issue, take the following two commands to resolve the problem:
1, crosscheck archivelog all;--Check the difference between the control file and the actual physical file
2, delete expired Archivelog all;--synchronization control file information and the actual physical file information
Theoretical support:
The information about each of the Archivelog is recorded in the Controlfile, and when we delete or change the physical files under the OS,
These archivelog messages are still recorded in the Controlfile, and when we manually clear the files in the archive directory,
These records have not been removed from the controlfile, which means Oracle does not know that the files are gone!
At this time we have to do manual cleaning.
If the crosscheck is performed separately and the delete is not performed, the backup fails because the control file's information is different from the actual information.
Actual operation Result:
--Check the difference between the control file and the actual physical file
Rman> crosscheck Archivelog All;
Using target database control file instead of recovery catalog
Allocated Channel:ora_disk_1
Channel ora_disk_1:sid=956 Instance=log1 Devtype=disk
Validation succeeded for archived log
Archive Log filename=+data/log/archivelog/1_6677_697238176.dbf recid=17370 stamp=752462211
Validation succeeded for archived log
...... Omit N Row