본문 바로가기

ORACLE/ORACLE_Backup&Recovery

begin BACKUP / end backup 시 내부 프로세스 (데이터파일/체크포인트)

반응형

## 데이터 파일 기준

 

begin BACKUP 시작

→ DML 쿼리 수행 (데이터 변경)

→ CHECKPOINT 발생

→ datafile의 데이터 block에 입력 (변경 사항들 또한 redo log와 archive log에 저장)

 Datafile header에는 CHECK POINT SCN BEGIN BACKUP 시점의 SCN값으로 고정

 

 

※ begin backup을 시작하면 리두로그 파일과 아카이브 파일이 증가하여 데이터파일에 내려적히지 않는다고 알고 있는 사람이 많은데 오라클의 블록 저장단위가 일반적으로 8K이고 OS가 4K라서 아카이브 파일의 크기가 크게 증가하는 것이다. 

참고자료 : https://bash-park.tistory.com/15

 

 

※ 데이터 블록 크기

대부분 8K 사용

→ 블록의 크기가 커지면 성능적인 부분은 더 좋아짐
 대신 락 되는 부분이 커지기 때문에 경합이 발생함
 작을수록 OLTP에 유용하고 클수록 배치에 유용

 

## 체크포인트 기준

 

1. 테이블 스페이스 리스트 조회

SQL> select file_id, tablespace_name
  2  from dba_data_files;

   FILE_ID TABLESPACE_NAME
---------- ------------------------------
         1 SYSTEM
         3 SYSAUX
         4 UNDOTBS1
         7 USERS
         5 DAMIN_DATA_TS
         2 DAMIN_IDX_TS

6 rows selected.

 

2. 체크포인트 조회

select a.FILE#, a.CHECKPOINT_TIME, b.CHECKPOINT_CHANGE#, a.CHECKPOINT_CHANGE#
  2  from v$datafile a, v$datafile_header b
  3  where a.file# = b.file#
  4  and   a.name = b.name
  5  order by a.checkpoint_change#;

     FILE# CHECKPOINT_TIME    CHECKPOINT_CHANGE# CHECKPOINT_CHANGE#
---------- ------------------ ------------------ ------------------
         3 21-APR-23                     2861609            2861609
         4 21-APR-23                     2861609            2861609
         2 21-APR-23                     2861609            2861609
         7 21-APR-23                     2861609            2861609
         5 21-APR-23                     2861609            2861609
         1 21-APR-23                     2861609            2861609

 

3. 테이블 스페이스 백업 시작 (begin)

alter tablespace SYSTEM begin backup;

 

4. 다시 체크포인트 조회

 

→ FILE ID 1인 SYSTEM의 체크포인트만 상승한 것을 확인할 수 있다.

 

select a.FILE#, a.CHECKPOINT_TIME, b.CHECKPOINT_CHANGE#, a.CHECKPOINT_CHANGE#
  2  from v$datafile a, v$datafile_header b
  3  where a.file# = b.file#
  4  and   a.name = b.name
  5  order by a.checkpoint_change#;

     FILE# CHECKPOINT_TIME    CHECKPOINT_CHANGE# CHECKPOINT_CHANGE#
---------- ------------------ ------------------ ------------------
         3 21-APR-23                     2861609            2861609
         4 21-APR-23                     2861609            2861609
         2 21-APR-23                     2861609            2861609
         7 21-APR-23                     2861609            2861609
         5 21-APR-23                     2868095            2868095
         1 21-APR-23                     2871512            2871512

 

5. checkpoint 발생

alter system checkpoint;

 

 

6. 다시 체크포인트 조회

 

→ checkpoint를 발생시키고 다시 조회를 해보면 file 번호 1인 SYSTEM의 체크포인트만 제외하고 상승한 것을 확인 가능하다.

 


select a.FILE#, a.CHECKPOINT_TIME, b.CHECKPOINT_CHANGE#, a.CHECKPOINT_CHANGE#
  2  from v$datafile a, v$datafile_header b
  3  where a.file# = b.file#
  4  and   a.name = b.name
  5  order by a.checkpoint_change#;

     FILE# CHECKPOINT_TIME    CHECKPOINT_CHANGE# CHECKPOINT_CHANGE#
---------- ------------------ ------------------ ------------------
         1 21-APR-23                     2871512            2871512
         7 21-APR-23                     2871573            2871573
         4 21-APR-23                     2871573            2871573
         5 21-APR-23                     2871573            2871573
         2 21-APR-23                     2871573            2871573
         3 21-APR-23                     2871573            2871573

 

7. 테이블 스페이스 백업 종료 (end)

SQL> alter tablespace SYSTEM end backup;

 

 

8. 다시 checkpoint 조회

 

→ 종료되면서 checkpoint SCN이 모두 동일하게 맞춰지게 된다.

 


select a.FILE#, a.CHECKPOINT_TIME, b.CHECKPOINT_CHANGE#, a.CHECKPOINT_CHANGE#
  2  from v$datafile a, v$datafile_header b
  3  where a.file# = b.file#
  4  and   a.name = b.name
  5  order by a.checkpoint_change#;

     FILE# CHECKPOINT_TIME    CHECKPOINT_CHANGE# CHECKPOINT_CHANGE#
---------- ------------------ ------------------ ------------------
         1 21-APR-23                     2871573            2871573
         2 21-APR-23                     2871573            2871573
         7 21-APR-23                     2871573            2871573
         4 21-APR-23                     2871573            2871573
         5 21-APR-23                     2871573            2871573
         3 21-APR-23                     2871573            2871573

 

 

 

※ 너무 큰 크기의 데이터 파일들은 여러개로 분할하는 것이 원활한 백업과 복구작업에 유용

 

 

 

 

 

 

 

반응형

'ORACLE > ORACLE_Backup&Recovery' 카테고리의 다른 글

rman advise를 이용한 복구 테스트  (0) 2023.06.18
RECYCLEBIN / RENAME  (0) 2023.06.08
noresetlogs / resetlogs 비교  (0) 2023.04.20
RMAN을 이용한 CloneDB 생성  (0) 2023.04.20
Hotbackup CloneDB 생성  (0) 2023.04.20