【CDB】怎樣轉換non-CDB to CDB
一、 規劃
Non-CDB name: orcl
CDB name: orclcdb
version: 12c or later
二、 開始轉換
1. 建立一個CDB 形式的資料庫
可以選擇使用DBCA 或指令碼建立
2. 只讀方式開啟資料庫(non-CDB )
SQL> shutdown immediate;
SQL> startup open read only;
3. 生成xml 檔案
這個xml 檔案可以理解為 non-CDB 的模板檔案
執行以下語句
SQL> BEGIN
DBMS_PDB.DESCRIBE(pdb_descr_file => '/ home/oracle /1 9 cNonPDB.xml');
END;
/
4. 關閉資料庫(non-CDB)
SQL> shutdown immediate;
為了保持後設資料檔案和資料檔案的一致性,不要再次開啟資料庫,否則會報錯
ORA-65139: Mismatch between XML metadata file and data file
5. 在目標CDB 中檢查相容性
$ export ORACLE_SID=orclcdb
$ sqlplus / as sysdba
SET SERVEROUTPUT ON;
DECLARE
compatible CONSTANT VARCHAR2(3) := CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(pdb_descr_file => ' / home/oracle /1 9 cNonPDB.xml ')
WHEN TRUE THEN 'YES'
ELSE 'NO'
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(compatible);
END;
/
執行上述過程如果報錯,需要檢查 PDB_PLUG_IN_VIOLATIONS 檢視
SQL> col cause for a20
SQL> col name for a20
SQL> col message for a35 word_wrapped
SQL> select name,cause,type,message,status from PDB_PLUG_IN_VIOLATIONS where name=' orcl ';
會得到類似下面的結果
ERROR PSU bundle patch 1 (PSU Patch 12345): Installed in the CDB but not in the PDB.
處理過程請參考MOS Note 1935365.1
6. 在CDB 中建立一個 PDB
$ export ORACLE_SID=orclcdb
$ sqlplus / as sysdba
SQL> CREATE PLUGGABLE DATABASE PDB 1 USING '/ home/oracle /1 9 cNonPDB.xml' COPY FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/ orcl /', '/u01/app/oracle/oradata/ ORCLCDB / PDB1 /');
7. 切換到PDB 容器,執行轉換指令碼
$ export ORACLE_SID=orclcdb
$ sqlplus / as sysdba
SQL> alter session set container=pdb1;
SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
8. 啟動PDB ,檢查 open mode
SQL> alter pluggable database pdb1 open;
SQL> select name,open_mode from v$database;
NAME OPEN_MODE
----- ----------
PDB1 READ WRITE
1 row selected
---- end ----
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31529886/viewspace-2745231/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 1.3.2.2.2 通過Non-CDB(非CDB模式)建立PDB模式
- Oracle 12c系列(七) | Non-CDB轉換為PDBOracle
- 1.3.2.2.2. 通過Non-CDB(非CDB模式)建立PDB模式
- oracle 12c non-cdb升級成cdb模式Oracle模式
- Oracle 12c no-CDB轉換為CDBOracle
- oracle 20c 不支援non-cdb架構Oracle架構
- Oracle 12c 使用Non-CDB來建立PDBOracle
- Oracle 12c nocdb轉換成cdbOracle
- 12C把non-CDB的單庫匯入到CDB裡面當成PDB的方法
- Z004-O001-04 克隆遠端 Non-CDB
- 【CDB】怎樣修改PDB的記憶體引數記憶體
- 【CDB】Oracle CDB/PDB常用管理命令Oracle
- oracle 12c Release 2 版本廢棄 Non-CDB ArchitectureOracle
- 多租戶:在Oracle12.2中 從Non-CDB遷移到PDB,從PDB遷移另一個CDB中Oracle
- 2.1 Overview of Containers in a CDB (CDB容器概述)ViewAI
- 12CR2 using create database command for create non-CDB rac databaseDatabase
- 2.2.1.2 Namespaces in a CDBnamespace
- 2.10.1 在non-CDB(非多租戶)環境中克隆資料庫資料庫
- 【Oracle升級】Oracle指令碼升級11g to 19c non-CDBOracle指令碼
- Oracle 12c 手動建立CDB和非CDBOracle
- Oracle12c多租戶如何連線到CDB或PDB、CDB與PDB容器切換Oracle
- 1.3.2.1.2. 通過克隆或None-CDB方式建立CDBNone
- Overview of Availability in a CDBViewAI
- 2.4.1.2 Nonedefault Services in a CDBNone
- 2.4 Overview of Services in a CDBView
- Oracle 12C RMAN Duplicating the Whole RAC CDB to local RAC CDBOracle
- 怎樣遷移一個已存在的 12c 之前版本的資料庫(非 CDB)到 12c CDB 的資料庫資料庫
- 2.6.2 Overview of Flashback PDB in a CDBView
- RMAN中使用until time子句對Non-CDB中的表執行按時間點恢復
- 4.4 為CDB配置EM ExpressExpress
- 4.3.2.4 關於CDB UNDO模式模式
- 2.7 Overview of Oracle Resource Manager in a CDBViewOracle
- 2.5 Overview of Tablespaces and Database Files in a CDBViewDatabase
- 2.4.2 Connections to Containers in a CDBAI
- 2.2.4.1 Principles of Privilege and Role Grants in a CDB
- 2.2.4 Overview of Privilege and Role Grants in a CDBView
- 2.2.1 關於CDB的特性
- 2.1.3.3 Container Data Objects in a CDBAIObject