RMAN을 사용하여 오브젝트 스토리지에 데이터베이스 백업

이 문서에서는 RMAN(Recovery Manager)을 사용하여 사용자 고유의 오브젝트 스토리지에 대한 DB 시스템 데이터베이스의 백업을 관리하는 방법에 대해 설명합니다.

서비스에 백업하려면 백업용 오브젝트 스토리지 버킷을 생성하고, 서비스에 대한 비밀번호를 생성하고, Oracle Database Cloud Backup 모듈을 설치한 다음, 서비스에 백업을 전송하도록 RMAN을 구성해야 합니다. 백업 모듈은 RMAN과 긴밀하게 통합된 SBT(시스템 백업-테이프) 인터페이스이므로 익숙한 RMAN 명령을 사용하여 백업 및 recovery 작업을 수행할 수 있습니다.

콘솔 및 서비스에 대한 끝점 URL에 언급된 Swift가 표시됩니다. 그 이유는 백업 모듈이 일반적으로 OpenStack Swift 객체 저장소인 Oracle Database Backup Cloud Service에 백업하는 데 사용되기 때문입니다.

참고: DB 시스템에서는 DBCLI를 사용하여 오브젝트 스토리지에 백업할 수 있습니다. 이 방법은 백업 모듈을 설치하고 백업에 RMAN를 사용하는 대신 사용할 수 있습니다. 자세한 내용은 Objectstoreswift 명령을 참조하십시오.

선행 조건

다음이 필요합니다.

DB 시스템에 백업 모듈 설치

  1. DB 시스템에 SSH로 접속합니다.

    ssh -i <SSH_key_used_when_launching_the_DB_system> opc@<DB_system_IP_address_or_hostname>
  2. opc 사용자로 로그인합니다.

    login as: opc
  3. sudo - oracle 사용자.

    sudo su - oracle
  4. 백업 모듈 opc_install.jar 파일이 포함된 디렉토리로 변경합니다.

    cd /opt/oracle/oak/pkgrepos/oss/odbcs
  5. 다음 명령 구문을 사용하여 백업 모듈을 설치합니다.

    java -jar opc_install.jar
        -opcId <user_id>
        -opcPass '<auth_token>'
        -container <bucket_name>
        -walletDir ~/hsbtwallet/
        -libDir ~/lib/
        -configfile ~/config
        -host https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>

    다음과 같은 매개변수가 있습니다.

    매개변수 설명
    -opcId Oracle Cloud Infrastructure 사용자 계정의 사용자 이름입니다(예: -opcId <username>@<example>.com).
    콘솔에 사인인하는 데 사용하는 사용자 이름입니다.
    사용자 이름은 사전 요구 사항 섹션에 설명된 대로 관리자 그룹의 멤버여야 합니다.
    사용자 이름을 작은 따옴표로 묶어 지정할 수도 있습니다. 이름에 특수 문자가 포함된 경우 이 작업이 필요할 수 있습니다. 예: -opcId 'j~smith@<example>.com'
    직선 작은 따옴표를 사용하고 경사 아포스트로피는 사용하지 마십시오.
    -opcPass 콘솔 또는 IAM API를 사용하여 생성되는 인증 토큰은 작은 따옴표로 묶습니다. 예: -opcPass <password>
    경사 아포스트로피가 아닌 작은 따옴표를 사용해야 합니다.
    자세한 내용은 사용자 인증서 관리를 참조하십시오.
    Oracle Cloud Infrastructure 사용자의 비밀번호는 아닙니다.
    -container 백업 대상으로 사용할 오브젝트 스토리지의 기존 버킷 이름(예: -container DBBackups)입니다.
    -walletDir 설치 툴이 Oracle Cloud Infrastructure 사용자 이름 및 인증 토큰을 포함하는 Oracle Wallet을 생성할 디렉토리입니다.
    -walletDir ~/hsbtwallet는 현재 사용자(oracle) 홈 디렉토리에 전자 지갑을 생성합니다.
    -libDir SBT 라이브러리가 저장되는 디렉토리입니다. 명령을 실행하기 전에 디렉토리가 존재해야 합니다. 이 매개변수로 인해 최신 SBT 라이브러리가 다운로드됩니다.
    -libDir ~/lib/는 libopc.so 파일을 현재 사용자의 홈 디렉토리(예: /home/oracle/lib/libopc.so)로 다운로드합니다.
    -configfile 설치 도구를 통해 생성되는 초기화 매개변수 파일의 이름입니다. 이 파일은 RMAN 작업에서 참조됩니다.
    -configfile ~/config는 현재 사용자의 홈 디렉토리(예: /home/oracle/config)에 파일을 생성합니다.
    -host 백업이 전송될 끝점 URL:
    https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>
    여기서 object_storage_namespace는 테넌시의 오브젝트 스토리지 네임스페이스입니다. 자세한 내용은 객체 스토리지 네임스페이스 이해를 참조하십시오.
    Object Storage 네임스페이스 뒤에 슬래시를 추가하지 마십시오.
    영역 이름을 조회하려면 영역 및 가용성 도메인을 참조하십시오.

RMAN 구성

이 항목에서는 버킷을 기본 백업 대상으로 사용하도록 RMAN을 구성하는 방법에 대해 설명합니다. 다음은 아직 DB 시스템에 로그인되어 있다고 가정합니다.

  1. DB 시스템에서 oraenv 유틸리티를 사용하여 ORACLE_HOME 및 ORACLE_SID 환경 변수를 설정합니다.

    . oraenv
  2. RMAN를 사용하여 데이터베이스에 연결합니다.

    rman target /
  3. SBT 장치를 사용하도록 RMAN을 구성하고 백업 모듈을 설치할 때 생성된 config 파일을 가리키도록 합니다. 다음은 버전 12 데이터베이스에 대한 샘플 명령입니다.

    CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS
        'SBT_LIBRARY=/home/oracle/lib/libopc.so,
        SBT_PARMS=(OPC_PFILE=/home/oracle/config)';
  4. 기본적으로 SBT_TAPE를 사용하도록 RMAN을 구성합니다. 다음 샘플에서는 제어 파일 및 spfile 자동 백업을 SBT_TAPE로 사용으로 설정하고 암호화를 구성합니다. 압축, 사용할 백업 및 recovery 채널 수, 백업 retention 정책, 아카이브된 로그 삭제 정책 등과 같은 다른 설정이 설치에 적용될 수 있습니다. 적절한 설정 선택에 대한 자세한 내용은 해당 Oracle 버전의 Oracle 백업 및 복구 설명서를 참조하십시오.

    CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;
    CONFIGURE BACKUP OPTIMIZATION ON;
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F';
    CONFIGURE ENCRYPTION FOR DATABASE ON;

주: 백업은 암호화되어야 합니다. 백업을 수행할 때 암호화를 지정합니다. 백업이 암호화되지 않은 경우 오류가 발생합니다.

RMAN 구성이 완료되면 테이프 백업에 정기적으로 사용하는 것과 동일한 RMAN 명령을 사용할 수 있습니다.

데이터베이스 백업

이 항목에서는 일반적으로 사용되는 백업 명령의 예를 제공합니다.

  1. 데이터베이스 암호화를 설정합니다.

    SET ENCRYPTION IDENTIFIED BY "password" ONLY;

    이 설정은 영구적이지 않으므로 새 RMAN 세션마다 설정해야 합니다.

  2. 데이터베이스 및 아카이브 로그를 백업합니다. 다음은 몇 가지 예제 명령입니다. 요구 사항에 맞는 백업 절차 선택에 대한 자세한 내용은 사용 중인 Oracle 버전의 Oracle Backup and Recovery 설명서를 참조하십시오. 잠재적인 데이터 손실을 최소화하려면 정기적으로 백업해야 하며 항상 spfile 및 제어 파일의 복사본을 포함해야 합니다. 아래 예제에서는 12c에서 도입된 기능인 멀티섹션 증분 백업을 사용합니다. 11g를 사용하는 경우 section size 절을 생략합니다.

    BACKUP INCREMENTAL LEVEL 0 SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
    BACKUP INCREMENTAL LEVEL 1 SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
    BACKUP INCREMENTAL LEVEL 1 CUMULATIVE SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
  3. 아카이브 로그를 자주 백업하여 잠재적인 데이터 손실을 최소화하고 여러 백업 복사본을 예방책으로 유지합니다.

    BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES;

백업 작업이 완료되면 스토리지 페이지의 콘솔에서 오브젝트 스토리지를 선택하여 버킷에 백업 파일을 표시할 수 있습니다.