본문 바로가기
DB/ORACLE

DB 엔진 - 기동 순서, 복구, 백업

by jun.s.gi 2022. 12. 23.
728x90
Oracle 기동 순서

1. shutdown
- DB, Instance 모두 종료된 상태

2. nomount
- system parameter file에 의해 메모리에 SGA, Background process 등 세팅한다.
- DB 생성할 수 있는 단계
- Control file을 재생성할 수 있는 단계

3. mount
- control file 정보에 의해 media recovery, DB 구조변경 DB 모드 변경할 수 있는 단계이다.
- DB 모드는 Archive mode와 no Archive mode가 존재하는데 default로 no Archive mode로 되어있기 때문에 Archive file을 사용하려면 나중에 따로 모드를 변경해주어야 한다.
※Archive file은 복구에 필요한 중요한 파일※

4. Open 단계
- Control file, Data file, redo log file의 high scn(가장 최근에 적용된 system change number)를 비교하여 세 파일의 scn이 동일해야 함
- Control file에는 dbf 파일이 있지만 실제 data file은 없을 수도 있다. 이처럼 실제로 file이 존재하는지 check 하고 모두 존재해야 함.
- file이 손상되었는지 check 후 손상이 없다면 DB open

 


메모리 정전

COMMIT 하지 않았지만 지연 쓰기 또는 CKPT에 의해 DB에 반영되거나, 반영되고 메모리가 정전 됐으면 잘못된 데이터가 db에 반영된 상황이다.
재부팅 후 DB OPEN 단계에서 file 동기 check에 걸리므로 SMON 백그라운드 프로세스가 Undo segment에 접근하여 잘못 반영된 Data를 rollback 후 DB가 열린다.

Undo 참조 : https://junsgi.tistory.com/27


 

DB 복구

1. control file은 모든 os 파일의 high scn을 가진다.

2. data file은 write back 될 때마다 가장 최근의 high scn을 가진다.

3. redo log file은 commit 될 때마다 high scn을 가진다.

 

만약 DB가 깨지면 백업해놓은 파일과 redo log file(Archived redo log file) 이용해 복구과정을 거친다.

 

 Control file의 user dbf의 high scn은 12/15 10:00, 백업해놓은 user dbf 파일의 scn은 12/14 09:00이라고 가정했을 때 file 동기 check에 걸리므로 redo log file 또는 archived redo log file에서 공백 기간 동안에 기록된 데이터를 순서대로 복구를 진행한다.

(history를 가져야 하기 때문에 최종 반영된 데이터만 복구하지 않고, Control file, Data file, current redo log file의 hign scn이 같아야 한다.)

 

백업에는

Shut down후 백업하는 Cold backup(off line)과 DB가 운영 중인 상태에서 백업할 수 있는 Hot backup(on line)이 있다.

오라클은 No archive log mode에서는 hot backup을 못하도록 막아놓았기 때문에 hot backup을 하려면 archive mode로 변경해주어야 한다.

728x90

'DB > ORACLE' 카테고리의 다른 글

DB 엔진 - DB block header  (0) 2022.12.26
DB 엔진 - 병행성과 일관성, Lock  (0) 2022.12.26
DB 엔진 - Execution  (0) 2022.12.22
DB 엔진 - Parsing, hash value  (0) 2022.12.20
DB 엔진 - System Global Area  (0) 2022.12.20