4.1. Redo Log File 설명

2019. 4. 25. 17:10 Database/Oracle Admin(9i)

온라인 리두 로그 파일?

  리두 로그 파일은 데이터베이스에서 생긴 모든 변화를 기록하는 파일 입니다.

  인스턴스 실패 같은 상황에서 데이터 파일에 쓰여지지 않은 커밋된 데이터를 복구하기 위해서 사용 됩니다.

  SGA 내의 리두 로그 버퍼 캐쉬에 저장된 데이터들은 리두 로그 버퍼가 일정수준 이상 채워지게 되면 LGWR에 의해서 리두 로그 파일로 저장 됩니다.

  리두 로그 파일은 적어도 두개 이상의 그룹을 가지며, 한 그룹내의 각 맴버들은 모두 동일한 테이터를 가집니다.

온라인 리두 로그 그룹

  동일한 리두 로그 파일의 복사본 입니다.

  LGWR은 그룹 내의 모든 리두 로그 파일에 동시에 동일한 정보를 기록 합니다.

  최소한 2개 이상의 온라인 리두 로그 그룹이 필요 합니다.

온라인 리두 로그 멤버

  그룹내의 각 온라인 리두 로그 파일

  각 멤버는 동일한 로그 시퀀스 번호 와 동일한 크기를 갖습니다.

  현재의 로그시퀀스번호(Log Sequence Number)는 콘트롤 파일과 모든 데이타 파일 헤더에 저장 됩니다. → 로그 스위치를 일으킬 때

그룹에 대한 정보

  V$THREAD를 통해서 조회할 수 있습니다.

  Online Redo Log groups의 수, Current Log Group, Sequence Number을 볼 수 있습니다.

 
SQL> CONN / AS SYSDBA
SQL> SELECT groups, current_group#, sequence#
     FROM V$THREAD;

GROUPS  CURRENT_GR  SEQUENCE#
------  ----------  ----------
    3           2           50  
    

그룹과 멤버에 대한 정보

V$LOG
 
SQL> SELECT group#, sequence#, bytes, members, status
     FROM  V$LOG;

GROUP# SEQUENCE#   BYTES MEMBERS   STATUS
------ --------- ------- ------- ---------
     1        49 1048576       1  INACTIVE
     2        50 1048576       1  CURRENT --> 현재 사용중인 로그 파일
     3        48 1048576       1  INACTIVE  
    
※ 온라인 로그 화일의 STATUS
  • CURRENT : LGWR Process 가 현재 사용중인 상태.
  • ACTIVE : 사용중이지는 않지만 긴 트랜젝션으로 인해 Recovery에 필요한 상태.
  • INACTIVE : Recovery 에도 필요하지 않은 상태

V$LOGFILE
 
SQL> SELECT group#, status, member
     FROM  V$LOGFILE;

GROUP#  STATUS  MEMBER
------ ------- -------------------------------------
     1 STALE   C:\ORACLE\ORADATA\ORACLE\REDO03.LOG
     2         C:\ORACLE\ORADATA\ORACLE\REDO02.LOG
     3 STALE   C:\ORACLE\ORADATA\ORACLE\REDO01.LOG  

출처 : http://www.gurubee.net/lecture/1091