Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

Oracle 19c에서 DBCA 명령을 사용하여 데이터베이스 복제

이 블로그에서는 Oracle 19c의 새로운 기능인 DBCA(Database Configuration Assistant)를 사용하여 소스 데이터베이스를 백업하지 않고 원격 PDB(플러그 가능 데이터베이스)를 CDB(컨테이너 데이터베이스)로 복제하는 방법을 소개합니다.

소스에서 타겟으로 복제하는 데 최소한의 시간이 걸립니다.

소스 DB 세부정보

CDB:LCONCDBPDB:LCON Oracle 19c에서 DBCA 명령을 사용하여 데이터베이스 복제 다음은 총계입니다. 원본의 각 컨테이너(CDB 및 PDB) 아래에 있는 DBF 파일 중 복제가 대상에 있는 후 유효성을 검사해야 합니다. 위의 원본 DB에서 대상 호스트에 CDB 및 PDB를 생성합니다.

대상 DB 정보

CDB:- KCONCDBPDB:- KCON

완료해야 할 사전 단계는 다음과 같습니다.-

  1. 대상 호스트에 Oracle Database 19c를 설치하거나 소스에서 RDBMS19c tar를 생성하고 대상 노드에서 tar를 해제할 수 있습니다. 또는 소스에서 타겟으로 rsync 명령을 사용하여 RDBMS를 소스와 동일하게 만들 수 있습니다.
  2. perl adclonectx.pl을 실행할 xml 파일을 만들고 세부 정보를 제공합니다. 19c RDBMS 설치/생성 후 대상 DB 노드에 대한 컨텍스트 파일을 생성해야 합니다. 다음은 타겟 DB 노드에 컨텍스트 파일을 생성하는 명령어입니다.

`[oraki@nglusnj bin]$ perl adclonectx.pl \

<블록 인용>

contextfile=/u02/oracle/KCON/product/19.3/appsutil/NYAPP_nglusnj.xmlCopyright (c) 2011, 2015 Oracle CorporationRedwood Shores, California, USA

                    Oracle E-Business Suite Rapid Clone

                             Version 12.2

                  adclonectx Version 120.30.12020000.22`

실행 중:/u02/oracle/KCON/product/19.3/appsutil/clone/bin/../jre/bin/java -Xmx600M -Doracle.jdbc.autoCommitSpecCompliant=false -classpath /u02/oracle/KCON/product /19.3/appsutil/clone/bin/../jlib/ojdbc8.jar:/u02/oracle/KCON/product/19.3/appsutil/clone/bin/../jlib/xmlparserv2.jar:/u02/oracle/KCON /product/19.3/appsutil/clone/bin/../jlib/java:oracle.apps.ad.context.CloneContext -e /u02/oracle/KCON/product/19.3/appsutil/NYAPP_nglusnj.xml -tmpl /u02/ oracle/KCON/product/19.3/appsutil/clone/bin/../context/db/adxdbctx.tmp

앱 비밀번호 입력 :

/u02/oracle/KCON/product/19.3/appsutil/clone/bin/CloneContext_0227034250.log에 있는 로그 파일

새 데이터베이스 컨텍스트 파일 생성에 필요한 값을 제공하십시오.

대상 시스템 호스트 이름(가상 또는 일반) [nglusnj] :nglusnj

입력 내용은 프로그램에서 검증하는 것이 좋습니다. 그러나 다음 상황에서는 검증하지 않을 수도 있습니다.

    -If cloning a context on source system for a remote system.
    -If cloning a context on a machine where the ports are taken and
     you do not want to shutdown the services at this point.
    -If cloning a context but the database it needs to connect is not available.

입력이 검증되기를 원하십니까 (y/n) [n] ? :n

대상 시스템 기본 디렉토리 :/u02/oracle/KCON

대상 인스턴스는 RAC(y/n) [n]:

대상 시스템 CDB 이름 :KCONCDB

대상 시스템 PDB 이름 :KCON

오라클 OS 사용자 [oraki] :

오라클 OS 그룹 [dba] :

역할 분리 지원 y/n [n] ? :n

대상 시스템의 DATA_TOP 수 [2] :

대상 시스템 DATA_TOP 디렉토리 1 [/u02/oracle/KCON/NYAPPCDB] :/u02/oracle/KCON/KCONCDB

대상 시스템 DATA_TOP 디렉토리 2 [/u02/oracle/KCON/data] :

OSBACKUPDBA 그룹 [dba]에 대한 값 지정:

OSDGDBA 그룹 [dba]에 대한 값 지정:

OSKMDBA 그룹 [dba]에 대한 값 지정:

OSRACDBA 그룹 [dba]에 대한 값 지정:

대상 시스템 RDBMS ORACLE_HOME 디렉토리 [/u02/oracle/KCON/19.0.0] :/u02/oracle/KCON/product/19.3

디스플레이 [nglusnj:0.0](y/n):y를 유지하시겠습니까?

대상 시스템 포트 풀 [0-99] :20 /u02/oracle/KCON/product/19.3/appsutil/temp/portpool.lst에 있는 보고서 파일

새 컨텍스트 경로 및 파일 이름 [/u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml] :/u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml 파일이 이미 있습니다.

덮어쓰시겠습니까 (y/n) [n] ? :y /u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml 파일 교체. 새 데이터베이스 컨텍스트 파일이 생성되었습니다. /u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml contextfile=/u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml 클론 컨텍스트 로그 파일 확인 /u02/ 자세한 내용은 oracle/KCON/product/19.3/appsutil/clone/bin/CloneContext_0227034250.log를 참조하십시오. [oraki@nglusnj bin]$펄

<올 시작="3">
  • 대상 DB 노드에 컨텍스트 파일을 생성했으면 대상 DB 노드에서 adcfgclone을 실행하고 위에서 생성한 컨텍스트 파일을 전달하도록 19C RDBMS를 구성해야 합니다. 다음 예에서는 명령을 실행하는 단계를 설명합니다.
  • [oraki@nglusnj bin]$ perl adcfgclone.pl dbTechStack /u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml

                     Copyright (c) 2002, 2015 Oracle Corporation
                        Redwood Shores, California, USA
    
                        Oracle E-Business Suite Rapid Clone
    
                                 Version 12.2
    
                      adcfgclone Version 120.63.12020000.65
    

    앱 비밀번호 입력 :

    명령으로 Rapid Clone 실행:

    실행 중: 펄 /u02/oracle/KCON/product/19.3/appsutil/clone/bin/adclone.pl java=/u02/oracle/KCON/product/19.3/appsutil/clone/bin/../jre 모드=적용 stage=/u02/oracle/KCON/product/19.3/appsutil/clone component=dbTechStack method=CUSTOM dbctxtg=/u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml showProgress contextValidated=false

    rdbms 홈 지원 시작 - 2021년 2월 27일 토요일 04:25:16

    /u02/oracle/KCON/product/19.3/appsutil/clone/bin/../jre/bin/java -Xmx600M -Doracle.jdbc.autoCommitSpecCompliant=false -DCONTEXT_VALIDATED=false -Doracle.installer.oui_loc=/ u02/oracle/KCON/product/19.3/oui -classpath /u02/oracle/KCON/product/19.3/appsutil/clone/jlib/xmlparserv2.jar:/u02/oracle/KCON/product/19.3/appsutil/clone/jlib /ojdbc8.jar:/u02/oracle/KCON/product/19.3/appsutil/clone/jlib/java:/u02/oracle/KCON/product/19.3/appsutil/clone/jlib/oui/OraInstaller.jar:/u02/ oracle/KCON/product/19.3/appsutil/clone/jlib/oui/ewt3.jar:/u02/oracle/KCON/product/19.3/appsutil/clone/jlib/oui/share.jar:/u02/oracle/KCON/ product/19.3/appsutil/clone/jlib/oui/srvm.jar:/u02/oracle/KCON/product/19.3/appsutil/clone/jlib/ojmisc.jar oracle.apps.ad.clone.ApplyDBTechStack -e /u02/ oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml -stage /u02/oracle/KCON/product/19.3/appsutil/clone -showProgress APPS 비밀번호 :/u02/oracle/KCON/product/19.3/appsutil에 있는 로그 파일 /log/KCON_nglusnj/ApplyDBTechStac k_02270425.log | 0% 완료

    /u02/oracle/KCON/product/19.3/appsutil/log/KCON_nglusnj/ApplyDBTechStack_02270425.log에 있는 로그 파일

    • 0% 완료

    적용 완료...

    <올 시작="4">
  • PDB가 있는 소스 CDB는 아카이브 로그 모드에 있어야 합니다.
  • 원본 DB가 아카이브 로그 모드인지 확인해야 합니다.

    1. 대상 노드에서 DBCA 명령을 실행하여 VNC에서 CDB 및 PDB를 복제합니다.

    구문:

    ./dbca -silent -createDuplicateDB -gdbName {CLONE_DB_NAME} -primaryDBConnectionString <호스트 이름:포트/서비스> -sid {CLONE_DB_SID} -databaseConfigType SINGLE -initParams db_unique_name={CLONE_DB_NAME} -sysPassword {PRIMARY_DB_SYS_file /코드>

    [oraki@nglusnj ~]$ dbca -silent -createDuplicateDB -gdbName KCONCDB -sid KCONCDB -primaryDBConnectionString nglusnj:1551/LCONCDB -databaseConfigType SI -initParams db_unique_name=KCONCDB -sysPassword LCONCDB! -datafileDestination /u02/oracle/KCON/product/oradata/KCONCDB

    *-gdbName =대상 글로벌 데이터베이스 이름.*-sid=대상 sid 이름*-primaryDBConnectionString =소스 연결 문자열..*-databaseConfigType =SI는 단일 인스턴스를 의미합니다.*-initParams db_unique_name =대상 db 고유 이름*-sysPassword =sys 사용자 암호. *-datafileDestination =대상의 dbf 파일 위치.

    이제 CDB와 PDB가 모두 생성되었습니다.6. PDB의 이름이 원본 DB 이름과 같으므로 PDB의 이름을 바꿉니다. 다음 단계는 PDB의 이름을 바꾸는 데 도움이 됩니다.

    SQL> 세션 세트 컨테이너=LCON 변경;

    세션이 변경되었습니다.

    SQL> 즉시 종료; 플러그 가능한 데이터베이스가 닫혔습니다. SQL> 시작 열기 제한; 플러그 가능한 데이터베이스가 열렸습니다. SQL> 플러그인 가능한 데이터베이스 LCON 변경 global_name을 KCON으로 변경

    플러그 가능한 데이터베이스가 변경되었습니다.

    SQL> 즉시 종료; 플러그형 데이터베이스가 닫혔습니다. SQL> 데이터베이스 변경 변경;

    데이터베이스가 변경되었습니다.

    이것으로 복제가 완료됩니다. 소스에서 DBF 파일의 유효성을 검사하고 일치시켜야 합니다. DBF 파일 개수는 동일해야 합니다.

    결론

    PDB 복제 DBCA를 사용하는 자동 모드에서 Oracle 19c의 새로운 기능은 최소 시간에 데이터베이스를 복제하는 가장 간단한 방법입니다. 소스 데이터베이스를 백업하고 복제를 위해 해당 백업 조각을 대상 호스트에 복사할 필요가 없으므로 시간을 절약할 수 있습니다.

    피드백 탭을 사용하여 의견을 작성하거나 질문하십시오. 저희와 대화를 시작할 수도 있습니다.