OCI Classic 객체 저장소에서 데이터베이스 복구

이 문서에서는 Oracle Database Backup Module에서 생성되고 Oracle Cloud Infrastructure Object Storage Classic에 저장된 백업을 사용하여 데이터베이스를 복구하는 방법에 대해 설명합니다.

이 항목에서는 다음 용어가 사용됩니다.

  • 소스 데이터베이스: Object Storage Classic의 데이터베이스 백업입니다.
  • 대상 데이터베이스: Oracle Cloud Infrastructure의 DB 시스템에 있는 새 데이터베이스입니다.

필요 조건

다음이 필요합니다.

  • Oracle Cloud Infrastructure Object Storage Classic에 대한 서비스 이름, ID 이름, 컨테이너, 사용자 이름 및 비밀번호입니다.
  • Object Storage Classic에 백업할 때 비밀번호 기반 암호화가 사용된 경우의 백업 비밀번호입니다.
  • 소스 데이터베이스 ID, 데이터베이스 이름, 데이터베이스 고유 이름(스토리지 설정에 필요함)입니다.
  • 소스 데이터베이스가 TDE(Transparent Data Encryption)로 구성된 경우 전자 지갑(wallet)과 전자 지갑 암호의 백업이 필요합니다.
  • 데이터베이스 링크에 대해 설정할 Tnsnames입니다.
  • 참조용 소스 데이터베이스 Oracle_home에 대한 Opatch lsinventory의 출력입니다.
  • 소스 데이터베이스 홈의 sqlpatch 디렉토리 복사본입니다. Target Database에 이러한 패치가 포함되어 있지 않은 경우 롤백에 필요합니다.

DB 시스템에 스토리지 설정

  1. DB 시스템에 SSH로 접속합니다.
    ssh -i <private_key_path> opc@<db_system_ip_address>
  2. opc로 로그인한 다음 root 유저로 sudo합니다. sudo su -를 하이픈과 함께 사용하여 루트 사용자의 프로파일을 호출합니다. 그러면 PATH가 dbcli 디렉토리(/opt/oracle/dcs/bin)로 설정됩니다.
    login as: opc
    sudo su - 
  3. Dbstorage 명령을 사용하여 DATA, RECO 및 REDO 스토리지에 대한 디렉토리를 설정합니다. 다음 예에서는 tdetest 데이터베이스에 대해 10GB의 ACFS 저장소를 만듭니다.
    dbcli create-dbstorage --dbname tdetest --dataSize 10 --dbstorage ACFS 

    주:

    버전 11.2 데이터베이스를 마이그레이션할 때는 ACFS 스토리지를 지정해야 합니다.
  4. Dbstorage Commands(Dbstorage 명령)를 사용하여 저장소 ID를 나열합니다. 다음 단계에 대한 ID가 필요합니다.
    dbcli list-dbstorages
    출력:
    ID                                       Type   DBUnique Name        Status
    ---------------------------------------- ------ -------------------- ----------
    9dcdfb8e-e589-4d5f-861a-e5ba981616ed     Acfs   tdetest              Configured
  5. 이전 단계의 스토리지 ID와 함께 Dbstorage Commands을 사용하여 DATA, RECO, REDO 위치를 나열합니다.
    dbcli describe-dbstorage --id 9dcdfb8e-e589-4d5f-861a-e5ba981616ed
    출력:
    DBStorage details
    ----------------------------------------------------------------
                         ID: 9dcdfb8e-e589-4d5f-861a-e5ba981616ed
                    DB Name: tdetest
              DBUnique Name: tdetest
             DB Resource ID:
               Storage Type: Acfs
              DATA Location: /u02/app/oracle/oradata/tdetest
              RECO Location: /u03/app/oracle/fast_recovery_area/
              REDO Location: /u03/app/oracle/redo/
                      State: ResourceState(status=Configured)
                    Created: August 24, 2016 5:25:38 PM UTC
                UpdatedTime: August 24, 2016 5:25:53 PM UTC 
  6. DATA, RECO 및 REDO 위치를 기록해 둡니다. 나중에 데이터베이스에 대한 db_create_file_dest, db_create_online_log_destdb_recovery_file_dest 매개변수를 설정하려면 이 매개변수가 필요합니다.

ORACLE_HOME를 선택합니다.

데이터베이스 복원에 사용할 ORACLE_HOME를 결정한 다음 올바른 ORACLE_BASE, ORACLE_HOME 및 PATH 설정을 사용하여 해당 홈으로 전환합니다. ORACLE_HOME가 아직 데이터베이스와 연관되어 있지 않아야 합니다.

기존 ORACLE_HOMEs 목록을 가져오고 ORACLE_HOME가 비어 있는지 확인하려면 각각 Dbhome 명령데이터베이스 명령을 사용합니다. 새 ORACLE_HOME를 만들려면 Dbhome 명령을 사용합니다.

소스 데이터베이스 전자 지갑(Wallet) 복사

소스 데이터베이스가 TDE로 구성되지 않은 경우 이 섹션을 건너뜁니다.

  1. DB 시스템에서 oracle 유저로 로그인합니다.
    sudo su - oracle
  2. 다음 디렉토리가 아직 없으면 생성합니다.
    mkdir /opt/oracle/dcs/commonstore/wallets/tde/<db_unique_name>
  3. 소스 데이터베이스의 ewallet.p12 파일을 이전 단계에서 생성한 디렉토리로 복사합니다.
  4. 대상 호스트에서 $ORACLE_HOME/network/admin/sqlnet.ora에 다음 행이 포함되어 있는지 확인합니다.
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))

    파일에 없는 경우 라인을 추가합니다. (새 홈이고 이 호스트에 데이터베이스가 아직 생성되지 않은 경우 행이 없을 수 있습니다.)

  5. 복원 및 recovery 작업 중 전자 지갑을 자동으로 열 수 있도록 암호 기반 전자 지갑(wallet)에서 자동 로그인 전자 지갑을 생성합니다.

    버전 12.1 이상 데이터베이스의 경우 ADMINISTER KEY MANAGEMENT 명령을 사용합니다.

    $cat create_autologin_12.sh
    
    #!/bin/sh
    if [ $# -lt 2 ]; then
            echo "Usage: $0 <dbuniquename><remotewalletlocation>"
            exit 1;
    fi
    
    mkdir /opt/oracle/dcs/commonstore/wallets/tde/$1
    cp $2/ewallet.p12* /opt/oracle/dcs/commonstore/wallets/tde/$1
    rm -f autokey.ora
    echo "db_name=$1"  > autokey.ora
    autokeystoreLog="autologinKeystore_`date +%Y%m%d_%H%M%S_%N`.log"
    echo "Enter Keystore Password:"
    read -s keystorePassword
    echo "Creating AutoLoginKeystore -> "
    sqlplus "/as sysdba"  <<EOF
    spool $autokeystoreLog
    set echo on
    startup nomount pfile=autokey.ora
    ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE
    FROM KEYSTORE '/opt/oracle/dcs/commonstore/wallets/tde/$1' -- Keystore location
    IDENTIFIED BY "$keystorePassword";
    shutdown immediate;
    EOF

    oracle:asmadmin에서 oracle:oinstallcwallet.sso 권한을 조정합니다.

    ls -ltr /opt/oracle/dcs/commonstore/wallets/tde/<db_unique_name>
    출력:
    total 20
    -rw-r--r-- 1 oracle oinstall 5680 Jul  6 11:39 ewallet.p12
    -rw-r--r-- 1 oracle asmadmin 5725 Jul  6 11:39 cwallet.sso

    버전 11.2 데이터베이스의 경우 orapki 명령을 사용합니다.

    orapki wallet create -wallet wallet_location -auto_login [-pwd password]

Oracle Database 백업 모듈 설치

백업 모듈 JAR 파일은 DB 시스템에 포함되어 있지만 설치해야 합니다.

  1. DB 시스템에 SSH로 접속하고 opc로 로그인한 다음 oracle 유저로 로그인합니다.
    ssh -i <path to SSH key used when launching the DB System> opc@<DB System IP address or hostname>
    sudo su - oracle
  2. 백업 모듈 opc_install.jar 파일을 포함하는 디렉토리로 변경합니다.
    cd /opt/oracle/oak/pkgrepos/orapkgs/oss/<version>/
  3. 백업 모듈을 설치하려면 Oracle Database Backup Cloud Service 사용OCI Classic용 Oracle Database Cloud Backup 모듈 설치에 설명된 명령 구문을 참조하십시오.

환경 변수 설정

데이터베이스의 RMAN 및 SQL*Plus 세션에 대해 다음 환경 변수를 설정합니다.

ORACLE_HOME=<path of Oracle Home where the database is to be restored>
ORACLE_SID=<database instance name>
ORACLE_UNQNAME=<db_unique_name in lower case>
NLS_DATE_FORMAT="mm/dd/yyyy hh24:mi:ss"

RMAN SBT 채널 할당

각 복원 작업에 대해 SBT 채널을 할당하고 SBT_LIBRARY 파라미터를 libopc.so 파일의 위치로 설정하고 OPC_FILE 파라미터를 opc_sbt.ora 파일의 위치로 설정합니다. 예를 들면 다음과 같습니다.

ALLOCATE CHANNEL c1 DEVICE TYPE sbt MAXPIECESIZE 2 G FORMAT '%d_%I_%U' PARMS 'SBT_LIBRARY=/tmp/oss/libopc.so ENV=(OPC_PFILE=/<ORACLE_HOME>/dbs/opc_sbt.ora)';

이러한 파일에 대한 자세한 내용은 Oracle Database Backup Cloud Service 사용OCI Classic용 Oracle Database Cloud Backup 모듈이 설치될 때 생성된 파일을 참조하십시오.

해독이 켜져 있는지 확인

모든 RMAN 복원 세션에 대해 암호 해독(decryption)이 설정되어 있는지 확인합니다.

set decryption wallet open identified by <keystore password>;

자세한 내용은 Providing the Password Required to Decrypted Backups을 참조하십시오.

Spfile 복원

다음 샘플 셸 스크립트는 spfile을 복원합니다. $dbID 변수를 복원할 데이터베이스의 dbid로 설정합니다. 기본적으로 spfile은 $ORACLE_HOME/dbs/spfile<sid>.ora로 복원됩니다.

rman target / <<EOF

spool log to "`date +%Y%m%d_%H%M%S_%N`_dbid_${dbID}_restore_spfile.log"
startup nomount
set echo on
run {
ALLOCATE CHANNEL c1 DEVICE TYPE sbt MAXPIECESIZE 2 G FORMAT '%d_%I_%U' PARMS 'SBT_LIBRARY=/tmp/oss/libopc.so ENV=(OPC_PFILE=/tmp/oss/opc_sbt.ora)';
SET DBID=$dbID;
RESTORE SPFILE FROM AUTOBACKUP;
shutdown immediate;
EOF

데이터베이스 매개변수 설정

  1. nomount 모드로 데이터베이스를 시작하십시오.
    startup nomount
  2. spfile을 갱신하고 다음 파라미터를 수정합니다.
    • 데이터베이스 스토리지 유형이 ACFS인 경우 DB 시스템의 스토리지 설정에 설명된 대로 dbcli describe-dbstorage 명령 출력에서 얻은 DATA, RECO, REDO 위치를 사용합니다.

      alter system set db_create_file_dest='/u02/app/oracle/oradata/' scope = spfile;
      alter system set db_create_online_log_dest_1='/u03/app/oracle/redo' scope = spfile;
      alter system set db_recovery_file_dest='/u03/app/oracle/fast_recovery_area' scope = spfile;
    • 데이터베이스 저장 영역 유형이 ASM인 경우:

      alter system set db_create_file_dest='+DATA' scope = spfile;
      alter system set db_create_online_log_dest_1='+RECO' scope = spfile;
      alter system set db_recovery_file_dest='+RECO' scope = spfile;
    • db_recovery_file_dest_size 설정이 설정되지 않았거나 잘못 설정되었습니다.

      alter system set db_recovery_file_dest_size=<sizeG> scope=spfile;
    • audit_file_dest를 올바른 값으로 설정합니다.

      alter system set audit_file_dest=/u01/app/oracle/admin/<db_unique_name in lower case>/adump
  3. control_files 매개변수를 제거합니다. OMF(Oracle Managed Files) 파라미터를 사용하여 콘트롤 파일을 생성합니다.
    alter system reset control_files scope=spfile;
  4. 새로 추가된 매개변수를 사용하여 데이터베이스를 nomount 모드로 다시 시작합니다.
    shutdown immediate
    startup nomount

제어 파일 복원

콘트롤 파일을 복원하도록 환경에 대해 다음 예제 셸 스크립트를 수정합니다. $dbID 변수를 복원할 데이터베이스의 dbid로 설정합니다. 백업 모듈을 설치할 때 SBT_LIBRARY를 -libDir 매개변수에 지정된 위치로 설정합니다. OPC-PFILE을 -configFile 파라미터에 지정된 위치로 설정합니다. 기본값은 ORACLE_HOME/dbs/opcSID.ora입니다.

rman target / <<EOF

spool log to "`date +%Y%m%d_%H%M%S_%N`_dbid_${dbID}_restore_controlfile.log"
set echo on
run {
ALLOCATE CHANNEL c1 DEVICE TYPE sbt MAXPIECESIZE 2 G FORMAT '%d_%I_%U' PARMS 'SBT_LIBRARY=/<Backup Module libDir>/libopc.so ENV=(OPC_PFILE=/<Backup Module configFile>/opcSID.ora)';
SET DBID=$dbID;
RESTORE CONTROLFILE FROM AUTOBACKUP;
alter database mount;
}

exit;
EOF

데이터베이스 복원

  1. 백업을 미리 보고 검증합니다. 데이터베이스가 마운트되었으므로 RMAN이 복원된 제어 파일에서 백업을 찾을 수 있어야 합니다. 이 단계를 수행하면 아카이브 로그 목록이 존재하고 백업 구성 요소를 복원할 수 있습니다.

    다음 예에서는 환경에 필요한 대로 SBT_LIBRARY 및 OPC_PFILE를 수정합니다.

    rman target / <<EOF
    
    spool log to "`date +%Y%m%d_%H%M%S_%N`_restore_database_preview.log"
    set echo on
    run {
        ALLOCATE CHANNEL c1 DEVICE TYPE sbt MAXPIECESIZE 2 G FORMAT '%d_%I_%U' PARMS 'SBT_LIBRARY=/tmp/oss/libopc.so ENV=(OPC_PFILE=/tmp/oss/opc_sbt.ora)';
        ALLOCATE CHANNEL c2 DEVICE TYPE sbt MAXPIECESIZE 2 G FORMAT '%d_%I_%U' PARMS 'SBT_LIBRARY=/tmp/oss/libopc.so ENV=(OPC_PFILE=/tmp/oss/opc_sbt.ora)';
        ALLOCATE CHANNEL c3 DEVICE TYPE sbt MAXPIECESIZE 2 G FORMAT '%d_%I_%U' PARMS 'SBT_LIBRARY=/tmp/oss/libopc.so ENV=(OPC_PFILE=/tmp/oss/opc_sbt.ora)';
        restore database validate header preview;
    }

    출력을 검토하고 오류 메시지가 있는 경우 문제의 원인을 조사합니다.

  2. set newname를 사용하여 복원을 재지정하여 데이터 파일을 OMF 형식으로 복원하고 switch datafile all를 사용하여 제어 파일이 새 데이터 파일 복사본으로 업데이트되도록 합니다.
    rman target / <<EOF
    
    spool log to "`date +%Y%m%d_%H%M%S_%N`_restore_database_preview.log"
    set echo on
    run {
        ALLOCATE CHANNEL c1 DEVICE TYPE sbt MAXPIECESIZE 2 G FORMAT '%d_%I_%U' PARMS 'SBT_LIBRARY=/tmp/oss/libopc.so ENV=(OPC_PFILE=/tmp/oss/opc_sbt.ora)';
        ALLOCATE CHANNEL c2 DEVICE TYPE sbt MAXPIECESIZE 2 G FORMAT '%d_%I_%U' PARMS 'SBT_LIBRARY=/tmp/oss/libopc.so ENV=(OPC_PFILE=/tmp/oss/opc_sbt.ora)';
        ALLOCATE CHANNEL c3 DEVICE TYPE sbt MAXPIECESIZE 2 G FORMAT '%d_%I_%U' PARMS 'SBT_LIBRARY=/tmp/oss/libopc.so ENV=(OPC_PFILE=/tmp/oss/opc_sbt.ora)';
        set newname for database to new;
        restore database;
        switch datafile all;
        switch tempfile all;
        recover database;
    }

    이 복구는 사용 가능한 마지막 아카이브 로그 백업을 사용하려고 시도한 후 오류와 함께 실패합니다. 예를 들면 다음과 같습니다.

    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of recover command at 07/20/2016 12:09:02
    RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 22 and starting SCN of 878327
  3. 불완전 복구를 완료하려면 다음과 같이 RMAN-06054 메시지에 표시된 시퀀스 번호 및 스레드 번호를 사용하여 복구를 실행합니다.
    recover database until sequence 22 thread 1;

로그 재설정

로그를 재설정합니다.

alter database open resetlogs;

데이터베이스 등록 준비

데이터베이스를 등록하기 전에 다음을 수행하십시오.

  1. 데이터베이스 COMPATIBLE 파라미터 값이 허용되는지 확인합니다. 값이 최소값보다 작으면 데이터베이스 호환성을 업그레이드할 때까지 데이터베이스를 등록할 수 없습니다.
  2. 데이터베이스가 리스너 및 서비스 이름에 등록되었는지 확인합니다.
    lsnrctl services
  3. 새 데이터베이스에 대해 Password file이 복원되었거나 생성되었는지 확인합니다.
    ls -ltr $ORACLE_HOME/dbs/orapw<oracle sid>

    파일이 없으면 orapwd 유틸리티를 사용하여 파일을 생성합니다.

    orapwd file=<$ORACLE_HOME/dbs/orapw<$ORACLE_SID>> password=<sys password>
  4. 복원된 데이터베이스가 읽기/쓰기 모드로 열려 있는지 확인합니다.
    select open_mode from v$database;

    명령 출력은 읽기 쓰기 모드를 나타내야 합니다. dbcli register-database 명령은 읽기 쓰기 모드가 필요한 datapatch 실행을 시도합니다. PDB가 있는 경우 해당 PDB에서 데이터 패치가 실행되도록 읽기 쓰기 모드에 있어야 합니다.

  5. 복원된 데이터베이스의 oracle 홈에서 다음 명령을 사용하여 SYS에 대한 연결을 확인합니다.
    conn sys/<password>@//<hostname>:1521/<database service name>

    나중에 데이터베이스를 등록하려면 이 연결이 필요합니다. 계속하기 전에 연결 문제를 해결하십시오.

  6. 데이터베이스가 SQL*Plus 명령을 사용하여 spfile에서 실행 중인지 확인하십시오.
    SHOW PARAMETERS SPFILE
  7. (선택 사항) dbcli 명령행 인터페이스를 사용하여 데이터베이스 백업을 관리하려는 경우 등록할 때나 등록한 후에 이전된 데이터베이스와 새 백업 또는 기존 백업 구성을 연관시킬 수 있습니다. 백업 구성은 데이터베이스의 백업 대상 및 Recovery 윈도우를 정의합니다. Backupconfig 명령을 사용하여 백업 구성을 만들고 나열하며 표시합니다.
  8. 소스 데이터베이스에서 대상 데이터베이스로 $ORACLE_HOME/sqlpatch 폴더를 복사합니다. 그러면 dbcli register-database 명령이 충돌하는 패치를 롤백할 수 있습니다.

    주:

    버전 11.2 데이터베이스를 마이그레이션하는 경우 데이터베이스를 등록한 후 추가 단계가 필요합니다. 자세한 내용은 Roll Back Patches on a Version 11.2 Database을 참조하십시오.

DB 시스템에 데이터베이스 등록

데이터베이스 명령은 복원된 데이터베이스를 dcs-agent에 등록하여 dcs-agent 스택에서 관리할 수 있도록 합니다.

주:

dbcli register-database 명령은 2노드 RAC DB 시스템에서 사용할 수 없습니다.

root 유저로 dbcli register-database 명령을 사용하여 DB 시스템에 데이터베이스를 등록합니다. 예를 들면 다음과 같습니다.

dbcli register-database --dbclass OLTP --dbshape odb1 --servicename tdetest --syspassword

출력:

Password for SYS:
{
  "jobId" : "317b430f-ad5f-42ae-bb07-13f053d266e2",
  "status" : "Created",
  "message" : null,
  "reports" : [ ],
  "createTimestamp" : "August 08, 2016 05:55:49 AM EDT",
  "description" : "Database service registration with db service name: tdetest",
  "updatedTime" : "August 08, 2016 05:55:49 AM EDT"
}

업데이트 tnsnames.ora

백업 위치에서 tnsnames.ora을 확인하고 복제된 데이터베이스에서 사용된 데이터베이스 링크를 확인한 다음 관련 접속 문자열을 복제된 데이터베이스 파일($ORACLE_HOME/network/admin/tnsnames.ora)에 추가합니다.

버전 11.2 데이터베이스에서 패치 롤백

버전 11.2 데이터베이스의 경우 sqlpatch 응용 프로그램이 자동화되지 않으므로 설치된 PSU에 포함되지 않은 원본 데이터베이스에 적용된 Interim 패치(이전의 "일회성" 패치)는 Target Database에서 수동으로 롤백해야 합니다. 데이터베이스를 등록한 후 아래 설명된 대로 catbundle.sql 스크립트를 실행한 다음 해당하는 PSU 패치(또는 PSU 패치 위에 있는 오버레이 패치)를 사용하여 postinstall.sql 스크립트를 실행합니다.

참고:

일부 중간 패치에는 $ORACLE_HOME/rdbms/admin 디렉토리에 기록된 파일과 $ORACLE_HOME/sqlpatch 디렉토리가 포함될 수 있습니다. Oracle은 데이터베이스를 OCI 환경으로 이전하기 전에 패치 read-me의 지침을 사용하여 소스 데이터베이스에서 해당 패치를 롤백할 것을 권장합니다. 해당 패치 롤백에 대한 지원이 필요한 경우 Oracle Support에 문의하십시오.
  1. DB 시스템에서 dbcli list-dbhomes 명령을 사용하여 버전 11.2 데이터베이스 홈에 대한 PSU 패치 번호를 찾습니다. 다음 샘플 명령 출력에서 PSU 패치 번호는 DB Version 열의 두번째 숫자입니다.
    dbcli  list-dbhomes
    출력:
    ID                                   Name               DB Version                             Home Location                             Status 
    ------------------------------------ -----------------  -------------------------------------  ----------------------------------------- ----------
    59d9bc6f-3880-4d4f-b5a6-c140f16f8c64 OraDB11204_home1	11.2.0.4.160719 (23054319, 23054359)   /u01/app/oracle/product/11.2.0.4/dbhome_1 Configured

    (위 예제의 첫번째 패치 번호 23054319는 데이터베이스 홈의 OCW 구성 요소를 위한 것입니다.)

  2. lsinventory 명령을 사용하여 오버레이 패치(있는 경우)를 찾습니다. 다음 예에서 패치 번호 24460960은 23054359 PSU 패치 위에 있는 오버레이 패치입니다.
    $ORACLE_HOME/OPatch/opatch lsinventory
    출력:
    ...
    Installed Top-level Products (1): 
    
    Oracle Database 11g                                                  11.2.0.4.0
    There are 1 products installed in this Oracle Home.
    
    
    Interim patches (5) :
    
    Patch  24460960     : applied on Fri Sep 02 15:28:17 UTC 2016
    Unique Patch ID:  20539912
       Created on 31 Aug 2016, 02:46:31 hrs PST8PDT
       Bugs fixed:
         23513711, 23065323, 21281607, 24006821, 23315889, 22551446, 21174504
       This patch overlays patches:
         23054359
       This patch needs patches:
         23054359
       as prerequisites
  3. SQL*Plus를 시작하고 다음과 같이 catbundle.sql 스크립트를 실행합니다.
    startup 
    connect / as sysdba
    @$ORACLE_HOME/rdbms/admin/catbundle.sql psu apply
    exit
  4. 이전 단계의 오버레이 패치 번호를 사용하여 sqlpatch를 적용합니다. 예를 들면 다음과 같습니다.
    connect / as sysdba
    @$ORACLE_HOME/sqlpatch/24460960/postinstall.sql 
    exit

주:

소스 데이터베이스에 일회용 패치가 설치되어 있고 해당 패치가 클라우드 환경에 설치된 PSU에 포함되지 않은 경우 이러한 일회용 패치에 해당하는 SQL 변경사항을 롤백해야 합니다. SQL 변경사항을 롤백하려면 소스 환경에서 클라우드 환경으로 $ORACLE_HOME/sqlpatch/<patch#>/postdeinstall.sql 스크립트를 복사하고 postdeinstall.sql 스크립트를 실행합니다.

사후 복원 체크리스트

데이터베이스가 복원되고 DB 시스템에 등록되면 다음 점검 목록을 사용하여 결과를 확인하고 사후 복원 사용자정의를 수행합니다.

  1. 데이터베이스 파일이 OMF 형식으로 복원되었는지 확인합니다.
  2. 데이터베이스가 Database Commands 출력에 나열되는지 확인합니다.
  3. 데이터베이스에서 다음 외부 참조를 확인하고 필요한 경우 갱신합니다.
    • External Table: 원본 데이터베이스가 External Table을 사용하는 경우 해당 데이터를 백업하고 대상 호스트로 이전합니다.
    • Directories: 복원된 데이터베이스에 대해 필요에 따라 기본 디렉토리를 커스터마이즈합니다.
    • 데이터베이스 링크: 필요한 모든 TNS 항목이 ORACLE_HOME의 tnsnames.ora 파일에서 업데이트되었는지 확인합니다.
    • 이메일 및 URL: 데이터베이스에서 사용되는 모든 이메일 주소와 URL이 DB 시스템에서 계속 접근할 수 있는지 확인하십시오.
    • 스케줄링된 작업: 소스 데이터베이스에 스케줄링된 작업을 검토하고 복원된 데이터베이스에서 필요에 따라 유사한 작업의 일정을 잡습니다.
  4. 데이터베이스를 등록할 때 백업 구성을 연결한 경우 백업 명령을 사용하여 테스트 백업을 실행합니다.
  5. 복원된 데이터베이스에 CDB 및 PDB가 포함된 경우 패치가 모든 PDB에 적용되었는지 확인합니다.