데이터베이스 이전 준비

소스 및 대상 데이터베이스 필요 조건이 충족되고 암호화 전자 지갑을 사용할 수 있으며 Oracle Cloud Infrastructure Object Storage 버킷을 사용 가능하고 액세스할 수 있는지 확인합니다.

소스 데이터베이스 서버 준비

소스 데이터베이스가 Zero Downtime Migration 필요 조건을 충족하는지 확인합니다.

  1. 소스 데이터베이스 서버의 포트 22가 Zero Downtime Migration 서비스 호스트에서 들어오는 연결을 허용하는지 확인합니다.
  2. 원본 데이터베이스 서버의 스캔 리스너 포트 1521이 Target Database 서버에서 들어오는 연결을 허용하는지 확인합니다.
  3. 소스 데이터베이스가 아카이브 로그 모드로 실행 중인지 확인하십시오.

소스 데이터베이스에서 전자 지갑 생성

소스 데이터베이스에서 전자 지갑(wallet)을 생성하고 공용(public) 키를 저장합니다. 전자 지갑(wallet)은 백업을 암호화하는 데 사용되며 Target Database에서 백업을 암호 해독하는 데 필요합니다.

  1. 소스 데이터베이스 시스템에 oracle 유저로 로그인합니다.
  2. 전자 지갑(wallet)이 없는 경우 해당 폴더 생성
    sudo mkdir -p /opt/oracle/dcs/commonstore/wallets/tde/ORCL
    sudo chown -R oracle:oinstall /opt/oracle/dcs
  3. 다음 행을 추가하여 $ORACLE_HOME/network/admin/sqlnet.ora 파일에서 암호화 전자 지갑 위치를 설정합니다.
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)
            (METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/ORCL/)))
  4. SQLPlus를 사용하여 sysdba 유저로 전자 지갑(wallet)을 생성합니다.
    sqlplus "/as sysdba" 
    > ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/opt/oracle/dcs/commonstore/wallets/tde/ORCL/'identified by
            w6KP47FS3sggA5CAsG; 
    > ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY password container = ALL;
    > ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY password with backup container = ALL; 
    > select * FROM v$encryption_keys;
  5. 전자 지갑 상태가 open이고 전자 지갑 유형이 auto login인지 확인합니다.
    소스 및 대상 데이터베이스가 TDE(투명한 데이터 암호화)가 사용으로 설정된 경우 소스 및 대상 데이터베이스 모두에서 전자 지갑 상태가 OPEN이어야 하고 WALLET_TYPE가 AUTOLOGIN이어야 합니다.
    sqlplus / as sysdba
    SQL> SELECT * FROM v$encryption_wallet;
  6. 전자 지갑 유형이 auto login가 아닌 경우 auto login를 설정합니다.
    
    SQL> SELECT * FROM v$encryption_wallet; 
    > ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE
    '/opt/oracle/dcs/commonstore/wallets/tde/ORCL/' IDENTIFIED BY password; 
    > administer key management set keystore close identified by password;

대상 데이터베이스 시스템 준비

소스 데이터베이스가 Zero Downtime Migration 필요 조건을 충족하는지 확인합니다.

  1. Zero Downtime Migration 서비스 호스트에서 들어오는 연결을 허용하도록 Target Database 시스템의 포트 22가 열려 있는지 확인합니다.
  2. 소스 데이터베이스 서버에서 들어오는 연결을 허용하도록 대상 데이터베이스 시스템의 스캔 리스너 포트 1521이 열려 있는지 확인합니다.
  3. 대상 및 소스 데이터베이스 버전이 동일한지 확인합니다. 대상 데이터베이스 패치 버전은 소스 데이터베이스 패치 버전과 같거나 이후 버전이어야 합니다.
  4. 소스 데이터베이스(Oracle ASM(Oracle Automatic Storage Management) 디스크 그룹 또는 Oracle ACFS(Oracle Advanced Cluster File System) 파일 시스템에서 디스크 그룹 및 사용량의 크기를 확인하고 대상 시스템에서 적절한 저장소가 프로비저닝되고 사용 가능한지 확인합니다.

ZDM 응답 파일 생성

ZDM 응답 파일을 생성하여 데이터베이스 마이그레이션을 유도하는 필수 매개변수를 캡처합니다.

샘플 /u01/app/zdmhome/rhp/zdm/template/zdm_template.rsp 파일을 사용하여 응답 파일을 생성한 다음 예제 항목을 업데이트하여 소스, 대상 및 백업 환경을 반영합니다.

  1. 템플리트에서 응답 파일을 생성합니다.
    cp $ZDM_HOME/rhp/zdm/template/zdm_template.rsp ~/zdm.rsp
    다음 단계에서 대상 매개변수를 업데이트합니다.
  2. Target Database에 대해 고유한 이름을 제공하도록 Target DB Name Properties를 갱신합니다.
    이름은 DB 시스템 세부정보에서 사용할 수 있습니다.
    TGT_DB_UNIQUE_NAME=unique name for the target database
  3. Migration Method가 기본값인 DG_OSS로 설정되어 있는지 확인합니다.
    DG_OSSOracle Data GuardOracle Cloud Infrastructure Object Storage 서비스를 사용합니다.
    MIGRATION_METHOD=DG_OSS
  4. 플랫폼 유형을 가상 머신 데이터베이스로 정의합니다.
    PLATFORM_TYPE=VMDB
  5. Oracle ASM(Oracle Automatic Storage Management) 또는 Oracle ACFS(Oracle Advanced Cluster File System)에 대한 대상 데이터베이스 데이터 파일 저장소 등록 정보를 지정합니다.
    # Target Database Datafile Storage Properties
    #------------------------------------------#
    # if using ASM for datafiles
    # e.g., TGT_DATADG=+DATAC3
    TGT_DATADG=+DATA
    TGT_REDODG=+RECO
    TGT_RECODG=+RECO
    #------------------------------------------#
    # if using ACFS for datafiles
    #------------------------------------------#
    TGT_DATAACFS=
    TGT_REDOACFS=
    TGT_RECOACFS=
    
  6. 프록시가 소스 노드에서 Oracle Cloud Infrastructure Object Storage에 액세스해야 하는 경우 소스 HTTP 프록시 URL 및 포트를 정의합니다. ZDM 서비스 호스트에서 소스 노드에 액세스하기 위해 SSH 프록시가 필요한 경우 소스 프록시 URL 및 포트를 지정합니다.
    SRC_HTTP_PROXY_URL=
    SRC_HTTP_PROXY_PORT=
  7. SSH 터널링이 설정된 경우 SSH 터널 포트를 지정합니다.
    TGT_SSH_TUNNEL_PORT
  8. Oracle Cloud Infrastructure Object Storage 호스트 이름(클라우드 스토리지 REST 끝점 URL)을 업데이트하여 Oracle Cloud 계정에 액세스합니다.
    오브젝트 스토리지 네임스페이스를 찾으려면 콘솔을 열고 오브젝트 스토리지 설정으로 이동합니다. 관리, 테넌시 세부정보를 차례로 누릅니다.
    HOST=https://swiftobjectstorage.region.oraclecloud.com/v1/object_storage_namespace
    
  9. 콘솔에서 생성한 오브젝트 스토리지 버킷의 이름을 지정합니다.
    # The name of the target Bucket in the tenancy
    OPC_CONTAINER=migration
    
  10. 소스 노드에서 오브젝트 스토리지에 액세스하기 위해 프록시가 필요한 경우 소스 프록시 호스트 및 포트를 지정합니다.
    SRC_OSS_PROXY_HOST=
    SRC_OSS_PROXY_PORT=
  11. 대상 노드에서 오브젝트 스토리지에 액세스하기 위해 프록시가 필요한 경우 대상 프록시 호스트 및 포트를 지정합니다.
    TGT_OSS_PROXY_HOST=
    TGT_OSS_PROXY_PORT=