2

I am trying to back up an oracle database from OEM, but upon completion the job report says the job failed with the following error:

RMAN-03002: failure of backup command at 07/09/2013 10:26:52
RMAN-06059: expected archived log not found, loss of archived log compromises recoverability
ORA-19625: error identifying file C:\APP\RM\FLASH_RECOVERY_AREA\RONNIE\ARCHIVELOG\2013_06_10\O1_MF_1_1508_8VDHNOLY_.ARC
ORA-27041: unable to open file
OSD-04002: unable to open file

A DBA set this database up but he is not currently available. I have tried running a crosscheck and a delete expired in RMAN but experienced the same problem when trying again.

The path it is looking in: C:\APP\RM\FLASH_RECOVERY_AREA\RONNIE\ARCHIVELOG\2013_06_10\O1_MF_1_1508_8VDHNOLY_.ARC

...does not exist on the server, but it did exist on an original machine from which the DBA copied the database. The path containing the archive log now is:

C:\APP\CS\FLASH_RECOVERY_AREA\RONNIE\ARCHIVELOG\2013_06_10\O1_MF_1_1508_8VDHNOLY_.ARC

Can anyone help?

Thanks

1 Answer 1

4

The control file (or recovery catalog) holds information about the paths to the data files, online redo log files, archived redo log files, and other information RMAN uses during backup and recovery.

Whenever redo log switch occurs, Archiver (ARCn) process copies online redo logs to archive log location specified by LOG_ARCHIVE_DEST_n initialization parameter(s) and adds the appropriate record to the control file (or recovery catalog) which contains the path to the archived log, log sequence number and other related info.

Because the path has changed, you should either update information about existing archived redo log files and their paths in the RMAN recovery repository or ignore the existing archived redo log files and perform full database backup so that you can recover your database in case of media failure.

The first scenario can be accomplished with the following commands in RMAN:

RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;

Now you can add info about existing archived redo log files using CATALOG RMAN command:

RMAN> catalog archivelog '/ora/archivelog/O1_MF_1_1508_8VDHNOLY_.ARC';

Or you can use CATALOG START WITH to catalog multiple files specifying the path to the files:

RMAN> catalog with '/ora/backups/';

Set the LOG_ARCHIVE_DEST_n initialization parameter value correctly so that new archived redo log files are copied to the appropriate locations:

SQL> alter system set log_archive_dest_1 = 
  'LOCATION=USE_DB_RECOVERY_FILE_DEST'
  scope = both;

Manually switch the redo log group to make sure ARCn copies the archived redo log files to the new location:

SQL> alter system switch logfile;

If the new archived redo log files are successfully copied to the destination you specified, you can backup the database including old archived redo log files and new ones in RMAN:

RMAN> backup database plus archivelog delete input;

In the second scenario, you perform the full backup of the database without including the archived redo log files from the now invalid path You just clean up existing records about archived redo log files in RMAN repository and make the full database backup including all subsequent archived redo log files copied to the valid location. The commands used are the same, you just omit the CATALOG command.

1
  • Thanks, this is essentially how I managed to fix the problem.
    – Ronnie
    Jul 9, 2013 at 13:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.