ADD and DROP redo log groups and members in Oracle

Adding and Dropping Redo log files in Oracle Database.



Currently redo log groups are having 50MB size in each group, 
Task is to add new redo log groups with 250MB size and dropping 50MB groups..

Current Redo log details

SQL> select group#,sequence#,bytes,archived,status from v$log;
 GROUP# SEQUENCE# BYTES ARC STATUS 
---------- ---------- ---------- --- ---------------- 
1 91693 52428800 YES INACTIVE 
2 91694 52428800 NO CURRENT 
3 91692 52428800 YES INACTIVE

We have 3 groups , let us add 4th,5th and 6th group.

SQL>  select MEMBER from v$logfile;

MEMBER
--------------------------------------------------------------------------------
+DATA/ORCLP01/ONLINELOG/group_3.267.1001242535
+FRA/ORCLP01/ONLINELOG/group_3.346.1001242537
+DATA/ORCLP01/ONLINELOG/group_2.260.1001242533
+FRA/ORCLP01/ONLINELOG/group_2.345.1001242533
+DATA/ORCLP01/ONLINELOG/group_1.262.1001242531
+FRA/ORCLP01/ONLINELOG/group_1.344.1001242531
+DATA/ORCLP01/ONLINELOG/group_4.269.1113141311

7 rows selected.

SQL> alter database add logfile group 4 '+DATA' size 250M; 

Database altered.

SQL>  alter database add logfile group 5 '+DATA'  size 250M;

Database altered.

SQL>  alter database add logfile group 6  '+DATA'  size 250M;

Database altered.

SQL>

Adding Second member in the group 


SQL> ALTER DATABASE ADD LOGFILE MEMBER '+DATA'  TO GROUP 4;

Database altered.

SQL> ALTER DATABASE ADD LOGFILE MEMBER '+DATA'  TO GROUP 5;

Database altered.

SQL> ALTER DATABASE ADD LOGFILE MEMBER '+DATA'  TO GROUP 6;

Database altered.

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

    GROUP#  SEQUENCE#      BYTES ARC STATUS
---------- ---------- ---------- --- ----------------
         1      91693   52428800 YES INACTIVE
         2      91694   52428800 NO  CURRENT
         3      91692   52428800 YES INACTIVE
         4          0  262144000 YES UNUSED
         5          0  262144000 YES UNUSED
         6          0  262144000 YES UNUSED

6 rows selected.

Verify the redo logfile status before drop
SQL> alter system switch logfile;

System altered.

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

    GROUP#  SEQUENCE#      BYTES ARC STATUS
---------- ---------- ---------- --- ----------------
         1      91693   52428800 YES INACTIVE
         2      91694   52428800 YES ACTIVE
         3      91692   52428800 YES INACTIVE
         4      91695  262144000 NO  CURRENT
         5          0  262144000 YES UNUSED
         6          0  262144000 YES UNUSED

6 rows selected.

SQL> alter system switch logfile;

System altered.

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

    GROUP#  SEQUENCE#      BYTES ARC STATUS
---------- ---------- ---------- --- ----------------
         1      91693   52428800 YES INACTIVE
         2      91694   52428800 YES ACTIVE
         3      91692   52428800 YES INACTIVE
         4      91695  262144000 YES ACTIVE
         5      91696  262144000 NO  CURRENT
         6          0  262144000 YES UNUSED

6 rows selected.

SQL> alter system switch logfile;

System altered.

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

    GROUP#  SEQUENCE#      BYTES ARC STATUS
---------- ---------- ---------- --- ----------------
         1      91693   52428800 YES INACTIVE
         2      91694   52428800 YES ACTIVE
         3      91692   52428800 YES INACTIVE
         4      91695  262144000 YES ACTIVE
         5      91696  262144000 YES ACTIVE
         6      91697  262144000 NO  CURRENT

6 rows selected.

SQL> alter system archive log group 2;
alter system archive log group 2
*
ERROR at line 1:
ORA-16013: log 2 sequence# 91694 does not need archiving


SQL> alter system archive log group 3;
alter system archive log group 3
*
ERROR at line 1:
ORA-16013: log 3 sequence# 91692 does not need archiving


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

    GROUP#  SEQUENCE#      BYTES ARC STATUS
---------- ---------- ---------- --- ----------------
         1      91693   52428800 YES INACTIVE
         2      91694   52428800 YES ACTIVE
         3      91692   52428800 YES INACTIVE
         4      91695  262144000 YES ACTIVE
         5      91696  262144000 YES ACTIVE
         6      91697  262144000 NO  CURRENT

6 rows selected.

Dropping Redo log groups 1,2 and 3

Note: Make sure the status of group to be deleted/dropped should be INACTIVE 
      and should not be ACTIVE and CURRENT.

DROP LOGFILE GROUP 1


SQL> ALTER DATABASE DROP LOGFILE GROUP 1;

Database altered.

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

    GROUP#  SEQUENCE#      BYTES ARC STATUS
---------- ---------- ---------- --- ----------------
         2      91694   52428800 YES ACTIVE
         3      91692   52428800 YES INACTIVE
         4      91695  262144000 YES ACTIVE
         5      91696  262144000 YES ACTIVE
         6      91697  262144000 NO  CURRENT

DROP LOGFILE GROUP 3

SQL> ALTER DATABASE DROP LOGFILE GROUP 3;

Database altered.

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

    GROUP#  SEQUENCE#      BYTES ARC STATUS
---------- ---------- ---------- --- ----------------
         2      91694   52428800 YES ACTIVE
         4      91695  262144000 YES ACTIVE
         5      91696  262144000 YES ACTIVE
         6      91697  262144000 NO  CURRENT

SQL> alter system switch logfile;

System altered.

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

    GROUP#  SEQUENCE#      BYTES ARC STATUS
---------- ---------- ---------- --- ----------------
         2      91698   52428800 NO  CURRENT
         4      91695  262144000 YES ACTIVE
         5      91696  262144000 YES ACTIVE
         6      91697  262144000 YES ACTIVE

SQL> alter system switch logfile;

System altered.

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

    GROUP#  SEQUENCE#      BYTES ARC STATUS
---------- ---------- ---------- --- ----------------
         2      91698   52428800 YES ACTIVE
         4      91699  262144000 NO  CURRENT
         5      91696  262144000 YES INACTIVE
         6      91697  262144000 YES ACTIVE

SQL>  alter system switch logfile;

System altered.

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

    GROUP#  SEQUENCE#      BYTES ARC STATUS
---------- ---------- ---------- --- ----------------
         2      91698   52428800 YES ACTIVE
         4      91699  262144000 YES ACTIVE
         5      91700  262144000 NO  CURRENT
         6      91697  262144000 YES ACTIVE

SQL> alter system archive log group 5;
alter system archive log group 5
*
ERROR at line 1:
ORA-00259: log 5 of open instance ORCLP01 (thread 1) is the current log,
cannot archive


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

    GROUP#  SEQUENCE#      BYTES ARC STATUS
---------- ---------- ---------- --- ----------------
         2      91698   52428800 YES ACTIVE
         4      91699  262144000 YES ACTIVE
         5      91700  262144000 NO  CURRENT
         6      91697  262144000 YES ACTIVE

SQL> alter system switch logfile;

System altered.

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

    GROUP#  SEQUENCE#      BYTES ARC STATUS
---------- ---------- ---------- --- ----------------
         2      91698   52428800 YES INACTIVE
         4      91699  262144000 YES ACTIVE
         5      91700  262144000 YES ACTIVE
         6      91701  262144000 NO  CURRENT

Drop the redo log group 2

SQL> ALTER DATABASE DROP LOGFILE GROUP 2;

Database altered.

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

    GROUP#  SEQUENCE#      BYTES ARC STATUS
---------- ---------- ---------- --- ----------------
         4      91699  262144000 YES ACTIVE
         5      91700  262144000 YES ACTIVE
         6      91701  262144000 NO  CURRENT

SQL>

See also

Import Running longer time due to huge log switch
http://oracle.com