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

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

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

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

참고:

단일 노드 DB 시스템에서 DBCLI를 사용하여 오브젝트 스토리지에 백업할 수 있습니다. 백업 모듈을 설치하고 백업을 위해 RMAN를 사용하는 대신 사용할 수 있습니다. 자세한 내용은 Objectstoreswift 명령을 참조하십시오. dbcli 명령은 다중 노드 RAC DB 시스템에 사용할 수 없습니다.

필요 조건

다음이 필요합니다.

  • 백업할 DB 시스템 및 데이터베이스입니다.
  • DB 시스템의 클라우드 네트워크(VCN)는 오브젝트 스토리지에 대한 접근 권한으로 구성되어야 합니다.
    • DB 시스템과 동일한 리전에서 오브젝트 스토리지 액세스의 경우: Oracle은 서비스 게이트웨이를 사용할 것을 권장합니다.
    • DB 시스템이 아닌 다른 지역의 오브젝트 스토리지 액세스: 인터넷 게이트웨이를 사용합니다. DB 시스템과 오브젝트 스토리지 간의 네트워크 트래픽은 클라우드를 떠나지 않고 공용 인터넷에 도달하지 않습니다.

    자세한 내용은 VCN 및 서브넷을 참조하십시오.

  • 백업 대상으로 사용할 기존 오브젝트 스토리지 버킷입니다. 콘솔 또는 오브젝트 스토리지 API를 사용하여 버킷을 생성할 수 있습니다.

    자세한 내용은 Managing Buckets를 참조하십시오.

  • OCI에서 생성된 인증 토큰입니다. 콘솔 또는 IAM API를 사용하여 암호를 생성할 수 있습니다.

    자세한 내용은 사용자 자격 증명 관리인증 토큰 작업을 참조하십시오.

  • 사용자 이름(백업 모듈을 설치하고 사용할 때 지정됨)에는 Object Storage에 대한 테넌시 레벨 액세스 권한이 있어야 합니다. 이렇게 하는 쉬운 방법은 관리자 그룹에 사용자 이름을 추가하는 것입니다. 하지만 이렇게 하면 모든 클라우드 서비스에 액세스할 수 있습니다. 대신 관리자는 데이터베이스 백업 및 복원을 위해 오브젝트 스토리지의 필수 리소스로만 액세스를 제한하는 다음과 같은 정책을 생성해야 합니다.

    Allow group <group_name> to manage objects in compartment <compartment_name> where target.bucket.name = '<bucket_name>'
    
    Allow group <group_name> to read buckets in compartment <compartment_name>

    그룹에 사용자 추가에 대한 자세한 내용은 그룹 관리를 참조하십시오. 정책에 대한 자세한 내용은 정책 시작을 참조하십시오.

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 네임스페이스 이해를 참조하십시오.

    Object Storage 네임스페이스 뒤에 슬래시를 추가하지 마십시오.

    영역 이름을 조회하려면 Regions and Availability Domains을 참조하십시오.

RMAN 구성

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

  1. DB 시스템에서 oraenv 유틸리티를 사용하여 ORACLE_HOMEORACLE_SID 환경 변수를 설정합니다.
    . oraenv
  2. RMAN을 사용하여 데이터베이스에 연결한 다음
    rman target /
  3. SBT 장치를 사용하여 백업 모듈을 설치할 때 생성된 config 파일을 가리키도록 RMAN을 구성합니다. 버전 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 Backup and Recovery 설명서를 참조하십시오.
    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. 데이터베이스 및 archivelog를 백업합니다. 다음은 명령의 예입니다. 요구 사항에 맞는 백업 절차 선택에 대한 자세한 내용은 사용 중인 Oracle 버전의 Oracle Backup and Recovery 설명서를 참조하십시오. 잠재적인 데이터 손실을 최소화하기 위해 정기적으로 백업하고 항상 spfile 및 controlfile 복사본을 포함해야 합니다. 아래 예제에서는 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;

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