Thursday, August 7, 2014

Managing multiple archive log destinations with RMAN








Relevant TO:

Oracle Database - Enterprise Edition - Version 10.1.0.2 to 11.2.0.3 [Release 10.1 to 11.2]
Information in this document applies to any platform.

objective

Explain how multiple archive destinations are handled during an RMAN backup and restore process

SOLUTION

DELETE INPUT

DELETE INPUT will remove archivelogs from the first destination. It will also remove archivelogs from the second destination that was PREVIOUSLY backed up.

For example:
Backup #1
  • Backup archivelogs older than seven days from destination #1, and remove these files
  • Do not backup or remove any archivelogs in destination #2 has all files
Backup #2
  • For destination #1, backup archivelogs older than seven days and remove these files
  • For destination #2, backup archivelogs that satisfied backup criteria #1 (more than 14 days old) and remove them
Whereas a DELETE ALL INPUT will backup from one destination and delete both copies of the archivelog.

Backup and Delete from a Specified Archive Destination

If you'd like to only backup and remove from a single archive destination, use the LIKE clause:
eg:
RMAN> backup archivelog
until time 'sysdate -7'
like '/u04/oracle/admin/TEST/arch/%'
delete input;

The above will only backup and delete from the LIKE destination
If archive logs are written up to multiple destinations, and if the required retention policy is required to be different for different destinations, then the following can be done:
 
RMAN> run {
backup archivelog all;
delete archivelog until time 'sysdate -1' like '/am3/oradata/arch/%';
delete archivelog until time 'sysdate -5' like '/am3/oradata/arch1/AM3P2/%';
}
 

The FRA and DELETE INPUT

RMAN will backup and remove the archivelogs in numerical order from _dest_1 to dest_10. However,
if one of the archive destinations is an FRA, RMAN will always backup and remove from the FRA
first, and then work on the numerical order of the log_archive_dest_x
eg.
If the following parameters were set:
  • log_archive_dest_1='location=/u002/oraarch/ORA1020'
  • log_archive_dest_2='LOCATION=USE_DB_RECOVERY_FILE_DEST'
  • log_archive_dest_3='location=/u002/oraarch3/ORA1020'
Oracle will backup and remove from the FRA, folllowed by archivelogs in log_archive_dest_1.
Finally, logs in log_archive_dest_3 will be removed.

Where do the restored archivelogs go?

During the restore process RMAN will check all archive destinations to make sure that the archivelog requested does not already exist. If the archivelog already exist in one of the destinations RMAN will not restore the file. If the archivelog does not exist in any of the destinations RMAN will restore it to the FRA if it exists. Otherwise it will restore it to the highest archive destination defined.

Restoring archivelog to FRA in ASM

When using the FRA and ASM, the archivelog will be restored to the current directory, rather than the time at which it was generated. Even if using the SET ARCHIVELOG DESTINATION, an alias will be created to the current directory.
For example, on the 16 Aug 2010, when restoring the 13 Aug archivelogs:
RMAN> run {
    allocate channel c1 type 'sbt_tape';
    set archivelog destination to '+SHARED_FRA_DG01/P132/ARCHIVELOG/2010_08_13';
    restore archivelog
         from time "to_date('13/08/2010-00:00:00','dd/mm/yyyy-hh24:mi:ss')"
         until time "to_date('14/08/2010-00:00:00','dd/mm/yyyy-hh24:mi:ss')";
  }


+SHARED_FRA_DG01/P132/ARCHIVELOG/2010_08_13
ASMCMD> ls -ltr
Type  Redund  Striped  Time    Sys  Name
                                 N    1_94528_708660567.dbf => +SHARED_FRA_DG01/P132/ARCHIVELOG/2010_08_16/thread_1_seq_94528.5341.727224533
                                 N    1_94529_708660567.dbf => +SHARED_FRA_DG01/P132/ARCHIVELOG/2010_08_16/thread_1_seq_94529.3425.727224661
                                 N    1_94530_708660567.dbf => +SHARED_FRA_DG01/P132/ARCHIVELOG/2010_08_16/thread_1_seq_94530.5644.727224779

No comments: