Oracle 更新Opatch、打补丁
1.更新Opatch;
2.打補丁;
3.grid 打補丁;
1.更新Opatch(實驗版本:oracle:11.2.0.3.0):
默認安裝數據庫后,在ORACLE_HOME 下會有個OPatch 文件夾,更新前先檢查當前Opatch 版本:
注:有些時候產品清單加載失敗,會導致打補丁時出錯
解決方法:
1)找到產品清單文件,默認安裝成功后會在 /etc/oraInst.loc 和oracle 根目錄 oraInventory 文件夾下,如果/etc/下沒有就到ORACLE 安裝根目錄找到文件夾:oraInventory,里面有oraInst.loc;復制一個到 /etc下;
2)到$ORACLE_HOME/oui/bin/ 執行如下腳本加載清單:
3) 加載成功后再次到OPatch目錄下執行 ./opatch lsinventory 確認產品清單加載是否成功;
有些時候你打過補丁,然后刪除過$ORACLE_HOME/.patch_storage 下的文件,下次重新再打補丁是可能會報:"OracleHomeInventory 無法創建鎖文件",怎么處理都不行,也并不是操作權限問題:
1: [grid@sywu2 shared]$ opatch lsinventory 2: ? 3: Oracle 中間補丁程序安裝程序版本 11.2.0.3.3 4: 版權所有 (c) 2012, Oracle Corporation。保留所有權利。 5: ? 6: ? 7: Oracle Home : /g01/11ggrid/11.2.0/grid 8: Central Inventory : /g01/oraInventory 9: from : /g01/11ggrid/11.2.0/grid/oraInst.loc 10: OPatch version : 11.2.0.3.3 11: OUI version : 11.2.0.3.0 12: Log file location : /g01/11ggrid/11.2.0/grid/cfgtoollogs/opatch/opatch2014-06-28_16-51-09下午_1.log 13: ? 14: OracleHomeInventory 無法創建鎖文件, 可能是由于 OPatch 會話失敗。加載的產品清單可能無法正確顯示 Oracle 主目錄中的內容。 15: Lsinventory Output file location : /g01/11ggrid/11.2.0/grid/cfgtoollogs/opatch/lsinv/lsinventory2014-06-28_16-51-09下午.txt解決方法:
1)首先查看 $ORACLE_HOME/.patch_storage 目錄下是否有patch_locked 文件:
2)如果有,將patch_locked 文件命名為其它名或移走,然后再次嘗試 opatch lsinventory:
1: [grid@sywu2 shared]$ mv /g01/11ggrid/11.2.0/grid/.patch_storage/patch_locked /g01/11ggrid/11.2.0/grid/.patch_storage/patch_locked_bkp 2: [grid@sywu2 shared]$ opatch lsinventory
1.1 更新前先備份原來的Opatch:
1.2 解壓新版Opatch 文件到$ORACLE_HOME 目錄下:
1: [oracle@sywu2 dbhome_1]$ /tmp/unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME 2: Archive: p6880880_112000_Linux-x86-64.zip 3: creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/ 4: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/README.html 5: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/README.txt 6: creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/ 7: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/oplan.jar 8: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/oracle.oplan.classpath.jar 9: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/automation.jar 10: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/OsysModel.jar 11: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/EMrepoDrivers.jar 12: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/Validation.jar 13: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/ValidationRules.jar 14: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/osysmodel-utils.jar 15: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/CRSProductDriver.jar 16: creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/apache-commons/ 17: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/apache-commons/commons-cli-1.0.jar 18: creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/ 19: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/activation.jar 20: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/jaxb-api.jar 21: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/jaxb-impl.jar 22: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/jsr173_1.0_api.jar 23: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/oplan 24: replace /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/docs/FAQ? [y]es, [n]o, [A]ll, [N]one, [r]ename: A 25: .............1.3 確認OPatch 更新是否成功:
1: [oracle@sywu2 OPatch]$ ./opatch version 2: OPatch Version: 11.2.0.3.3 3: ? 4: OPatch succeeded.可能會有未知錯誤,如版本問題,操作前一定記得備份原來的OPatch;
?
2.打補丁:
打補丁前要關閉數據庫實例、監聽程序,補丁要與更新的OPatch對應:
2.1 解壓補丁文件到$ORACLE_HOME 目錄下:
? README.html 文件上有介紹打補丁方法,打補丁前先查看一下;
開始打補丁:
2.2 將變更的 SQL Files 導入數據庫:
1: [oracle@sywu2 ~]$ cd $ORACLE_HOME/rdbms/admin 2: [oracle@sywu2 admin]$ sqlplus / as sysdba 3: SQL> @catbundle.sql psu apply打補丁信息在 V$version 視圖中是查詢不到的,要通過 dba_registry_history 視圖查詢:
1: SQL> select action_time,action,namespace,version,bundle_series,comments from dba_registry_history; 2: ? 3: ACTION_TIME ACTION NAMESPACE VERSION 4: --------------------------------------------------------------------------- ---------- ---------- ------------------------------ 5: BUNDLE_SERIES COMMENTS 6: ------------------------------ -------------------- 7: 02-MAY-14 11.12.11.444913 PM APPLY SERVER 11.2.0.3 8: PSU Patchset 11.2.0.2.0 9: ? 10: 27-JUN-14 11.42.54.320914 PM APPLY SERVER 11.2.0.3查詢具體的Opatch 版本信息和補丁信息
1: [oracle@sywu OPatch]$ cd $ORACLE_HOME/OPatch 2: [oracle@sywu OPatch]$ ./opatch lsinventory 3: ? 4: Oracle 中間補丁程序安裝程序版本 11.2.0.3.3 5: 版權所有 (c) 2012, Oracle Corporation。保留所有權利。 6: ? 7: ? 8: Oracle Home : /s01/app/oracle/product/11.2.0/dbhome_1 9: Central Inventory : /g01/oraInventory 10: from : /s01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc 11: OPatch version : 11.2.0.3.3 12: OUI version : 11.2.0.3.0 13: Log file location : /s01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2014-06-28_00-03-04上午_1.log 14: ? 15: Lsinventory Output file location : /s01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2014-06-28_00-03-04上午.txt 16: ? 17: -------------------------------------------------------------------------------- 18: 已安裝的頂級產品 (1): 19: ? 20: Oracle Database 11g 11.2.0.3.0 21: 此 Oracle 主目錄中已安裝 1 個產品。 22: ? 23: ? 24: 中間補丁程序 (1) : 25: ? 26: Patch 14727310 : applied on Fri Jun 27 22:35:15 CST 2014 27: Unique Patch ID: 15663328 28: Patch description: "Database Patch Set Update : 11.2.0.3.5 (14727310)" 29: Created on 27 Dec 2012, 00:06:30 hrs PST8PDT 30: Sub-patch 14275605; "Database Patch Set Update : 11.2.0.3.4 (14275605)" 31: Sub-patch 13923374; "Database Patch Set Update : 11.2.0.3.3 (13923374)" 32: Sub-patch 13696216; "Database Patch Set Update : 11.2.0.3.2 (13696216)" 33: Sub-patch 13343438; "Database Patch Set Update : 11.2.0.3.1 (13343438)" 34: Bugs fixed: 35: 13566938, 13593999, 10350832, 14138130, 12919564, 13624984, 13588248 36: 13080778, 13804294, 14258925, 12873183, 13645875, 12880299, 14664355 37: 14409183, 12998795, 14469008, 13719081, 13492735, 12857027, 14263036 38: 14263073, 13742433, 13732226, 12905058, 13742434, 12849688, 12950644 39: 13742435, 13464002, 12879027, 13534412, 14613900, 12585543, 12535346 40: 12588744, 11877623, 12847466, 13649031, 13981051, 12582664, 12797765 41: 14262913, 12923168, 13612575, 13384182, 13466801, 13484963, 11063191 42: 13772618, 13070939, 12797420, 13041324, 12976376, 11708510, 13742437 43: 13026410, 13737746, 13742438, 13326736, 13001379, 13099577, 14275605 44: 13742436, 9873405, 9858539, 14040433, 12662040, 9703627, 12617123 45: 12845115, 12764337, 13354082, 13397104, 12964067, 13550185, 12780983 46: 12583611, 14546575, 13476583, 15862016, 11840910, 13903046, 15862017 47: 13572659, 13718279, 13657605, 13448206, 13419660, 14480676, 13632717 48: 14063281, 13430938, 13467683, 13420224, 14548763, 12646784, 14035825 49: 12861463, 12834027, 15862021, 13377816, 13036331, 14727310, 13685544 50: 13499128, 15862018, 12829021, 15862019, 12794305, 14546673, 12791981 51: 13503598, 13787482, 10133521, 12718090, 13399435, 14023636, 12401111 52: 13257247, 13362079, 12917230, 13923374, 14480675, 13524899, 13559697 53: 14480674, 13916709, 14076523, 13773133, 13340388, 13366202, 13528551 54: 12894807, 13343438, 13454210, 12748240, 14205448, 13385346, 15853081 55: 12971775, 13035804, 13544396, 13035360, 14062795, 12693626, 13332439 56: 14038787, 14062796, 12913474, 14841409, 14390252, 13370330, 14062797 57: 13059165, 14062794, 12959852, 13358781, 12345082, 12960925, 9659614 58: 13699124, 14546638, 13936424, 13338048, 12938841, 12658411, 12620823 59: 12656535, 14062793, 12678920, 13038684, 14062792, 13807411, 12594032 60: 13250244, 15862022, 9761357, 12612118, 13742464, 14052474, 13457582 61: 13527323, 15862020, 12780098, 13502183, 13705338, 13696216, 10263668 62: 15862023, 13554409, 15862024, 13103913, 13645917, 14063280, 130114093.grid 打補丁:
打補丁前同樣的先關掉實例、監聽程序,停止相關服務釋放資源:
切換到grid 用戶下解壓補丁、打補丁(補丁文件:p14727347_112030_Linux-x86-64.zip,該補丁文件包含了db補丁和grid補丁):
1: [grid@sywu2 shared]$ unzip p14727347_112030_Linux-x86-64.zip -d /tmp/ 2: [grid@sywu2 tmp]$ cd 15876003/ 3: [grid@sywu2 15876003]$ ls 4: 14727310 15876003 bundle.xml README.html README.txt 5: [grid@sywu2 15876003]$ opatch napply -oh $GRID_HOME -local /tmp/15876003/14727310/然后根據相關提示操作;14打完再打15876003 grid 補丁:
1: [grid@sywu2 15876003]$ opatch napply -oh $GRID_HOME -local /tmp/15876003/15876003/打完grid 補丁后切換到oracle 用戶下打db補丁:
1: [grid@sywu2 ~]$ su -l oracle 2: [oracle@sywu2 ~]$ /tmp/15876003/15876003/custom/server/15876003/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME 3: /tmp/15876003/15876003/custom/server/15876003/custom/scripts/prepatch.sh completed successfully. 4: ? 5: [oracle@sywu2 ~]$ opatch napply -oh $ORACLE_HOME -local /tmp/15876003/15876003/custom/server/15876003/ 6: ? 7: [oracle@sywu2 ~]$ opatch napply -oh $ORACLE_HOME -local /tmp/15876003/14727310/ 8: ? 9: ? 10: [oracle@sywu2 ~]$ /tmp/15876003/15876003/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME打完db補丁后切換到root用戶,完成后續操作和啟動相關服務:
1: [oracle@sywu2 ~]$ su -l root 2: [root@sywu2 ~]# /g01/11ggrid/11.2.0/grid/rdbms/install/rootadd_rdbms.sh 3: [root@sywu2 ~]# /g01/11ggrid/11.2.0/grid/crs/install/rootcrs.pl -patch檢查相關服務是否啟動;
1: [root@sywu2 ~]# crsctl check crs 2: [root@sywu2 ~]# crsctl stat res -t這樣補丁打完:
1: [grid@sywu grid]$ opatch lspatches 2: 15876003;Grid Infrastructure Patch Set Update : 11.2.0.3.5 (14727347) 3: 14727310;Database Patch Set Update : 11.2.0.3.5 (14727310)最后啟動數據庫將變更的 SQL Files 導入數據庫:
1: [oracle@sywu2 ~]$ cd $ORACLE_HOME/rdbms/admin 2: [oracle@sywu2 admin]$ sqlplus / as sysdba 3: SQL> @catbundle.sql psu apply?
轉載于:https://www.cnblogs.com/lanston/p/3812883.html
總結
以上是生活随笔為你收集整理的Oracle 更新Opatch、打补丁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Git的安装(附安装包)
- 下一篇: VSCODE无法代码跳转