본문 바로가기
Database

오라클 데이터베이스의 백업 및 복구 기본

by 굿센스굿 2024. 12. 3.
반응형

 


1. 데이터베이스 백업 및 복구의 중요성

데이터베이스 백업 및 복구는 시스템 장애, 데이터 손실, 하드웨어 고장 등 예기치 못한 상황에서 데이터의 무결성과 가용성을 유지하기 위한 핵심적인 작업입니다. 오라클 데이터베이스에서는 다양한 백업 및 복구 방법을 제공하며, 이를 통해 데이터 손실을 최소화할 수 있습니다.


2. 오라클 백업의 종류

오라클 데이터베이스의 백업은 크게 두 가지로 나눌 수 있습니다.

  1. 물리적 백업 (Physical Backup)
    • 데이터베이스 파일(데이터 파일, 제어 파일, 리두 로그 파일 등)을 복사하여 저장.
    • RMAN(Recovery Manager): 오라클에서 제공하는 백업 및 복구 도구를 이용하여 수행.
  2. 논리적 백업 (Logical Backup)
    • 데이터베이스 객체(테이블, 인덱스 등)나 데이터를 논리적으로 덤프하여 저장.
    • 데이터 펌프(Data Pump) 또는 EXP/IMP(Export/Import) 유틸리티 사용.

3. 백업 및 복구 작업의 주요 구성 요소

  1. 데이터 파일
    • 실제 데이터가 저장된 파일.
    • 데이터 손실 시 복구 대상의 핵심.
  2. 제어 파일(Control File)
    • 데이터베이스 구조, 파일 경로 등을 관리하는 메타데이터 파일.
  3. 리두 로그 파일(Redo Log File)
    • 트랜잭션 변경 내역을 기록.
    • 복구 시 데이터 복원에 사용.
  4. 아카이브 로그(Archive Log)
    • 리두 로그의 백업본으로, 데이터 손실 없이 지속적인 복구를 가능하게 함.

4. 백업 방법

(1) RMAN을 이용한 물리적 백업

RMAN은 오라클에서 제공하는 강력한 백업 및 복구 도구입니다.

  • RMAN 백업 설정
  • RMAN> BACKUP DATABASE;
  • 아카이브 로그 백업
  • RMAN> BACKUP ARCHIVELOG ALL;

(2) 데이터 펌프를 이용한 논리적 백업

데이터 펌프는 오라클 객체 및 데이터를 내보내고 가져오는 유틸리티입니다.

  • 데이터 내보내기 (EXPORT)
  • expdp system/password DIRECTORY=data_pump_dir DUMPFILE=backup.dmp LOGFILE=backup.log FULL=Y
  • 데이터 가져오기 (IMPORT)
  • impdp system/password DIRECTORY=data_pump_dir DUMPFILE=backup.dmp LOGFILE=restore.log FULL=Y

(3) 사용자 정의 스크립트를 이용한 백업

데이터베이스 파일을 수동으로 복사하거나 사용자 정의 스크립트를 작성하여 정기적인 백업 수행.


5. 복구 방법

(1) RMAN을 이용한 복구

  • 전체 데이터베이스 복구
  • RMAN> RESTORE DATABASE; RMAN> RECOVER DATABASE;
  • 특정 테이블 복구
    RMAN을 사용하여 특정 테이블 공간만 복구 가능.

(2) 논리적 복구 (Data Pump 또는 IMP/EXP)

  • 개별 테이블 복구
    데이터 펌프를 사용하여 특정 테이블을 복구 가능.
    impdp system/password DIRECTORY=data_pump_dir DUMPFILE=backup.dmp TABLES=employees LOGFILE=restore_employees.log
    

(3) 아카이브 로그를 이용한 복구

아카이브 로그를 사용하면 데이터베이스 장애 후 특정 시점으로 복구 가능.

SQL> RECOVER DATABASE UNTIL TIME 'YYYY-MM-DD HH24:MI:SS';

6. 백업 및 복구 계획의 구성

  1. 백업 주기 설정
    • 전체 백업(Full Backup): 주기적으로 수행.
    • 증분 백업(Incremental Backup): 변경된 데이터만 백업하여 시간 및 저장 공간 절약.
  2. 아카이브 로그 관리
    • 아카이브 모드를 활성화하여 지속적인 데이터 보호.
  3. 복구 시나리오 테스트
    • 주기적으로 복구 테스트를 수행하여 백업의 신뢰성을 확인.

7. 예제 시나리오

데이터 손실 발생 시 복구

  1. 장애 상황: 직원 테이블(employees)의 데이터가 삭제됨.
  2. 복구 방법: RMAN과 아카이브 로그를 사용하여 데이터 복구.
-- RMAN 복구 명령어
RMAN> STARTUP MOUNT;
RMAN> RESTORE TABLESPACE users;
RMAN> RECOVER TABLESPACE users;
RMAN> ALTER DATABASE OPEN;

8. 결론

오라클 데이터베이스의 백업 및 복구는 데이터 보호를 위한 필수 작업입니다.

  • RMAN 데이터 펌프는 각각 물리적, 논리적 백업을 위한 강력한 도구이며,
  • 아카이브 로그는 데이터 무결성을 유지하면서 복구 가능성을 높입니다.

체계적인 백업 및 복구 계획을 수립하고, 주기적인 테스트를 통해 데이터베이스의 안정성과 가용성을 보장해야 합니다.

반응형