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

비컨테이너 데이터베이스를 다중 테넌트 플러그 가능 데이터베이스로 변환

원래 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 애플리케이션 서비스에 대해 자세히 알아보십시오.