Skip to content

13.8 백업, 복원, 마운트

백업은 생성 성공뿐 아니라 격리 환경의 마운트·복원과 표본 쿼리까지 검증해야 합니다. 경로, 권한, 저장 공간, 보존 기간, 암호화·접근 통제를 함께 운영합니다. 전체 SQL과 옵션은 백업·복원·마운트 구문을 참고합니다.

백업 선택

목적방식
인스턴스의 전체 복구 기준점데이터베이스 전체 백업
특정 테이블 이동·보존테이블 백업
이전 백업 이후 변경분증분 백업
특정 시간 범위 보관 파일기간 백업
운영 중 백업 조회읽기 전용 마운트
인스턴스 데이터 교체오프라인 복원

백업 종류를 선택하기 전에 에디션, 테이블 타입, 증분 체인, 마운트·복원 지원 범위를 현재 릴리스에서 확인합니다.

전체 백업

전체 백업은 독립 복구 기준점으로 보존합니다.

  • 백업 경로는 서버 프로세스가 접근합니다.
  • 대상 파일 시스템의 여유 공간과 할당량을 확인합니다.
  • 실행 시작·종료·오류와 결과 크기를 기록합니다.
  • 백업과 원본 데이터를 같은 장애 영역에만 두지 않습니다.
  • 정기적으로 격리 서버에 복원해 주요 테이블을 검증합니다.

테이블 백업

테이블 백업은 지원되는 테이블 타입과 인덱스·메타데이터 포함 범위를 확인합니다. 테이블 한 개를 복구할 때는 새 데이터베이스 또는 마운트에서 검증한 뒤 명시적인 INSERT·export/import 경로로 옮기는 방식을 우선합니다. 존재하는 운영 테이블을 즉시 교체하지 않습니다.

증분 백업과 AFTER

증분 백업은 이전 백업 이후의 변경분을 저장합니다. 복원에 필요한 기준 백업과 연결된 증분 백업을 하나의 체인으로 관리합니다.

  • 각 백업의 기준 백업과 생성 순서를 기록합니다.
  • 중간 파일 하나가 없을 때 복구 가능한지 점검합니다.
  • 마지막 증분만 따로 보관하지 않습니다.
  • 체인이 길어지면 새 전체 백업 기준점을 만듭니다.
  • 오프라인 복원은 최종 증분 백업 경로를 machadmin -r에 한 번 지정합니다. 전체 백업부터 각각 반복 적용하지 않습니다. 필요한 체인을 모두 보존한 상태에서 최종 시점의 데이터가 복원되는지 확인합니다.

기간 백업

기간 백업은 BACKUP DATABASE FROM ... TO ...로 시작 시각과 종료 시각을 지정합니다. 일반 조회의 WHERE 조건과 구문을 혼동하지 마십시오. 지정한 시간대와 경계 시각의 데이터를 포함해 백업 결과의 최소·최대 시각과 행 수를 원본과 비교합니다.

SQL BACKUP

BACKUP 실행 계정에는 필요한 데이터베이스·테이블 권한과 서버 경로 접근이 필요합니다. 운영 자동화에서는 비밀번호를 명령행에 고정하지 않고, 종료 코드와 작업 상태를 함께 확인합니다.

실행 전후 점검:

  1. 대상 데이터베이스·테이블과 백업 종류 확인
  2. 백업 대상 경로가 아직 존재하지 않는 고유한 경로인지 확인
  3. 여유 공간과 예상 증가량 확인
  4. 백업 작업 완료·오류 확인
  5. 결과 목록·크기·체크섬 또는 스토리지 검증
  6. 마운트·복원 표본 검증

오프라인 복원

machadmin -r을 사용하는 오프라인 복원은 현재 인스턴스 데이터를 교체하는 작업입니다. 기존 데이터베이스가 있으면 복원이 거부되므로, 현재 데이터의 보존과 복구 대상 확인을 완료한 뒤 검증된 절차에 따라 서버 종료와 기존 데이터베이스 제거를 수행합니다. 8.7.0 Standard Edition의 논리 데이터베이스 온라인 복원은 별도 SQL인 RESTORE DATABASE를 사용합니다. 두 복원 방식의 대상과 사전 조건을 구분하십시오.

  • 서비스와 모든 클라이언트·Collector를 중지할 계획을 세웁니다.
  • 현재 데이터의 별도 백업과 롤백 경로를 확보합니다.
  • 복원할 정확한 백업과 체인을 검증합니다.
  • 동일 릴리스·에디션·설정 호환성을 확인합니다.
  • 복구 담당자 두 명이 대상 인스턴스와 경로를 교차 확인합니다.
  • 격리 복구 훈련을 통과한 운영 절차서만 운영에 적용합니다.
  • 복원 뒤 스키마, 행 수, 시간 범위, 애플리케이션 쿼리를 검증합니다.

데이터베이스 마운트

마운트는 백업을 읽기 전용 데이터베이스로 연결해 조사·선별 복구할 때 사용합니다.

MOUNT DATABASE '/absolute/backup/path' TO mount_name;
UMOUNT DATABASE mount_name;

운영 활성 데이터베이스와 겹치지 않는 마운트 이름을 사용합니다. 마운트 경로와 권한은 서버 프로세스 기준입니다.

마운트된 데이터베이스 조회

SELECT *
FROM mount_name.SYS.table_name
WHERE _ARRIVAL_TIME >= TO_DATE('2026-01-01', 'YYYY-MM-DD');

먼저 테이블 목록과 스키마를 확인하고, 시간 범위·행 수·표본값을 검증합니다. 필요한 데이터는 현재 스키마와 중복 정책을 확인한 뒤 선별 이동합니다.

읽기 전용과 사용 중인 마운트

마운트된 데이터베이스에는 DDL·DML을 실행하지 않습니다. 열린 커서나 문장이 있으면 마운트 해제가 거부될 수 있으므로 모든 참조를 닫고 재시도합니다. 활성 데이터베이스나 다른 마운트와 이름이 충돌하지 않는지 먼저 확인합니다.

지원하지 않는 경로

일부 내부 문법이 성공처럼 보이더라도 공개 운영 API가 아닌 MOUNT TABLE·UMOUNT TABLE에 의존하지 않습니다. 공개 MOUNT DATABASEUMOUNT DATABASE를 사용합니다.

테이블 타입과 에디션별 범위

LOG, TAG, TRANSACTION, LOOKUP, VOLATILE의 백업·마운트 동작은 동일하지 않습니다. VOLATILE은 서버 재시작에 유지되지 않는 메모리 테이블입니다. 테이블·에디션별 범위는 백업·마운트 지원 범위를 확인합니다.

복구 검증표

  • 데이터베이스·소유자·테이블 수
  • 주요 테이블 스키마와 인덱스
  • 행 수와 최소·최대 시간
  • NULL·문자열·숫자 표본
  • 사용자·권한과 애플리케이션 연결
  • ROLLUP·보존 정책·작업 상태
  • 백업 시점 이후 데이터의 처리
  • 롤백 가능 여부와 실제 소요 시간
최근 업데이트