본문 바로가기

Web Develop Tech/Oracle9i Fundmantal II

ORACLE - Instance 및 Media Recovery 구조 [2]



Crash 및 Instance Recovery 성능 튜닝


▶Instance 및 Crash Recovery 기간 튜닝

  • 체크포인트와 관련된 인스턴스를 수정함으로써 전체적인 성능 수정이 가능합니다.
  • 기간 튜닝 : 체크포인트의 주기에 따라서 더티의 개수가 많고 적음에 따라 인스턴스 리커버리의 총 시간을
  • 단축하거나 더 길게 만들 수 있습니다.

▶Instance Recovery 단계 튜닝

  • 정확하게 단계별 튜닝입니다.
  • 1. 롤 포워드 단계 - 롤 포워드를 좀 더 빠르게....
  • 2. 롤 백 단계 - 롤 백을 좀 더 빠르게....

▶Instance 및 Crash Recovery(고장 복구)의 기간 튜닝

▼ Instance 및 Crash Recovery의 기간을 User가 지정한 범위로 유지하는 방식 ▼

  • 초기화 Parameter 를 설정하여 Recovery에 포함된 Redo log 레코드와 Data Block 수에 영향을 줌
  • Redo log file의 크기를 조정하여 Checkpoint 빈도에 영향을 줌
  • SQL문을 실행하여 Checkpoint 시작
  • Instance Recovery 작업 병렬화 : 단계별 튜닝의 역할과 호환이 됩니다.

▶체크포인트에 영향을 주는 매개변수

매개변수| 정의
FAST_START_MTTR_TARGET : 초 단위로 지정된 예상 MTTR

LOG_CHECKPOINT_TIMEOUT : 리두 로그에 대한 마지막 쓰기가 발생한 위치에서

증분 체크포인트 이후에 경과된시간

LOG_CHECKPOINT_INTERVAL : 증분 체크포인트와 리두 로그에 마지막으로 기록된 블록 사이에 존재할
수 있는 리두 로그 파일 블록의 수

▶V$INSTANCE_RECOVERY

  • Recovery I/O를 제한하는데 사용할 수 있는 방식 모니터에 사용됨
  • 이 뷰의 통계를 사용하여 Checkpoint에 가장 큰 영향을 주는 Parameter 계산 : 로그파일 사이즈
  • TARGET_MTTR : 오라클이 운용후에 스스로 찾아낸 이상적인 FAST_MTTR_TARGET 의 값
  • ESTIATED_MTTR : 더티 블록 및 로그 블록의 수를 기반으로 현재 예상되는 MTTR(평균 복구 시간). FAST_START_MTTR_TARGET이 지정되지 않는 경우에는 0이며 기본적으로, 이 값은 시스템이 현재 수행 중인 작업을 기반으로 소요되는 예상 복구 시간을 나타냅니다. DB의 상황에 따라서 틀립니다.

▶Crash 및 Instance Recovery 단계 튜닝

  • Rollforward 단계 튜닝
  • Rollback 단계 튜닝

위의 방식은 모두 병렬로 수행하는 방식입니다.

▶Rollforward 단계 튜닝

  • 병렬 Block Recovery
  • RECOVERY_PARALLELISM 동시 Recovery Process의 수를 지정

▶Rollback 단계 튜닝

  • Fast-start On-demand Rollback : 자동으로 설정되어 있습니다.
    • SMON이 해줄 수도 있지만, 연결된 서버 프로세스가 해줍니다.
  • Fast-start 병렬 Rollback

▶Fast-Start On-Demand Rollback

  • Rollback될 Data를 발견한 서버프로세스가 다음을 수행:
    • 원하는 행을 포함하는 Block Rollback
    • 병렬로 수행될 수 있는 추가 Recovery 작업을 SMON으로 전달
    • [그림1-1]

▶Fast-Start Parallel Rollback

[그림1-2]

▶Controlling Fast-Start Parallel Rollback

[그림1-3]

▶Parallel Rollback 모니터

  • V$FAST_START_SERVERS : 병렬 Transaction Recovery를 수행하는 모든 Recovery 슬래이브에 대한 정보를 제공한다.
    • 상태정보를 표시
  • V$FAST_START _TRANSACTIONS : Oracle이 Recovery 중인 Transaction의 진행 정보를 포함한다.
    • 복구의 진행률을 표시해 줍니다.