원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

예)  현재 리두로그 그룹이  2개에 멤버가 각각 2개씩. 10MB 인데,   30MB의 멤버 3개를 가진 2개의 멤버환경으로 바꾸고자 할 경우

 

group 1  : /redo/redo1_1.rdo,  /redo/redo1_2.rdo

group2  :  /redo/redo2_1.rdo, /redo/redo2_2.rdo

 

 

 

 

먼저  DB shutdown  및 mount 단계로 올림

 

SQL> shutdown immediate;

SQL> startup mount;

 

 

 

현재 리두로그 그룹을 조회한다.

SQL> select a.group#,a.member,b.bytes,b.status from v$logfile a,v$log b where a.group#=b.group#;

 

    GROUP#    MEMBER   BYTES STATUS
---------- ----------------
         1           /redo/redo1_1.rdo           536870912 CURRENT

         1           /redo/redo1_2.rdo           536870912 CURRENT

         2          /redo/redo2_1.rdo 536870912 INACTIVE

         2          /redo/redo2_2.rdo 536870912 INACTIVE

 

 

여기서 INACTIVE 되어있는 redolog group 만 제거 할 수 있다.

 

3번째 group을 임의로 생성한다.

 

SQL> alter database add logfile group 3 ('/redo3_1.rdo','/redo/redo3_2.rdo) size 20M;

 

 

INACTIVE인 redo log group 2을 제거한다.

 

SQL> alter database drop logfile group 2;

 

 

 

1번 그룹을 수정하기 위해서 로그스위치 발생시킨다.

 

SQL> alter database open;

SQL> alter system switch logfile;

SQL> select a.group#,a.member,b.bytes,b.status from v$logfile a,v$log b where a.group#=b.group#;

GROUP# MEMBER BYTES STATUS
---------- ----------------
1           /redo/redo1_1.rdo 536870912 INACTIVE

1          /redo/redo1_2.rdo 536870912 INACTIVE

3          /redo/redo3_1.rdo 536870912 CURRENT

3          /redo/redo3_2.rdo 536870912 CURRENT

 

 

1번 그룹을 삭제한다.

SQL> alter database drop logfile group 1;

 

 

당초 목적에 맞게 1,2번 그룹을 생성한다.

SQL> alter database add logfile group 1 ('/redo1_1.rdo','/redo/redo1_2.rdo','/redo/redo1_3.rdo') size 30M;

SQL> alter database add logfile group 2 ('/redo2_1.rdo','/redo/redo2_2.rdo','/redo/redo2_3.rdo') size 30M;

 

 

다시 로그스위치 발생을 위해서 재기동

SQL> shutdown immediate;

SQL> startup mount;

 

 

임시로 만든 3번 그룹 삭제

SQL> alter database drop logfile group 3;

 

 

정상기동 후 확인

SQL> alter database open;

SQL> select a.group#,a.member,b.bytes,b.status from v$logfile a,v$log b where a.group#=b.group#;

GROUP# MEMBER BYTES STATUS
---------- ----------------
1 /redo/redo1_1.rdo 536870912 INACTIVE

1 /redo/redo1_2.rdo 536870912 INACTIVE

1 /redo/redo1_3.rdo 536870912 INACTIVE

2 /redo/redo2_1.rdo 536870912 CURRENT

2 /redo/redo2_2.rdo 536870912 CURRENT

2 /redo/redo2_3.rdo 536870912 CURRENT