怎樣遷移一個已存在的 12c 之前版本的資料庫(非 CDB)到 12c CDB 的資料庫

mosdoc發表於2016-12-03

怎樣遷移一個已存在的 12c 之前版本的資料庫(非 CDB)到 12c CDB 的資料庫 (文件 ID 2047052.1)
文件內容


目標

解決方案
  a). 為需要整合的資料庫提供空的 PDB
  b). 使用資料泵或者 golden gate 複製遷移資料庫到 PDB
  a) 升級一個 12.1 之前的資料庫到 12.1 的版本(非 CDB)
  b) 插入升級後的資料庫到 CDB

參考


適用於:

Oracle Database - Enterprise Edition - 版本 12.1.0.1 和更高版本
本文件所含資訊適用於所有平臺

目標

 這篇文件幫助遷移非 CDB(12c 或者 12c 之前的版本)到 12c CDB。

解決方案

 

遷移到 12c 可插拔資料庫是非常簡單容易的。您可以評估和選擇最適合您的一種方法。

計劃 A.

a). 為需要整合的資料庫提供空的 PDB b). 使用資料泵或者 golden gate 複製遷移資料庫到 PDB

計劃 B.

a) 升級一個 12.1 之前的資料庫到 12.1 的版本(非 CDB)

您可以使用 dbua 或者手動的方法升級一個 12.1 之前的資料庫版本到 12.1 非 CDB 的資料庫

Complete Checklist for Manual Upgrades to Oracle Database 12c Release 1 (12.1) Note 1503653.1
Complete Checklist to Upgrade the Database to 12c Release 1 using DBUA Note 1516557.1

如果noncdb在生成 manifest 檔案時,資料庫尚未打patch 20298413,那麼在執行noncdb_to_pdb時會碰到ORA-1405錯誤。要解決這個問題需要在noncdb上打patch 20298413,之後重新生成manifest檔案並重新複製資料檔案;之後按照文件 ORA-01405 while running "noncdb_to_pdb.sql" (Doc ID 2000882.1)的步驟來alter使用者密碼。
b) 插入升級後的資料庫到 CDB

* 這篇文件詳述了怎樣插入一個升級的/建立的非 12c 的資料庫到 CDB 中

設定 ORACLE_SID 變數到非 CDB 資料庫

連線到非 cdb 例項

sqlplus / as sysdba

假如例項啟動,首先關閉例項

shutdown immediate

 啟動資料庫在 mount exclusive 模式

startup mount exclusive

開啟資料庫到 read-only 模式

alter database open read only;

 


* 為非 CDB 的資料庫產生一個插拔資料庫的 Manifest File

 執行 dbms_pdb.describe 儲存過程產生 manifest file

exec dbms_pdb.describe(pdb_descr_file=>'/opt/oracle/oradata/noncdb/noncdb.xml');

 

關閉非 cdb 的例項,為下面的部分準備複製資料檔案

shutdown immediate
 * 用非 cdb 資料庫的 Manifest File 建立和插入可插拔資料庫到 CDB 中

連線到 CDB,假如它是關閉的狀態,啟動它。

sqlplus / as sysdba

 使用非 cdb 的資料庫的 manifest file 建立一個新的可插拔資料庫(exnoncdb),引數 file_name_convert 允許您放被複製的資料檔案在一個不同的路徑上。

create pluggable database exnoncdb
as clone
using '/opt/oracle/oradata/noncdb/noncdb.xml'
file_name_convert=('/opt/oracle/oradata/noncdb','/stage/oradata/exnoncdb')
copy;
注意:我們的例子使用了COPY選項,如果選擇的是NO COPY選項,那麼如果操作失敗,那麼你需要重新從備份中恢復原來非cdb的資料庫並重新把資料庫放到只讀模式並且重新操作Manifest File。

 
* 轉化到可插拔資料的資料字典

現在資料庫可以作為可插拔資料庫(PDB)開啟了,狀態是 NEW。然而,它仍然有許多冗餘的結構(特別是在 SYS 和 SYSTEM 裡)需要透過最後的步驟清理:

連線到新的可插拔資料庫 exnoncdb。

sqlplus sys/oracle@hol/exnoncdb as sysdba

 

執行 $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql 。這個指令碼需要花比較長的時間執行(超過20分鐘)。

@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

 更詳細的資訊可以參照的文件。

透過開啟這新的可插拔的資料庫,關閉它,再開啟完成插入操作。

請注意在這個案例中,這些檔案是複製的,這樣還殘留有原始資料檔案的複製。
你應該選擇轉換已存在檔案而不是一個複製,推薦做一個完全的資料庫備份,因為這樣您將可以重建這些檔案。

 

alter pluggable database exnoncdb open;

alter pluggable database exnoncdb close;

alter pluggable database exnoncdb open;

 

參考

NOTE:1503653.1 - Complete Checklist for Manual Upgrades to Oracle Database 12c Release 1 (12.1)
NOTE:1516557.1 - Complete Checklist for Upgrading to Oracle Database 12c Release 1 using DBUA

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31393455/viewspace-2129622/,如需轉載,請註明出處,否則將追究法律責任。

相關文章