Oracle 12C打補丁的簡單嘗試(r10筆記第55天)
最近在伺服器盤點的時候,發現測試環境還是值得整合一下,因為伺服器資源老舊,整體配置不高,伺服器資源使用率不高,業務要求不高,多個例項分散在多臺伺服器上,要考慮災備,要麼是每天全庫匯出異地備份要麼是Data Guard,其實還是蠻適合使用容器的方式來管理的。
之前整合過幾個測試環境,是整合到11g中,發現有幾個釘子戶實在沒法遷移了,因為幾個資料庫中的使用者名稱有重複的,同義詞也有重複的,處理起來就很糾結。所以最後就暫且放下,現在12c也有些年頭了,咱也得充分利用它的亮點特性不是。
測試整合的想法要付諸行動,還是要有一些測試演練的過程來印證 ,儘可能把影響降到最低,提高遷移的效率,而且也要與時俱進,那就是PSU了。
我的想法是打上最新的補丁,然後就可以在很長的一段時間內不用考慮版本更新的問題了,而且補丁裡面修復了大量的bug,也不用重新淌一遍哪些bug。在遷移的時候直接克隆安裝,也算是一步到位。
簡單檢視當前的版本情況。
[oracle@odb12c OPatch]$ ./opatch lsinventory
Oracle Interim Patch Installer version 12.1.0.1.3
Copyright (c) 2016, Oracle Corporation. All rights reserved.
Oracle Home : /U01/app/oracle/product/12c/db_1
Central Inventory : /U01/app/oraInventory
from : /U01/app/oracle/product/12c/db_1/oraInst.loc
OPatch version : 12.1.0.1.3
OUI version : 12.1.0.2.0
。。
Oracle Database 12c 12.1.0.2.0
There are no Interim patches installed in this Oracle Hom
e.
從以上的資訊可以看出,這個模擬測試的環境,資料庫軟體是裸奔狀態,沒有任何的補丁。來到MOS上下載即可,快捷方式是圖裡顯示的方式了。
搜尋過濾後得到的結果很清晰,就兩行記錄,選擇的是第一條。這個補丁是比較新的了。7月份的。
順著連結進來,就是一個標準的下載介面,簡單確認一下,就開始下載吧,這個補丁大概有200多M。下載的感覺就如同一個孩子目前和健康,但是還得給他打打疫苗。
下載花了些時間,打補丁的過程其實就很簡單了,關鍵就是apply這一步了。
常規的步驟如下:
unzip p23054246_12102_.zip
cd 23054246
opatch apply
這個錯誤讓我有些奇怪,查了下資料,發現是OPatch的版本過低導致。 這個步驟可以參考MOS的文件說明 How To Download And Install The Latest OPatch(6880880) Version (Doc ID 274526.1) 所以需要下載一個新版本的OPatch,順著連結裡提供的方式去操作,就能夠找到下面的連線了。下載相應的OPatch即可。
這個版本的更新是在8月份,絕對是跟得上時代了。
OPatch的處理可以檢視readme.txt,步驟還是老三件。官方的說明如下:
(1) Please take a backup of ORACLE_HOME/OPatch into a dedicated backup
location.
(2) Please make sure no directory ORACLE_HOME/OPatch exist.
(3) Please unzip the OPatch downloaded zip into ORACLE_HOME directory.
[oracle@odb12c ~]$ cp -r /U01/app/oracle/product/12c/db_1/OPatch/ OPatch_bak
[oracle@odb12c ~]$ rm -rf /U01/app/oracle/product/12c/db_1/OPatch
[oracle@odb12c ~]$ mv OPatch /U01/app/oracle/product/12c/db_1
更新OPatch之後,檢視的結果就有了變化。
[oracle@odb12c OPatch]$ ./opatch lsinventory
Oracle Interim Patch Installer version 12.2.0.1.7
Copyright (c) 2016, Oracle Corporation. All rights reserved.
Oracle Home : /U01/app/oracle/product/12c/db_1
Central Inventory : /U01/app/oraInventory
from : /U01/app/oracle/product/12c/db_1/oraInst.loc
OPatch version : 12.2.0.1.7
OUI version : 12.1.0.2.0
然後再次嘗試apply的步驟,沒想到還是有一個報錯。
這個問題看起來有些奇怪,順著報錯來分析,其實就是監聽沒停掉,停掉監聽之後,再次嘗試apply操作。
螢幕不斷地輸出,最後提示一句 OPatch succeeded. 使用opatch lsinventory檢視就有了變化。
打補丁需要評估風險,膽大心細不為過。