Redo Log File은 각각 다른 Disk에 이중화하는 것이 권장됩니다.
Redo Log File은 member로 불리고, 다른 Disk에 있는 같은 Redo Log File을 묶은 단위를 group이라고 합니다.
현재 redo log file은 3개의 group이 있지만 각 group에는 member가 1개씩만 존재하는 상태입니다.
SQL> select GROUP#, STATUS, TYPE, MEMBER from v$logfile ;
GROUP# STATUS TYPE MEMBER
-------- -------- ------- ----------------------------------------
1 ONLINE /u02/app/oracle/oradata/prod/redo01.log
2 ONLINE /u02/app/oracle/oradata/prod/redo02.log
3 ONLINE /u02/app/oracle/oradata/prod/redo03.log
member의 이중화를 위해서 각 group 별로 member를 추가합니다.
# FILE SYSTEM을 쓰는 DB에서 추가
SQL> ALTER DATABASE ADD LOGFILE MEMBER
'/u02/app/oracle/oradata/prod/redo01b.log' TO GROUP 1 ,
'/u02/app/oracle/oradata/prod/redo02b.log' TO GROUP 2 ,
'/u02/app/oracle/oradata/prod/redo03b.log' TO GROUP 3 ;
# ASM을 쓰는 DB에서 추가
SQL> ALTER DATABASE ADD LOGFILE MEMBER
'+DATA' TO GROUP 1 ,
'+DATA' TO GROUP 2 ,
'+DATA' TO GROUP 3 ;
redo log file 구성 현황을 다시 살펴보면 추가한 member의 status가 INVALID
인 것을 확인할 수 있습니다.
SQL> select GROUP#, STATUS, TYPE, MEMBER from v$logfile ;
GROUP# STATUS TYPE MEMBER
-------- --------- --------- ----------------------------------------
1 ONLINE /u02/app/oracle/oradata/prod/redo01.log
1 INVALID ONLINE /u02/app/oracle/oradata/prod/redo01b.log
2 ONLINE /u02/app/oracle/oradata/prod/redo02.log
2 INVALID ONLINE /u02/app/oracle/oradata/prod/redo02b.log
3 ONLINE /u02/app/oracle/oradata/prod/redo03.log
3 INVALID ONLINE /u02/app/oracle/oradata/prod/redo03b.log
member들 끼리 동기화되도록 redo log file의 수만큼 log switch
합니다.
SQL> alter system switch logfile;
SQL> /
SQL> /
SQL> /
SQL> /
SQL> /
ACTIVE
상태의 group을 INACTIVE
상태로 만들기 위해 checkpoint를 발생시킵니다.
SQL> alter system checkpoint;
SQL> select GROUP#, STATUS, TYPE, MEMBER from v$logfile ;
GROUP# STATUS TYPE MEMBER
-------- --------- --------- ----------------------------------------
1 ONLINE /u02/app/oracle/oradata/prod/redo01.log
1 ONLINE /u02/app/oracle/oradata/prod/redo01b.log
2 ONLINE /u02/app/oracle/oradata/prod/redo02.log
2 ONLINE /u02/app/oracle/oradata/prod/redo02b.log
3 ONLINE /u02/app/oracle/oradata/prod/redo03.log
3 ONLINE /u02/app/oracle/oradata/prod/redo03b.log