리두로그 파일

리두로그 파일이란

  • 오라클의 트렌젝션 기록을 담고 있는 로그파일
  • 일반적으로 백업 데이터를 사용한 미디어 복구에 쓰이나 Standby Database, Stream 을 이용한 Log mining 에도 쓰일 수 있음


리두로그를 발생시키는 원인

  • 오라클이 수행하는 거의 모든 작업에서 발생
  • 인서트/업데이트 시 인서트 결과 기록
  • 삭제 시 삭제되었다는 사실만 기록(삭제데이터 기록 안하는 듯)
  • 드롭 시 삭제 테이블 데이터는 기록되지 않지만 삭제가 미치는 영향을 기록
    • Drop 작업 시 딕셔너리 데이터에서 삭제하기 위해 수행되는 재귀SQL(Recursive SQL)은 REDO 를 발생시킴
  • 노로깅(nologging) 모드 Table 은 REDO 발생시키지 않으나 재귀SQL 수행 시 역시 발생 가능


온라인 리두로그

  • 각 그룹은 하나 이상의 맴버로 구성
  • 두개 이상의 맴버는 미러링 형식으로 구성
  • 각 그룹은 고정 크기이며 순환 방식으로 사용 됨
  • 다른 파일로 순환되는것을 로그 스위치라고 함
  • 커밋 시 버퍼 캐시에 저장된 모든 데이터블록을 디스크에 쓰지 않으며
    • 리두로그 버퍼에 기록 된 변경 내용을 리두로그에 기록 함
    • 리커버리 시 리두로그를 읽어 변경 내용 재현


로그 스위치 시 체크포인트 발생
  • DBWn 이 버퍼캐시의 더티 블록을 Disk 에 기록
  • 이 작업이 delay 될 경우 Alert log 에 checkpoint not complete 메시지 기록 됨
  • DBWn 이 체크포인트 마무리 하는것을 돕기 위해 DB 전체가 잠시 작업 중단


온라인 리두로그 크기 튜닝은
  • 업무, 사용 목적 별 적정 사이즈 고려 필요
  • DSS/DW <-> OLTP, 조회 전용 DB <-> IO 발생 DB
  • 피크시간대의 로그 생성량을 고려하여 사이즈 고려 필요
  • 일반적으로 리두로그 파일이 클수록 체크포인트가 적게 발생해 성능은 향상되나 평균 복구 시간은 길어진다고 함


아카이브 리두로그

  • Redo log 파일이 스위치 되어 덮어 쓰기가 가능해 지기 전 영구 보존을 위해 생성 된 파일
  • 하드웨어적 이중화 등으로 장애에 대한 오류 복구는 가능하지만 사용자 오류로 인한 정상적인 경로를 통한 오류 데이터 입력은 커버할 수 없으므로
    • 아카이브 모드로 운영하자