참고:

데이터베이스 링크를 사용하여 Oracle Base Database Service의 DB 시스템 간에 원격으로 플러그인할 수 있는 데이터베이스 복제

소개

DB 시스템의 동일한 데이터베이스(컨테이너 데이터베이스) 내에 PDB(플러그인할 수 있는 데이터베이스)의 복제본을 생성할 수 있습니다. 이 작업을 로컬 복제라고 합니다. 이 작업은 콘솔을 사용하여 쉽게 수행할 수 있습니다. PDB를 다른 DB 시스템의 다른 데이터베이스(컨테이너 데이터베이스)에 복제할 수도 있습니다. 이 작업을 원격 복제라고 합니다.

각 DB 시스템은 하나의 데이터베이스(컨테이너 데이터베이스)만 지원하므로 원격 복제에는 두 개의 DB 시스템이 필요합니다. 콘솔에서 아직 PDB의 원격 복제를 사용할 수 없습니다. 데이터베이스 링크와 OCI CLI, SDK, Terraform 등의 API 기반 툴을 사용하여 RemoteclonePluggabledatabase API를 사용하여 원격 복제본을 생성할 수 있습니다.

이 사용지침서에서는 Oracle Base Database Service의 데이터베이스 링크를 사용하여 PDB를 원격 복제하는 단계를 안내합니다.

목표

데이터베이스 링크를 사용하여 Oracle Base Database Service의 다른 DB 시스템에 PDB를 원격 온라인 복제합니다.

필요 조건

  1. Oracle Base Database Service에 대한 이해
  2. 동일한 VCN 또는 다른 VCN 내에 있는 두 개의 Oracle Base Database Service
  3. 이러한 DB 시스템이 다른 VCN VCN 피어링에 있는 경우 VCN 피어링입니다.
  4. 다음은 쉽게 이해할 수 있도록 이 자습서에서 사용되는 환경 이름입니다.
    • 소스 DB 시스템 이름: 소스
    • 대상 DB 시스템 이름: TARGET
    • 소스 PDB 이름: SOURCE_PDB1
    • 복제 PDB 이름: CLONE_PDB1

작업 1: 소스 환경 준비

  1. 다음 명령을 사용하여 소스 CDB에서 복제용 사용자를 생성합니다.

    CREATE USER c##clone IDENTIFIED BY <PASSWORD> CONTAINER=ALL;
    GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE TO c##clone CONTAINER=ALL;
    
  2. 소스 PDB의 객체 콘텐츠를 확인합니다. 이 예에서는 TEST.PERSONS 테이블을 참조용으로 고려합니다.

    • 스키마 이름: TEST

    • 테이블 이름: PERSONS

      소스 PDB 객체 세부정보

작업 2: 대상 환경 준비

  1. 대상 CDB에서 local_undo_enabled가 true로 설정되어 있는지 확인합니다.

  2. 대상 CDB가 archivelog 모드인지 확인합니다.

    : 대상 CDB가 ARCHIVELOG 모드이고 LOCAL UNDO MODE 상태인 경우 소스 PDB를 읽기/쓰기 모드로 열고 복제 프로세스 중에 작동할 수 있습니다. 이 기법을 핫 복제라고 합니다.

    대상 CDB 로컬 언두 및 아카이브 로그 세부정보 확인

  3. 대상 DB 시스템 노드의 $ORACLE_HOME/network/admin/ 디렉토리에 있는 tnsnames.ora 파일에서 소스 CDB 서비스 이름의 주소를 업데이트합니다.

    <addressname> =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(Host = <hostname>)(Port = <port>))
      )
    (CONNECT_DATA =
      (SERVICE_NAME = <service_name>)
    )
    )
    

    다음은 완성된 예입니다.

    SOURCE_CDB =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = source.**************.*****.oraclevcn.com)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = SOURCE_iad1zr.**************.*****.oraclevcn.com)
        )
      )
    
  4. 대상 CDB에서 소스 CDB를 가리키는 데이터베이스 링크를 만듭니다.

    CREATE PUBLIC DATABASE LINK clone_pdb_dblink CONNECT TO c##clone identified by <PASSWORD> using '<ADDRESSNAME>';
    
    CREATE PUBLIC DATABASE LINK clone_pdb_dblink CONNECT TO c##clone identified by ************** using 'SOURCE_CDB';
    
  5. 대상 CDB에서 데이터베이스 링크를 통한 접속이 제대로 작동하는지 확인하십시오. 접속하는 데이터베이스와 동일한 이름의 데이터베이스 링크를 사용하지 않으므로 추가로 global_names parameter를 false로 설정해야 합니다. 그렇지 않으면 ORA-02085 오류가 발생합니다.

    alter session set global_names=false;
    
    select * from dual@clone_pdb_dblink;
    

    dblink를 통한 질의

작업 3: 원격 PDB 복제

  1. 대상 CDB에 로그인하여 소스 PDB를 대상 CDB에 복제해야 합니다. 대상 환경의 TDE_WALLET_PASSWORD을 제공합니다.

    alter session set global_names=false;
    
    create pluggable database <CLONE_PDB_NAME> from <SOURCE_PDB_NAME>@<DB_LINK_NAME> keystore identified by <TDE_WALLET_PASSWORD>;
    
    create pluggable database CLONE_PDB1 from SOURCE_PDB1@clone_pdb_dblink keystore identified by <TDE_WALLET_PASSWORD>;
    

    대상 CDB에 PDB 복제본 생성

  2. 복제된 PDB를 읽기/쓰기 모드로 엽니다. PDB는 마운트된 모드에 있습니다. 새 PDB를 대상 CDB에 통합하려면 Oracle Database에 대해 새 복제된 PDB를 읽기/쓰기 모드로 열어야 합니다.

    alter pluggable database CLONE_PDB1 open read write;
    
  3. 복제 PDB에서 모든 객체 데이터가 복제되었는지 확인합니다.

    복제된 PDB 확인

데이터가 소스 PDB에서 대상 DB 시스템의 복제 PDB로 성공적으로 복사된 것을 확인할 수 있습니다.

승인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer를 방문하십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.