Skip to content

How to Archive Redo Logs to Respective Local Destinations of RAC

For a RAC database, we may want to archive the redo logs to local destinations of instances rather than ASM. That is, put instance #1, #2 archive thread #1, #2 redo logs to their respective local destinations. To achieve this goal, LOG_ARCHIVE_DEST_1 should be setup more granularly by sid like this way:
SQL> alter system set log_archive_dest_1='location=/oracle/oradata/arch1' sid='primdb1' scope=spfile;
SQL> alter system set log_archive_dest_1='location=/oracle/oradata/arch2' sid='primdb2' scope=spfile;

The above settings make the archived logs of thread #1, #2 go to /oracle/oradata/arch1 on instance #1 and /oracle/oradata/arch2 on instance #2 respectively. This is a very common practice when DBA plans to backup the archived logs separately on a 9i or 10g RAC database.

For ensuring either instance of a RAC database can see each others' archived logs, they should mount the destinations mutually.
On primary01:
# mount primary02:/oracle/oradata/arch2 /oracle/oradata/arch2
On primary02:
# mount primary01:/oracle/oradata/arch1 /oracle/oradata/arch1

Beware of 11g RAC database, in a shutdown process of a 11g RAC database, either shutting instance will try to archive the required redo logs for recovery continuity and store them in its own local destination, no matter what thread the redo log was, which means, the thread #2 archived logs could go to the local destination of instance #1 and vice versa.

Therefore, storing all threads of archived logs to respective local destinations may not be a good practice for 11g RAC databases. Otherwise, you must correct the misplaced archived logs manually or by scripts every time you shutdown a 11g RAC database.

Leave a Reply

Your email address will not be published. Required fields are marked *