首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 12c 非 CDB 轉換為 PDB 完整實戰

     編輯:Oracle 教學

Oracle 12c 非 CDB 轉換為 PDB 完整實戰

Oracle 12c 引入多租戶架構 (CDB/PDB)。現有非 CDB 資料庫可透過 DBMS_PDB.DESCRIBE 產生 XML 描述檔,再以 noncdb_to_pdb.sql 腳本轉換為可插拔資料庫 (PDB)。本文記錄完整轉換流程與驗證步驟。

前置檢查:確認非 CDB 模式


轉換標準流程

  1. 關閉資料庫並以 RESTRICTED MOUNT 啟動:
    SQL> ALTER DATABASE OPEN READ ONLY;
  2. 產生 PDB 描述 XML**:
    SQL> SHUTDOWN IMMEDIATE;
  3. 建立目標 CDB (若無) 並執行轉換腳本**:
    SQL> ALTER PLUGGABLE DATABASE ORCL OPEN;
    SQL> ALTER SESSION SET CONTAINER=ORCL;
    SQL> SELECT NAME FROM V$DATAFILE;
    -- 確認資料檔路徑已遷移至 CDB 結構

關鍵腳本內容解析 (noncdb_to_pdb.sql)

選項語法特點適用場景
COPYUSING ... COPY複製資料檔到新位置、原檔保留需保留原非 CDB、磁碟空間充足
NOCOPYUSING ... NOCOPY直接使用現有資料檔、不複製原地轉換、節省空間、不可回滾
MOVEUSING ... MOVE移動資料檔 (12.2+)重新佈局儲存、原地轉換


轉換後驗證清單

問題原因解決
ORA-65010: PDB 名稱衝突CDB 中已有同名 PDB改名 CREATE PLUGGABLE DATABASE NEW_NAME USING ...
ORA-65086: 版本不相容非 CDB 版本高於 CDB升級 CDB 或降級非 CDB
資料檔路徑衝突NOCOPY 模式路徑重疊使用 FILE_NAME_CONVERT 重新映射
字典升級失敗非 CDB 有特殊物件查看 PDB_PLUG_IN_VIOLATIONS 視圖逐一修復


最佳實踐建議

  1. 完整備份:轉換前對非 CDB 執行 RMAN 完整備份
  2. 測試環境先行:在非生產環境完整演練轉換流程
  3. 應用連線測試:驗證所有應用系統能正確連線新 PDB 服務名
  4. 效能基準:轉換前後跑基準測試,確認無效能退化
  5. 文檔化:記錄轉換前後配置參數、資料檔路徑、服務名映射
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved