3.1 Checkpoint
- CKPT (체크포인트 프로세스)
- 복구 시작 시점의 SCN 기록: CKPT는 데이터베이스 복구 시 필요한 시작 시점의 SCN(System Change Number) 기록 (SCN은 데이터베이스의 변경 사항을 식별하는 고유한 번호)
- 체크포인트 유형:
- 전체 체크포인트(Full): 컨트롤 파일(Control file)과 데이터 파일 헤더(Datafile header)에 체크포인트 정보 기록
- 증분 체크포인트(Incremental): 컨트롤 파일에만 체크포인트 정보를 기록
- 작동 방식
- CKPT 프로세스: CKPT 백그라운드 프로세스는 주기적으로 또는 특정 이벤트 발생 시 체크포인트 수행
- 컨트롤 파일 및 데이터 파일 업데이트: 체크포인트가 발생하면 CKPT는 컨트롤 파일과 데이터 파일 헤더에 체크포인트 정보 기록
- 데이터 파일 동기화: 체크포인트 발생 시 DBWR(Database Writer) 프로세스는 데이터 버퍼 캐시의 변경된 데이터 블록을 데이터 파일에 기록하여 데이터 파일과 메모리 동기화
- 중요성
- 데이터 복구 시간 단축: 체크포인트는 데이터베이스 복구 시 필요한 시작 시점을 제공하여 복구 시간 단축
- 데이터 일관성 유지: 체크포인트는 데이터 파일과 메모리의 동기화를 통해 데이터 일관성 유지
- 데이터 손실 방지: 체크포인트는 데이터베이스 장애 발생 시 손실되는 데이터의 양 최소화
3.2 Backup & Recovery
3.2.1 백업 및 복구 솔루션 종류
- Logical Methods (논리적 방법)
- Export and Import:
- 데이터베이스 객체(테이블, 뷰 등)를 논리적인 파일로 추출하고 다시 데이터베이스에 로드하는 방식
- 데이터베이스 전체 또는 일부를 백업 및 복구하는 데 사용할 수 있음
- 데이터베이스 버전 간 호환성이 높음
- Data Pump (10g 이상):
- Export and Import의 성능을 향상시킨 유틸리티
- 대용량 데이터베이스의 백업 및 복구에 효율적
- 병렬 처리 및 압축 기능을 지원
- Flashback Functions (10g 이상):
- 특정 시점의 데이터로 데이터베이스를 복원하는 기능
- 사용자 실수로 인한 데이터 손실 시 유용
- Flashback Query, Flashback Table, Flashback Database 등 다양한 기능이 있음
- Export and Import:
- Physical Methods (물리적 방법)
- O/S Backup and Restore:
- 운영 체제 명령어를 사용하여 데이터 파일, 컨트롤 파일, 리두 로그 파일 등을 백업하고 복구하는 방식
- 데이터베이스 전체를 백업 및 복구하는 데 사용
- 데이터베이스 구조를 그대로 복원할 수 있음
- RMAN Backup and Restore:
- 오라클에서 제공하는 백업 및 복구 유틸리티
- 데이터베이스 전체 또는 일부를 백업 및 복구하는 데 사용
- 증분 백업, 압축, 암호화 등 다양한 기능을 지원
- O/S Backup and Restore:
- High Availability Methods (고가용성 방법)
- Data Guard (Data HA):
- 운영 데이터베이스의 변경 사항을 대기 데이터베이스에 실시간으로 동기화하여 데이터 고가용성 제공
- 재해 복구(DR) 사이트를 구축하는 데 사용
- Active Data Guard 옵션을 사용하면 대기 데이터베이스에서 읽기 전용 작업을 수행할 수 있음
- RAC (O/S, Server HA):
- 여러 서버를 클러스터로 구성하여 서버 고가용성 제공
- 특정 서버에 장애가 발생해도 다른 서버가 서비스를 계속 제공
- 로드 밸런싱 기능을 통해 성능을 향상할 수 있음
- Data Guard (Data HA):
방법 | 특징 | 장점 | 단점 |
논리적 방법 | 데이터베이스 객체 단위 백업/복구 | 데이터베이스 버전 간 호환성 높음 | 물리적 방법에 비해 복구 시간 오래 걸림 |
물리적 방법 | 데이터베이스 전체 백업/복구 | 데이터베이스 구조 그대로 복원 가능 | 데이터베이스 버전 간 호환성 낮음 |
고가용성 방 | 서비스 연속성 보장 | 다운타임 최소화 | 구축 및 관리 복잡 |
3.2.2 오프라인 모드 사용자 백업 절차
- 백업 대상 확인: 아래 뷰를 조회하여 백업해야 할 파일 목록 확인
- V$DATAFILE 또는 DBA_DATA_FILES: 데이터 파일 정보
- V$LOGFILE: 리두 로그 파일 정보
- V$CONTROLFILE: 컨트롤 파일 정보
- V$PARAMETER: 초기화 파라미터 파일 정보
- 데이터베이스 종료: 모든 인스턴스를 Shutdown immediate 명령어를 사용하여 종료
- 파일 복사: 운영 체제 명령어를 사용하여 백업 위치에 대상 파일을 복사
- 오프라인 모드 백업의 특징
- 단순함: 운영 체제 명령어를 사용하여 간단하게 백업 수행
- 전체 백업: 데이터베이스 전체를 백업
- 다운타임 발생: 데이터베이스를 종료해야 하므로 다운타임 발생
- 데이터 일관성 보장: 데이터베이스가 종료된 상태에서 백업하므로 데이터 일관성 보장
- 복구 시간 오래 걸림: 백업된 파일들을 수동으로 복사해야 하므로 복구 시간이 오래 걸릴 수 있음
장점 | 단점 |
단순하고 구현이 쉽다 | 다운타임이 발생한다 |
데이터 일관성이 보장된다 | 복구 시간이 오래 걸린다 |
전체 백업이 가능하다 | 백업 및 복구 과정이 수동적이다 |
3.2.3 온라인 백업 모드
- 온라인 백업 모드 변경 방법
- 단일 명령: ALTER DATABASE BEGIN BACKUP; 명령어를 사용하여 전체 데이터베이스를 백업 모드로 변경
- 테이블스페이스 단위 명령 불필요 (10g 이상): 이전 버전에서는 각 테이블스페이스별로 백업 모드를 설정해야 했지만, 10g 이상부터는 단일 명령으로 전체 데이터베이스를 설정 가능
- 온라인 백업 모드 조건
- ARCHIVELOG 모드: 데이터베이스가 ARCHIVELOG 모드로 설정되어 있어야 함
- Mounted and open: 데이터베이스가 마운트 되고 열려 있어야 함
- RMAN과의 관계
- RMAN은 온라인 백업 모드 불필요: RMAN(Recovery Manager)은 자체적으로 온라인 백업 기능을 지원하므로, 데이터베이스를 명시적으로 온라인 백업 모드로 설정할 필요가 없음
- 온라인 백업 모드 제한 사항
- 다음 작업 수행 불가:
- Normal Shutdown: 데이터베이스를 정상적으로 종료할 수 없음
- Tablespace read-only & online backup mode: 테이블스페이스를 읽기 전용으로 설정하고 온라인 백업 모드를 동시에 사용할 수 없음
- Tablespace offline: 테이블스페이스를 오프라인으로 설정할 수 없음
- 다음 작업 수행 불가:
- 온라인 백업 모드의 장점
- 다운타임 최소화: 데이터베이스를 중단하지 않고 백업을 수행할 수 있음
- 24시간 서비스 가능: 서비스 중단 없이 백업을 수행해야 하는 시스템에 적합
- 온라인 백업 모드의 단점
- 복잡성: 오프라인 백업에 비해 설정 및 관리가 복잡함
- 로그 관리 필요: ARCHIVELOG 모드가 필요하며, 아카이브 로그 파일 관리 필요
3.2.4 Instance Recovery (인스턴스 복구)
- 인스턴스 복구 단계
- 인스턴스 시작 (데이터 파일 비동기화): 인스턴스가 시작되면 데이터 파일은 메모리(SGA)와 동기화되지 않은 상태
- REDO (롤 포워드): 리두 로그 파일을 사용하여 데이터 파일에 기록되지 않은 커밋된 트랜잭션을 적용, 이 과정을 롤 포워드라고 부름
- 파일에 커밋/미커밋 데이터 포함: 롤 포워드 후 데이터 파일에는 커밋된 데이터와 아직 커밋되지 않은 데이터가 모두 포함됨
- 데이터베이스 Open: 데이터베이스가 Open 되어 사용자에게 서비스를 제공할 수 있는 상태가 됨
- UNDO (롤백): 언두 세그먼트를 사용하여 커밋되지 않은 트랜잭션을 롤백, 이 과정을 롤백이라고 부름
- 파일에 커밋된 데이터만 포함: 롤백 후 데이터 파일에는 커밋된 데이터만 남게 되어 데이터베이스의 일관성이 유지됨
3.2.5 Complete Recovery (완전 복구)
- 완전 복구 프로세스 단계
- 복원된 데이터 파일: 백업된 데이터 파일을 복원
- 변경 사항 적용 (아카이브 된 리두 로그, 온라인 리두 로그): 아카이브된 리두 로그 파일과 온라인 리두 로그 파일을 사용하여 복원된 데이터 파일에 변경 사항을 적용, 이 과정을 통해 데이터 파일은 특정 시점까지의 모든 커밋된 트랜잭션이 반영 됨
- 현시점까지 커밋/미커밋 트랜잭션 복구: 리두 로그 파일을 통해 커밋된 트랜잭션과 커밋되지 않은 트랜잭션을 모두 복구
- 언두 적용: 언두 세그먼트를 사용하여 커밋되지 않은 트랜잭션을 롤백, 이 과정을 통해 데이터베이스의 일관성 유지
- Recovery된 데이터 파일: 완전 복구가 완료된 데이터 파일은 모든 커밋된 트랜잭션을 반영하고 일관성 유지
3.2.6 Point-in-Time Recovery (특정 시점 복구)
- 특정 시점 복구 프로세스 단계
- 과거의 필요한 시점에서 복원된 데이터 파일: 백업된 데이터 파일을 특정 시점으로 복원
- PIT(point-in-time)에 적용된 변경 사항 (아카이브된 리두 로그, 온라인 리두 로그): 아카이브된 리두 로그 파일과 온라인 리두 로그 파일을 사용하여 복원된 데이터 파일에 PIT까지의 변경 사항을 적용, 이 과정을 통해 데이터 파일은 PIT까지의 모든 커밋된 트랜잭션 반영
- PIT까지 커밋/미커밋 트랜잭션 포함 데이터 파일: 리두 로그 파일을 통해 PIT까지의 커밋된 트랜잭션과 커밋되지 않은 트랜잭션을 모두 복구
- 데이터베이스 열림: 데이터베이스를 Open 하여 복구 작업 시작
- 언두 적용: 언두 세그먼트를 사용하여 PIT 이후의 커밋되지 않은 트랜잭션 롤백, 이 과정을 통해 데이터베이스의 일관성 유지
- PIT Recovery 데이터 파일: 특정 시점 복구가 완료된 데이터 파일은 PIT까지의 모든 커밋된 트랜잭션을 반영하고 PIT 이후의 변경 사항은 롤백되어 일관성 유지
3.2.7 RESETLOGS
- RESETLOGS 옵션의 필요성
- 불완전 복구의 특성: 불완전 복구는 특정 시점(PIT)으로 데이터베이스를 복원하는 과정으로 이 과정에서는 현재 시점의 리두 로그를 적용할 수 없음
- 새로운 리두 로그 생성: 과거의 특정 시점으로 복구했기 때문에 새로운 리두 로그 생성 필요
- RESETLOGS 옵션 사용: ALTER DATABASE OPEN RESETLOGS; 명령어를 사용하여 데이터베이스를 열고 새로운 리두 로그 생성
- RESETLOGS 옵션 사용 시 주의사항
- 새로운 Incarnation 생성: RESETLOGS 옵션을 사용하여 데이터베이스를 열면 이전 데이터베이스와 다른 새로운 Incarnation(데이터베이스의 새로운 버전) 생성
- 이전 백업 및 아카이브 로그 사용 불가: 새로운 Incarnation이 생성되므로 이전 백업 및 아카이브 로그를 사용할 수 없음
- RESETLOGS 옵션 사용 후 작업
- 백업 수행: RESETLOGS 옵션을 사용하여 데이터베이스를 연 후에는 반드시 새로운 백업을 수행해야 함
3.2.8 Flashback
- 플래시백 기술 개요
- 아카이브 로그 모드 필수: 플래시백 기능을 사용하려면 데이터베이스 아카이브 로그 모드 설정 필요
- 커밋 후 특정 시점 복구: 플래시백은 커밋된 트랜잭션 이후에도 특정 시점으로 데이터를 복원 가능
- 플래시백 기술 종류
- Flashback Database (플래시백 데이터베이스)
- 대상: 데이터베이스 전체
- 시나리오: 테이블 잘림(Truncate), 원치 않는 다중 테이블 변경
- 사용: 플래시백 로그(Flashback logs)
- 데이터 영향: TRUE (데이터 변경)
- Flashback Drop (플래시백 테이블 삭제 취소)
- 대상: 테이블 삭제(Drop)
- 시나리오: 테이블 삭제
- 사용: 휴지통(Recyclebin)
- 데이터 영향: TRUE (데이터 복구)
- Flashback Table (플래시백 테이블)
- 대상: 테이블
- 시나리오: 잘못된 WHERE 절을 사용한 업데이트
- 사용: 언두 데이터(Undo data)
- 데이터 영향: TRUE (데이터 변경)
- Flashback Query (플래시백 쿼리)
- 대상: 테이블
- 시나리오: 현재 데이터와 과거 데이터 비교
- 사용: 언두 데이터(Undo data)
- 데이터 영향: FALSE (데이터 조회만)
- Flashback Version Query (플래시백 버전 쿼리)
- 대상: 트랜잭션
- 시나리오: 행의 버전 비교
- 사용: 언두 데이터(Undo data)
- 데이터 영향: FALSE (데이터 조회만)
- Flashback Transaction (플래시백 트랜잭션)
- 대상: 트랜잭션
- 시나리오: 특정 트랜잭션 복구
- 사용: 언두 데이터(Undo data)
- 데이터 영향: TRUE (데이터 변경)
- Flashback Database (플래시백 데이터베이스)
- 플래시백 기술 활용
- 플래시백 데이터베이스: 플래시백 로그를 사용하여 데이터베이스 전체를 특정 시점으로 복원
- 플래시백 테이블: 언두 데이터를 사용하여 테이블을 특정 시점으로 복원
- 플래시백 트랜잭션: 언두 데이터를 사용하여 특정 트랜잭션 복구
- 플래시백 기술의 장점
- 빠른 복구: 백업 및 복구에 비해 빠른 복구 가능
- 유연성: 다양한 수준에서 데이터를 복구 가능
- 데이터 손실 최소화: 사용자 실수로 인한 데이터 손실을 최소화
- 플래시백 기술 사용 시 주의사항
- 아카이브 로그 모드 필수
- 언두 데이터 관리: 플래시백 기능을 사용하려면 충분한 언두 데이터 공간 필요
대상 | 시나리오 | 플래시백 기술 | 사용 | 데이터 영향 |
데이터베이스 | 테이블 잘림, 원치 않는 다중 테이블 변경 | 플래시백 데이터베이스 | 플래시백 로그 | TRUE |
테이블 | 테이블 삭제 | 플래시백 삭제 취소 | 휴지통 | TRUE |
테이블 | 잘못된 WHERE 절을 사용한 업데이트 | 플래시백 테이블 | 언두 데이터 | TRUE |
테이블 | 현재 데이터와 과거 데이터 비교 | 플래시백 쿼리 | 언두 데이터 | FALSE |
트랜잭션 | 행의 버전 비교 | 플래시백 버전 쿼리 | 언두 데이터 | FALSE |
트랜잭션 | 특정 트랜잭션 복구 | 플래시백 트랜잭 | 언두 데이터 | TRUE |
'Oracle Database > Training' 카테고리의 다른 글
5장. ACO (Advanced Compression Option) (0) | 2025.03.10 |
---|---|
4장. In-Memory (0) | 2025.03.10 |
2장. High Availability (0) | 2025.03.06 |
1장. Administration (0) | 2025.03.05 |