Skip to Content
0
Nov 01, 2012 at 02:14 PM

Relocate online redolog members with Oracle database open

375 Views

Hey guys,

I want to relocate online redolog members with database open. I have Oracle on Linux Suse OS.

My current status is:


SQL> select group#,status,member from v$logfile;
GROUP# STATUS MEMBER
1 /oracle/SID/origlogA/log_g11m1.dbf
1 /oracle/SID/mirrlogA/log_g11m2.dbf
2 /oracle/SID/origlogB/log_g12m1.dbf
2 /oracle/SID/mirrlogB/log_g12m2.dbf
3 /oracle/SID/origlogA/log_g13m1.dbf
3 /oracle/SID/mirrlogA/log_g13m2.dbf
4 /oracle/SID/origlogB/log_g14m1.dbf
4 /oracle/SID/mirrlogB/log_g14m2.dbf

But, on OS level mirrlogA and mirrlogB are symbolic links to origlogB and origlogA:


mirrlogA -> origlogB
mirrlogB -> origlogA

I need to create separate /oracle/SID/mirrlogA and /oracle/SID/mirrlogB filesystem, and the members to be located there.

In my opinion, I would try the following method:

Step A: delete member 2 of each group when the group is with status INACTIVE, by using drop sql statement "ALTER DATABASE DROP LOGFILE MEMBER"
For example group 1 in the following sql result:

SQL> select group#, archived, status from v$log;

GROUP# ARC STATUS
---------- --- ----------------
1 YES INACTIVE
2 YES ACTIVE
3 NO CURRENT
4 YES INACTIVE


Step B: create /oracle/SID/mirrlogA and /oracle/SID/mirrlogB filesystems
Step C: recreate member 2 of each group in the same logical location "/oracle/SID/mirrlogA" but new physical location.


My questions would be: is my approach correct? Do I need to perform some extra steps? Does this affect in a bad way the database?

If you have other methods to perform the relocation online, could you please post them?

Thank you,

Delia