Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

DBDBDEEP

Instance Recovery의 이해 : CKPT (체크포인트) 프로세스 본문

Oracle Backup & Recovery

Instance Recovery의 이해 : CKPT (체크포인트) 프로세스

Kihwane 2022. 7. 27. 15:57

CKPT 및 REDO

 

CKPT의 작업

 - 체크포인트 정보로 데이터 파일 헤더를 갱신한다.

 - 체크포인트 정보로 Control File 갱신

 - 전체 체크포인트 시 DBWn에 알린다.

 

 체크포인트

- dirty buffer 를 데이터 파일로 내리는 작업

- DBwn에 의해서 수행된다

- 3초마다 CKPT는 DBWn이 SGA의 수정된 데이터 블록을 디스크에 기록한 내용을 Control file에 저장한다.

   이것이 Instance 체크포인트

 

체크포인트 존재 이유

  1. LGWR메모리에 있는 수정된 데이터 블록정기적으로 디스크에 기록하니까,

      시스템이나 데이터베이스에 Failure가 발생할 경우 데이터 손실이 발생하지 않음.

  2. Instance Recovery에 필요한 시간을 줄인다.

     (마지막 체크포인트 다음에 나오는 온라인 리두로그 파일 항목만 Recovery 를 위해 처리하면 되기 때문에)

  3. 메모리에 있는 수정된 데이터 블록을 정기적으로 디스크에 기록하므로

      Shutdown시에 모든 커밋된 데이터가 데이터 파일에 기록됨을 보장한다.

 

체크포인트 목적

- 리두로그 파일에서 instance recovery(체크포인트 위치) 가 시작될 위치를 식별

 

체크포인트 발생시기

- 1) logswitch, shutdown, alter system checkpoint, alter database begin backup

     (온라인 백업 받는 동안에도 체크포인트 함)

- 2) talbeSpace and datafile checkPoint

     > alter tablespace read only | offline | begin backup

     > alter database shrinking datafile

- 3) incremental chkeckpoint

      i) aging 알고리즘

          :ckpt가 3초 간격으로 더티버퍼가 있는지를 확인하고 dbwr에 시그널 보냄

         : log switch의 부담을 줄이기 위해 일부 더터 버퍼 기록

     ii) LRU 알고리즘

          : 서버프로세스가 LRU list를 뒤지다 free/clean 상태 못찾는 경우

          : LRU 쪽에서 만난 dirty buffer를 우선적으로 dbwr가 write

          : check point Position은 변경하지 않음.

 

CKPT 프로세스에 의해 저장된 체크포인트 정보

- 체크포인트 위치, SCN(System Change Number), Recovery를 시작할 온라인 리두로그 파일의 위치, 로그에 대한 정보등이 포함된다.

 

 

Data File (Control File) 에 적히는 것을 그림으로 보기

 

- 로그스위치가 일어나면 1번 로그파일은 사라지게 될 상황이 온다.

  이때 DBWn이 1과 관련된 것을 Data file에 쓰게 되는데 현재 시점의 CKPT가 SCN과 datafile과 관련된 정보를                 control file에 적는다.

 

checkpoint position : redo log file에서 DBWn에 의해 datafile에 내려간 데이터 들의 위치를 기록해 놓은 값

 

리두로그 파일 특징

 - 데이터베이스 변경 내용을 기록

 - 데이터 손실로부터 보호하려면 다중화가 되어 있어야 하기 때문에  LGWR(로그 기록자) 가 기록하는 경우

   1. 커밋 시

   2. 1/3이 찼을 때 3초마다

   3. DBWn이 쓰기 전

   4. 정상 종료 전

 

 

 

자동 Instance Recovery 또는 Crash Recovery의 특징

- 종료 시 동기화되지 않은 파일이 있는 데이터베이스를 열려고 할때

- 리두 로그 그룹에 저장된 정보를 사용하여 파일 동기화

- 두 개의 개별작업 포함 (SMON이 하는 작업)

  롤 백: 변경되었지만 커밋되지 않은 사항이 원래 상태로 돌아간다. 

  롤 포워드 : 리두로그 변경사항(커밋된 사항 및 커밋되지 않은 사항)모두 데이터파일에 적용된다. 작업된 것을 그대로                           따라간다.

 

instance Recovery 단계

1. 인스턴스 시작(데이터 파일이 동기화 되지 않음)

2. 롤 포워드 ( 파일에 커밋된 데이터와 커밋되지 않은 데이터 포함)

3. 데이터베이스가 열림

     - 데이터 파일을 열려면 데이터 파일 헤더에 있는 SCN이 데이터베이스 ControlFile에 저장된 현재 SCN과 일치해야        한다.

     일치하지 않으면 온라인 리두 데이터를 적용하여 데이터 파일이 최신 상태가 될 때까지 순차적으로 트랜잭션 리두.

4. 롤백(언두)

리두로그가 적용될 때 데이터베이스가 Failure 당시의 상태가 되도록 모든 트랜잭션 적용.

커밋되지 않은 트랜잭션 롤백

5. 파일에 커밋된 데이터 포함

 

Instance Recovery 튜닝

- Instacne Recovery 동안 체크포인트 위치와 리두로그 끝 사이의 트랜잭션이 데이터 파일에 적용되어야 한다.

- 체크포인트 위치와 리두 로그 끝 사이의 차이를 제어함으로써 Instance Recovery를 튜닝

- Instacne rocobery 에 필요한 시간은 데이터 파일을 마지막 체크포인트에서 Control File에 기록된 최근 SCN으로        가져오는데 필요한 시간.

  관리자MTTR (초단)설정하그룹크기조정하여 이 시간제어한.

 

MTTR advisor 사용

- 초 또는 분 단위로 원하는 시간을 지정한다.

- 기본값은 0이다(비활성)

- 최대값은 1시간이다.

'Oracle Backup & Recovery' 카테고리의 다른 글

Oracle Database Backup  (0) 2022.07.27
DBA의 책임 및 Failure 카테고리  (0) 2022.07.27