1. 程式人生 > 其它 >Oracle 12.1升級到12.2的兩種方法(r12筆記第92天)

Oracle 12.1升級到12.2的兩種方法(r12筆記第92天)

自Oracle 12.2釋出以來,就會面臨兩類升級的需求,一類是12.1升級到12.2,畢竟12.1和12.2的釋出時間間隔有5年左右的時間,這個時間段內已經有一些線上業務使用了12.1,現在升級到12.2的意願就會更加強烈。另外一種是低版本升級到12.2,這類需求的一個很大的驅動就是11.2.0.4的服務期限受限。

資料庫升級有很多種方式,比如下面的這個升級方案概覽,就涉及到很多種場景的考慮。

一般來說,圖形的DBUA升級方式比較方便,雖然升級的過程很簡便,但是有一個最大的風險點就是不可控因素,所以對於大中型的升級專案,還是會優先選擇手工方式升級。

那麼對於12.1升級到12.2,是否有什麼方案呢,因為單純看上面的方案還是有一定的侷限性,這麼說還是有一定的背景的。

對於啟用多租戶的12c環境,拋開升級,單純的建立PDB,我們可以有兩種方式,一種是遠端克隆,基於db link,另外一種是unplug,plugin的方式,而和升級結合起來,思路還是很相似。

我們來簡單看看這兩種方案。

SQL> CREATE PLUGGABLE DATABASE tbillmob FROM tbillmob@tbillmob_link file_name_convert=('/U01/app/oracle/oradata/new12c/NEW12C/tbillmob','/U01/app/oracle/oradata/test12cs/tbillmob') ; CREATE PLUGGABLE DATABASE tbillmob FROM tbillmob@tbillmob_link

* ERROR at line 1: ORA-17628: Oracle error 17630 returned by remote Oracle server ORA-17630: Mismatch in the remote file proto col version client server

出現這個問題還是因為版本的差異,這裡需要在源庫打一個補丁,可以參考mos文件。

Patch 18633374: COPYING ACROSS REMOTE SERVERS: ASMCMD-8016, ORA-17628, ORA-17630, ORA-06512 這樣對於源庫來說,打補丁就需要停源庫的服務,也就意味著維護視窗。

另外一類方案就是在源庫unplug,在目標庫plugin,

SQL> create pluggable database upg121 using '/U01/app/oracle/oradata/test12cs/upg121/UPG121.xml' nocopy tempfile reuse; 看起來遷移一個PDB從12.1到12.2真是太容易了,其實不然,因為對於相應的PDB還是需要單獨升級,可以使用一個新的命令來做。比如PDB的名字是upg121,就可以使用如下的命令。

$ORACLE_HOME/bin/dbupgrade -c upg121