원래 TriCore 발행:2017년 8월 29일
Oracle® 버전 12c는 단일 CDB(컨테이너 데이터베이스)가 있는 호스트 다중 플러그 가능 데이터베이스(PDB)를 위한 다중 테넌트 데이터베이스 옵션을 제공합니다. 때로는 비 CDB 데이터베이스를 CDB 플러그 가능 데이터베이스로 변환해야 합니다. 이 블로그에서는 비 CDB 데이터베이스를 CDB 데이터베이스로 변환하는 데 사용할 수 있는 방법을 설명합니다.
테스트 케이스 설정
이 테스트 시나리오는 비 CDB 데이터베이스 인스턴스 noncdb12c
로 시작합니다. , ABC123.xyz.com
시스템에서 실행 중입니다. . 작업은 CDBdatabase, cdb12c
를 만드는 것입니다. , 같은 컴퓨터에서. 변환된 CDB 데이터베이스를 저장할 디스크 공간이 충분한지 확인해야 합니다.
호스트 서버 :ABC123.xyz.com
비 CDB 데이터베이스 :noncdb12c
오라클 버전 :12.1.0.2
다음 이미지는 테스트 시나리오를 보여줍니다.
전환 테스트
이 섹션의 단계를 사용하여 비 CDB 데이터베이스를 CDB 데이터베이스로 변환하십시오.
1단계:완전 종료 수행
CDB가 아닌 데이터베이스를 완전히 종료하려면 다음 단계를 수행하십시오.
-
환경을
noncdb12c
로 설정하십시오. . -
다음 명령을 실행하십시오.
sqlplus / as sysdba
-
SQL 프롬프트에서 다음 코드를 실행하십시오.
shutdown immediate
2단계:데이터베이스를 읽기 전용으로 열기
데이터베이스를 완전히 종료한 후 다음 단계를 수행하여 데이터베이스를 단독 탑재 모드로 시작하고 데이터베이스를 읽기 전용 모드로 엽니다.
-
환경을
noncdb12c
로 설정하십시오. . -
다음 명령을 실행하십시오.
sqlplus / as sysdba
-
SQL 프롬프트에서 다음 코드를 실행하십시오.
startup mount exclusive alter database open read only;
3단계:PDB 매니페스트 파일 생성
비 CDB에서 PDB 매니페스트 파일을 생성하려면 다음 단계를 수행하십시오.
-
환경을
noncdb12c
로 설정하십시오. . -
다음 명령을 실행하십시오.
sqlplus / as sysdba
-
SQL 프롬프트에서 다음 코드를 실행하십시오.
exec dbms_pdb.describe (pdb_descr_file=>'/tmp/noncdb12c_manifest_file.xml');
4단계:비 CDB 종료
비 CDB 파일을 종료하려면 3단계가 완료된 후 다음 단계를 수행하십시오.
-
환경을
noncdb12c
로 설정하십시오. . -
다음 명령을 실행하십시오.
sqlplus / as sysdba
-
SQL 프롬프트에서 다음 코드를 실행하십시오.
shutdown immediate
5단계:CDB 시작
CDB가 아직 실행되고 있지 않으면 다음 단계를 수행하여 CDB를 시작하고 호환성을 확인하십시오.
-
환경을
cdb12c
로 설정하십시오. . -
다음 명령을 실행하십시오.
sqlplus / as sysdba
-
SQL 프롬프트에서 다음 코드를 실행하십시오.
startup SET SERVEROUTPUT ON; DECLARE Compatible CONSTANT VARCHAR2(3) :=CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY (pdb_descr_file => '/tmp/noncdb12c_manifest_file.xml') WHEN TRUE THEN 'YES' ELSE 'NO' END; BEGIN DBMS_OUTPUT.PUT_LINE(compatible); END; /
6단계:오류 확인
CDB 데이터베이스 시작이 완료된 후 다음 단계를 수행하여 PDB_PLUG_IN_VIOLATIONS
보기:
-
환경을
cdb12c
로 설정하십시오. . -
다음 명령을 실행하십시오.
sqlplus / as sysdba
-
SQL 프롬프트에서 다음 코드를 실행하십시오.
startup SELECT name, cause, type, message, status FROM PDB_PLUG_IN_VIOLATIONS WHERE name='NONCDB12C';
참고 :오류가 있으면 수정하고 진행하세요.
7단계:CDB에 연결하고 PDB에 연결
CDB에 연결하고 비 CDB 매니페스트 파일을 사용하여 PDDB12Cdatabase에 연결하려면 다음 단계를 수행하십시오.
-
환경을
cdb12c
로 설정하십시오. . -
다음 명령을 실행하십시오.
sqlplus / as sysdba
-
SQL 프롬프트에서 다음 코드를 실행하십시오.
CREATE PLUGGABLE DATABASE pdb12c USING '/tmp/noncdb12c_manifest_file.xml' COPY FILE_NAME_CONVERT = ('<Datafile_Location_for_noncdb>', 'Datafile_Location_for_pdb');
참고 :다음 옵션이 지원되며 환경에 따라 선택할 수 있습니다.
- 복사 :
noncdb
의 데이터 파일 그대로 유지되고noncdb
새 위치에 PDB를 생성하고 원본 데이터 파일을 원래 위치에 그대로 유지하기 위해 복사됩니다. 이는 noncdb 데이터베이스가 PDB 생성 후에도 계속 작동한다는 것을 의미합니다. - 이동 :
noncdb
의 데이터 파일 PDB를 생성하기 위해 새 위치로 이동됩니다. 이 경우noncdb
PDB가 생성된 후에는 데이터베이스를 사용할 수 없습니다. - NOCOPY :
noncdb
의 데이터 파일 PDB2를 생성하는 데 사용되며noncdb
와 동일한 위치를 사용합니다. . 이 경우noncdb
PDB가 생성된 후에는 데이터베이스를 사용할 수 없습니다.
FILE_NAME_CONVERT
를 사용할 수 있습니다. COPY를 사용하는 동안 데이터 파일의 새 위치를 지정하는 매개변수 또는 이동 옵션.
8단계:변환 스크립트 실행
7단계가 성공적으로 완료되면 다음 단계를 수행하여 PDB 컨테이너로 전환하고 변환 스크립트$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
를 실행합니다. :
-
환경을
cdb12c
로 설정하십시오. . -
다음 명령을 실행하십시오.
sqlplus / as sysdba
-
SQL 프롬프트에서 다음 코드를 실행하십시오.
alter session set container=pdb12c @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
9단계:PDB 시작 및 모드 확인
다음 단계를 수행하여 PDB를 시작하고 모드가 열려 있는지 확인합니다. :
-
환경을
cdb12c
로 설정하십시오. . -
다음 명령을 실행하십시오.
sqlplus / as sysdba
-
SQL 프롬프트에서 다음 코드를 실행하십시오.
alter pluggable database open; SELECT name, open_mode FROM v$pdbs;
결론
비 CDB 데이터베이스를 CDB 플러그 가능 데이터베이스로 변환할 때 데이터베이스 크기에 따라 여러 옵션 중에서 선택할 수 있습니다.
데이터베이스가 매우 큰 경우 NOCOPY를 사용할 수 있습니다. 옵션. 이렇게 하면 필요한 추가 공간이 최소화되고 변환 작업을 수행하는 데 걸리는 시간이 줄어듭니다. NOCOPY 그러나 이 옵션은 원본 데이터베이스 파일을 그대로 유지하지 않기 때문에 위험합니다. 따라서 데이터베이스를 이전 상태로 복원해야 하는 경우 변환 작업 이전에 수행한 백업을 사용하여 데이터베이스를 복원해야 합니다.
데이터베이스 크기가 더 작은 경우 COPY를 사용해야 합니다. 옵션을 사용하면 문제가 있는 경우 원본 파일이 항상 손상되지 않기 때문에 이전의 비 CDB로의 폴백이 간단합니다.
피드백 탭을 사용하여 의견을 남기거나 질문하십시오.
Rackspace 애플리케이션 서비스에 대해 자세히 알아보십시오.