Oracle Database 백업 구성에 대해 알아보기

온프레미스 데이터베이스를 OCI Object Storage 버킷에 백업합니다.

소스 데이터베이스에 Oracle Database 백업 모듈 설치

먼저 OCI용 Oracle Database Cloud Backup Module을 설치하여 OCI로 백업합니다.

모듈을 다운로드하고(시작하기 전에 참조) 데이터베이스 서버에 설치합니다.
  1. 소스 데이터베이스 서버에 모듈을 설치합니다.
  2. 디렉토리를 JAR 파일이 있는 oci_installer로 변경합니다.
  3. JAR 파일을 설치합니다.
  4. 입력:
    • 영역 ID
    • 공용 키 지문
    • 테넌시 OCID
    • 사용자 OCID
    • 구획 OCID
    • 이전에 생성한 버킷 이름
  5. 디렉토리 제공:
    • 라이브러리
    • 전자 지갑
    • 전용 키 파일
    java -jar oci_install.jar \ 
    -host https://objectstorage.us-langley-1.oraclegovcloud.com -pvtKeyFile /tmp/-01-31-22-38.pem \ 
    -pubFingerPrint 2k:cd:cv:71:6f:ab:6f:xz:ef:72:gh:cc \ 
    -uOCID ocid1.user.oc2..aaaaaabc \ 
    -tOCID ocid1.tenancy.oc2..aaaaadef \ 
    -walletDir $ORACLE_HOME/lib/oci_wallet \
    -libDir $ORACLE_HOME/lib -bucket bucket-20230131-1601-modbac \ -cOCID ocid1.compartment.oc2..aaaaaghi

    지문, 테넌시, 사용자 OCID 및 정부별 엔드포인트를 캡처하려면 자세히 탐색을 참조하십시오. 구획 OCID의 경우 ID 및 보안으로 이동하여 ID 구획에서 OCID를 사용할 구획을 누르고 OCID를 복사합니다.

클라우드 백업을 지원하도록 RMAN 구성

필요한 백업 모듈을 설치하고 RMAN(Recovery Manager) 설정을 구성한 후에는 익숙한 RMAN 명령을 사용하여 백업을 생성할 수 있습니다. 클라우드 백업에 대한 정보는 데이터베이스 콘트롤 파일과 Recovery Catalog(사용하는 경우)에서 유지 관리됩니다.

계정의 클라우드 저장 영역 위치를 백업하기 전에 일부 RMAN 속성을 구성해야 합니다.

  • 백업 보존 기간 설정(30일)
  • 방금 설치한 라이브러리 및 구성 파일을 사용하는 sbt_tape라는 장치 유형 설정 클라우드에서 정의된 스토리지 청크의 이름은 onPremBackup_로 시작됩니다.
  • 암호화를 켜는 중입니다. 이는 데이터 보안을 위한 것이며 온프레미스-클라우드 백업 시나리오에 필수적입니다.
  • 여러 스레드가 데이터 파일을 백업하고 복원하도록 병렬도를 설정합니다. 성능 향상을 위한 것입니다.
  • RMAN이 클라우드로의 불필요한 전송을 수행하지 않도록 백업 최적화를 ON으로 설정합니다. 예를 들어, 백업 파일이 이미 존재하고 "새" 백업을 수행하기 전에 변경 사항이 없는 경우 이 파일은 처리되지 않으므로 시간이 절약됩니다.
  • 클라우드로 이동하는 파일과 클라우드에서 이동하는 파일의 압축 레벨 설정
  • 모든 백업에 대한 기본값으로 sbt_tape 장치 구성
  • 다음을 사용하여 RMAN을 로컬 데이터베이스에 연결합니다.
    RMAN> run {
    
    configure retention policy to recovery window of 30 days;
    
    CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' MAXPIECESIZE 2 G FORMAT 'onPremBackup' PARMS 'SBT_LIBRARY=/u01/app/oracle/product/19c/dbhome_1/lib/libopc.so ENV=(OPC_PFILE=/u01/app/oracle/product/19c/dbhome_1/dbs/opcORCL.ora)';
    
    configure encryption for database on;
    
    configure device type 'sbt_tape' parallelism 1 backup type to backupset;
    
    configure backup optimization on;
    
    configure compression algorithm 'MEDIUM' as of release 'default' optimize for load true;
    
    configure default device type to sbt_tape;
    
    }

온-프레미스 데이터베이스 백업

보안상의 이유로 OCI에 백업하려면 암호화를 사용해야 합니다. 옵션은{\f2732 Transparent Data Encryption(TDE) }또는 암호 암호화{\f2732 (password encryption) }또는 둘 다입니다{\f2732 .} 비밀번호 암호화를 사용합니다.

백업 및 복구의 경우 셸 스크립트 또는 RMAN 실행 블록에서 이 명령 시퀀스를 실행합니다.
  1. 암호화를 설정합니다.
    RMAN> set encryption on identified by ‘password’ only;
  2. backup 명령을 실행합니다.
    RMAN> backup as compressed backupset tag ‘onprem’ database plus archivelog;
  3. 참고:

    백업을 생성할 때 파일 청크는 구획의 사용자 정의 오브젝트 스토리지 버킷 db_backups에 배치되거나 oracle-data-storage-xxx이라는 시스템 생성 컨테이너를 사용합니다. 백업 명령이 완료되면 백업이 클라우드로 전환되었는지 확인할 수 있습니다.
    RMAN을 사용하여 list backup summary를 입력하여 백업 파일을 확인합니다.
    RMAN> create restore point gold preserve;
  4. RMAN을 종료합니다.

OCI 클라우드에서 백업 검증

Oracle Cloud Infrastructure Object Storage로 백업을 검증합니다. 검증이 완료되면 테스트할 테이블을 삭제한 다음 복원을 계속할 수 있습니다.

  1. Oracle Cloud 콘솔을 엽니다.
  2. 오브젝트 스토리지를 엽니다.
    • 기본 메뉴에서 스토리지, 오브젝트 스토리지를 차례로 누릅니다.
    • 검색 표시줄에 "object storage"를 입력하고 Enter를 누릅니다.
  3. 목록 범위에서 구획을 선택합니다.
    그러면 백업된 버킷이 사용자 생성 이름 또는 시스템 생성 이름으로 표시됩니다.
  4. 백업 버킷을 선택하여 백업 셋의 file_chunks을 확인합니다.

데이터베이스 복원 및 Recovery 테스트

데이터베이스를 삭제하기 전의 시점으로 데이터베이스를 복원합니다.

  1. RMAN 세션으로 전환합니다.
    rman target /
  2. 데이터베이스를 종료합니다.
    RMAN>Shutdown immediate;
  3. 마운트를 시작합니다.
    RMAN>Startup mount
  4. 암호를 해독합니다.
    RMAN> set decryption identified by ‘Oracle_1’;
  5. 참고:

    다음 단계는 전체 데이터베이스를 매체 복구가 발생할 수 있는 지점으로 가져옵니다. 그러면 데이터베이스가 오프라인 상태가 됩니다. 데이터베이스에 PDB가 여러 개 있고 다른 PDB를 온라인 상태로 유지하면서 데이터를 하나만 복구해야 하는 경우 이 단계를 사용하여 PDB를 닫고 PDB를 복원 및 복원 지점으로 복구할 수 있습니다. 이 방법을 사용하는 데 시간이 좀 더 걸리므로 이러한 지침을 위해 전체 데이터베이스를 복구합니다.
    전체 데이터베이스를 복구하십시오.
    RMAN> run {
    restore database;
    
    Recover database to restore point gold;
    
    Alter database open reset logs;
    
        }

    참고:

    이 백업 스크립트는 백업 프로세스를 자동화하는 cronjob을 사용하여 매일 또는 매주 정해진 시간에 실행되도록 예약할 수 있습니다.
  6. 데이터베이스에서 query 명령을 실행하여 데이터베이스를 확인합니다.
    그러면 Recovery된 데이터베이스가 표시됩니다.