Checkpoint

2024. 6. 26. 09:03DBMS/ORACLE Admin

반응형

체크포인트는 Commit 됐을 때 SCN 번호를 부여하여 어디까지 저장되었는지 확인할 수 있다.

 



체크포인트의 작동 방식

Dirty Buffer flush : 버퍼 캐시에 있는 변경된 데이터 블록(Dirty Buffer)을 디스크에 기록한다.


로그 파일 동기화: 로그 파일을 동기화하여 데이터베이스가 일관된 상태로 유지되도록 한다.


체크포인트 기록 업데이트: 현재 체크포인트 시점을 제어 파일과 로그 파일 헤더에 기록한다. 이 기록에는 체크포인트 번호와 로그 시퀀스 번호(LSN: Log Sequence Number)가 포함된다.


체크포인트 진행 확인: 체크포인트가 완료되었음을 확인하고, 다음 체크포인트를 준비한다.

 

GLOBAL CHECKPOINT : 체크포인트가 발생하게 되면 DB BUFFER CACHE에 저장 되지 않은 DIRTY BUFFER 내용을 모두 DBF로 저장되고 SCN 끝번호를 CONTROLFILE과 DATA FILE HEADER 부분에 기록한다.

 

LOGICAL CHECKPOINT ; LOG SWTICH 가 발생했을 때 THEARD 내의 저장되지 않은 DIRTY BUFFER 를 DBF로 내려쓴다.

 

 

 


 체크포인트 관련 요소


- CKPT 프로세스: 체크포인트 시점을 기록하고, 변경된 데이터를 디스크에 기록하는 작업을 조율한다.
- DBWn 프로세스: 체크포인트 과정 중 DBWn 프로세스는 CKPT 프로세스와 협력하여 데이터를 디스크에 기록한다.
- 로그 파일: 체크포인트는 로그 파일과 밀접하게 연관된다. 체크포인트 시점은 로그 파일의 특정 위치에 기록되며, 복구 시 이 정보를 활용하여 필요한 로그를 재생한다.
- 제어 파일: 체크포인트 정보는 제어 파일에도 기록되며 데이터베이스가 재시작될 때, 복구 지점을 결정하는 데 사용된다.

 

 

 

 체크포인트의 설정 관련


- FAST_START_MTTR_TARGET: 장애 발생 시 복구 목표 시간을 설정하여 체크포인트 빈도가 조절된다.
- LOG_CHECKPOINT_INTERVAL: 로그 파일이 얼마나 커질 때마다 체크포인트를 발생시킬지 설정한다.
- LOG_CHECKPOINT_TIMEOUT: 일정 시간마다 체크포인트를 발생시키도록 설정한다.

 

 체크포인트 분류

 

Mini Checkpoint  : DDL 발생시 특정 블록에만 발생한다.

 

Recovery Checkpoint dbf에 장애 발생 시 백업된 파일을 복원 후 Redo Change Vector를 적용시킨 후 Recovery 블록을 datafile에 저장할 때 발생하는 것이다. buffer Cache의 dirty buffer 들을 dbf로 내리는 것을 Checkpoint 라 하고 우선순위가 높은 경우를 Fast 낮은 경우를 Low 라고 하며 두 가지 동시에 발생한 경우 Fast CheckPoint  부터 진행하게 된다.

 

 

 

Fast Checkpoint (full checkpoint) : DB shutdown, TBS BeginBackup, Alter System Checkpoint 등의 명령어로 발생되는 체크포인트 이다. full checkpoint 가 발생하게 되면 Control File 과 Data File Header 에 해당 Checkpoint 정보를 기록하게 된다.

 

Low Checkpoint (incremental Checkpoint) : 우선 순위가 낮을 경우는 Block 목록을 즉시 데이터파일로 내려쓰지 않고 기록해 둔 후 Background로 내려쓴다.

 

 

Dirty Buffer 목록 관리

 

7 버전 까지는 LRUW LIST 로 관리를 했다면 8 버전 이후는 Queue로 대체 되었다. Dirty Buffer 목록의 길이를 적절하게 관리하는 DB_BLOCK_MAX_DIRTY_TARGET 파라미터를 사용하고 8i 부터는 FAST_START_MTTR_TARGET 을 제공한다.

 

 

 

 

 

반응형

'DBMS > ORACLE Admin' 카테고리의 다른 글

블록 크기를 동적으로 조회하여 데이터 파일의 사용량을 모니터링  (0) 2024.07.01
System tablespace Data Dictionary View  (0) 2024.07.01
DATABASE BUFFER CACHE  (0) 2024.06.25
SEMAPHORE  (0) 2024.06.24
증분 백업  (0) 2024.06.23