Oracle 12.1升級到12.2的兩種方法(r12筆記第92天)
資料庫升級有很多種方式,比如下面的這個升級方案概覽,就涉及到很多種場景的考慮。
一般來說,圖形的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