Oracle Database/Training

3장. Backup and Recovery

수상한 김토끼 2025. 3. 6. 17:07

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 등 다양한 기능이 있음
  • Physical Methods (물리적 방법)
    • O/S Backup and Restore:
      • 운영 체제 명령어를 사용하여 데이터 파일, 컨트롤 파일, 리두 로그 파일 등을 백업하고 복구하는 방식
      • 데이터베이스 전체를 백업 및 복구하는 데 사용
      • 데이터베이스 구조를 그대로 복원할 수 있음
    • RMAN Backup and Restore:
      • 오라클에서 제공하는 백업 및 복구 유틸리티
      • 데이터베이스 전체 또는 일부를 백업 및 복구하는 데 사용
      • 증분 백업, 압축, 암호화 등 다양한 기능을 지원
  • High Availability Methods (고가용성 방법)
    • Data Guard (Data HA):
      • 운영 데이터베이스의 변경 사항을 대기 데이터베이스에 실시간으로 동기화하여 데이터 고가용성 제공
      • 재해 복구(DR) 사이트를 구축하는 데 사용
      • Active Data Guard 옵션을 사용하면 대기 데이터베이스에서 읽기 전용 작업을 수행할 수 있음
    • RAC (O/S, Server 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 (데이터 변경)
  • 플래시백 기술 활용
    • 플래시백 데이터베이스: 플래시백 로그를 사용하여 데이터베이스 전체를 특정 시점으로 복원
    • 플래시백 테이블: 언두 데이터를 사용하여 테이블을 특정 시점으로 복원
    • 플래시백 트랜잭션: 언두 데이터를 사용하여 특정 트랜잭션 복구
  • 플래시백 기술의 장점
    • 빠른 복구: 백업 및 복구에 비해 빠른 복구 가능
    • 유연성: 다양한 수준에서 데이터를 복구 가능
    • 데이터 손실 최소화: 사용자 실수로 인한 데이터 손실을 최소화
  • 플래시백 기술 사용 시 주의사항
    • 아카이브 로그 모드 필수
    • 언두 데이터 관리: 플래시백 기능을 사용하려면 충분한 언두 데이터 공간 필요
대상 시나리오 플래시백 기술 사용 데이터 영향
데이터베이스 테이블 잘림, 원치 않는 다중 테이블 변경 플래시백 데이터베이스 플래시백 로그 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