oracle opatch 工具的使用(oracle小補丁安裝)(轉)
從9.2版開始,Oracle公司設計實現了個別補丁安裝管理工具opatch.opatch使用一
個稱為inventory的系統資料結構(嚴格說是與oui共享inventory),集中管理所有已安裝的個別補丁;個別
補丁的安裝和解除安裝都使用opatch命令完成,衝突檢測也由opatch在安裝時自動完成;提供列表命令可以很方
便得到已安裝個別補丁的資訊。
10g(10.1和10.2)版本中,opatch作為一個標準工具,在軟體安裝時自動安裝。(安裝在
$ORACLE_HOME/OPatch下。)而對於9.2版,需要從metalink下載opatch.無論資料庫是哪一個版本,系統中是
否已經安裝opatch,在使用之前,應從metalink下載最新版本的opatch.很遺憾,由於系統實現的問題,10.2
使用的opatch與之前版本(10.1和9.2)使用的opatch不相容,不能混用,這一點必須注意。
opatch是使用perl編寫的指令碼程式(其中也使用JAVA API)。程式設計使用的perl版本是5.6版,雖然在5.6
之前的版本中也可執行,但應儘可能安裝5.6或以上的版本的perl.對於DBA來說一個好訊息是,如果安裝9.2
版軟體時保留了HTTP伺服器,則在$ORACLE_HOME/Apache下會自動安裝perl.(10g會自動安裝配置perl和
opatch.)
opatch命令格式為:
opatch < command > [< command_options >] [ -h[elp] ]
命令有:apply(安裝個別補丁)、rollback(解除安裝個別補丁)、lsinventory(對inventory進行列表)
、query(顯示某一個別補丁的詳細資訊)、version(顯示opatch版本資訊)。在opatch目錄下,有使用者使
用指南檔案(Users_Guide.txt),其中有詳細的命令格式和使用示例,讀者可以參考。Opatch執行操作時,
除在螢幕輸出結果外,還生成日誌檔案。日誌檔案的路徑和檔名格式如下:
$ORACLE_HOME/.patch_storage/< patch_id >/< action >-< patch_id >_< mm-dd-yyyy_hh-mi-ss
>.log
其中“patch_id”是Oracle技術支援部門為個別補丁分配的編號。
* 個別補丁安裝例項
沿用安裝PSR例項中的環境。在安裝PSR10.1.0.5後,檢索metalink,發現若干在其之上的個別補丁。選
擇其中之一安裝。
個別補丁Patch 4518443修復BUG4518443,這一BUG的主要問題是TNS LISTENER在註冊ONS(Oracle
Notification Services)的同時如果建立子程式,那麼LISTENER會掛起(HANGUP)。
安裝時,首先,從metalink下載補丁的壓縮檔案p4518443_10105_LINUX.zip.將此檔案解壓縮至某一目錄
中。解壓縮後,這一補丁的所有檔案都在子目錄4518443下,目錄名就是個別補丁的補丁號,opatch依據目錄
名獲得資訊,所以一定不要重新命名子目錄。
然後,在終端視窗中,執行cd命令移動到4518443子目錄中,執行以下命令:
$ $ORACLE_HOME/OPatch/opatch apply
對inventory列表,確認安裝操作:
$ $ORACLE_HOME/OPatch/opatch lsinventory
執行解除安裝命令時,也必須使4518443子目錄成為當前目錄。其中,Rollback命令需要兩個引數:-id給出
個別補丁號;-ph 給出個別補丁解壓縮後的路徑。
$ $ORACLE_HOME/OPatch/opatch rollback -id 4518443 -ph /…/4518443
隨後再對inventory列表,則會看到這一個別補丁已經被移去。
* 使用opatch顯示已安裝的版本資訊
不需要啟動資料庫,執行加選項的對inventory的列表命令,可以得到已安裝的軟體的各個元件的詳細版
本資訊。
$ $ORACLE_HOME/OPatch/opatch lsinventory -detail
安全補丁CPU
一個CPU內包含了對多個安全漏洞的修復,並且也包括相應必需的非安全漏洞的補丁。CPU是累積型的,
只要安裝最新發布的CPU即可,其中包括之前釋出的所有CPU的內容。事實上,在CPU之前的安全漏洞修改除去
個別例外也被包括在CPU中。Oracle公司只對處於標準技術支援和延長支援期間的產品提供CPU更新,對處於
維持支援範圍的產品不提供新的CPU.(對於9.2以前的版本,只對處於ECS和EMS期間的版本提供CPU更新。)
一般對當前補丁發行版及前一個版本提供CPU,但也有隻限於當前補丁發行版的例外情形。也就是說,一般需
要先安裝最新PSR後才可能安裝CPU.由於是累積型的定期釋出,所以對於某一平臺的某一版本,如果兩次CPU
釋出期間沒有發現新的安全漏洞,則新發布的CPU與前一版本完全相同。
在以下網址中可以找到CPU釋出的資訊,但是很遺憾,只有技術支援簽約使用者才可以從metalink下載補丁
檔案。
http://www.oracle.com/technology/deploy/security/alerts.htm
Oracle公司制定的CPU的釋出日期大約在一月、四月、七月和十月的最接近15的星期二。
對於每一個CPU,附有相應的說明文件(Critical Patch Update Note),其中介紹安裝過程和注意事項
,在安裝之前應認真閱讀此文件。同樣也存在文件“Oracle Critical Patch Update MM YYYY Known Issues
for Oracle Database”,其中列出了說明文件中沒有給出的新資訊。
在安裝時,首先下載壓縮檔案p5225797_10105_LINUX.zip,解壓縮到與其它個別補丁相同的目錄下。檢
查其發行說明時,發現要求opatch版本比現已安裝版本要高,下載安裝指定版本opatch.進入子目錄5225797
(這是此安全補丁的補丁號),執行apply命令。
$ $ORACLE_HOME/OPatch/opatch apply
開啟此次安裝生成的日誌檔案,其中沒有錯誤資訊出現。執行inventory列表命令確認安裝:
$ $ORACLE_HOME/opatch lsinventory
opatch作用
opatch是用於維護"個別"補丁的,有人稱其為interim path或是one-off patch。
以解決TA ENQ AND US ENQ DEADLOCK DURING TRANSACTION RECOVERY IN RAC問題的interim patch 3777178為例,
安裝及rollback的命令如下:
install:
oracle>unzip p3777178_9206_HP64.zip
oracle>cd 3777178
oracle>opatch apply
rollback:
oracle>cd 3777178
oracle>opatch rollback -id 3777178
檢視:
如下命令可以看到已經安裝了哪些interim patch
[oracle@mysql2 ~]$ /u01/app/oracle/product/10.2.0/db_2/OPatch/opatch lsinventory
不斷的在opatch後面加-h可以看到這個命令更加詳細的選項:
看一下lsinventory後面有哪些選項:
[oracle@mysql2 ~]$ /u01/app/oracle/product/10.2.0/db_2/OPatch/opatch lsinventory -h
1. 環境介紹
XXXX綜合管理資訊系統主機放在XXXX,資料庫平臺硬體架構如下:
資料庫主機:兩臺IBMp5 570(jcczxt1、jcczxt2)安裝AIX5L ML 5306 通過IBM HACMP構成雙機熱備。
資料庫平臺:Oracle Server - Enterprise Edition - Version: 9.2.0.8
2.故障描述
2008年12月10號上午9:00值班人員接到使用者反應應用出錯無法存檔。前臺出現的錯誤資訊如下:
ORA-01115:IO error reading block from file 6 (block #2707)
ORA-01110: data file 6 : ‘/oradata/smis1.dbf’
ORA-27091: skgfqio :unable to quere I/O
ORA-27072: skgfdisp : I/O error
IBM AIX RISC System/6000 Error : 5: I/O error
此時資料庫管理員重新啟動資料庫,前臺使用者反應應用可能正常執行,問題解決。資料庫管理員在檢查主機日誌時沒有發現任何硬體故障問題,在檢查資料庫日誌時也沒有任何錯誤提示,用Oracle的實用程式DBV對資料庫檔案進行檢查沒有發現壞塊。
2008年12月11日下午18:30使用者又報同樣的錯誤,此時DBA重新啟動資料庫和應用,問題解決。2008-12-11 8:50使用者又報同樣的。DBA重新啟動資料庫和應用,問題解決。
3.故障的定位
第一步,通過errpt檢查主機的日誌確認主機沒有硬體問題,磁碟沒有損壞。第二步,通過檢查資料庫的日誌檔案(alertSID.log)也沒有相關的錯誤提示,初步判定不是資料庫的問題。第三步,通過Oracle的實用程式DBV對資料庫檔案進行檢查沒有發現壞塊。此時可以確認不是硬體問題,是軟體的問題。第四步,綜合管理資訊系統是2008年10月18號上線,一直都穩定執行,沒有出現過類似的情況,可以排除是應用程式的問題。第五步,通過上metalink網站查詢與ORA-01115相關的資訊,發現有大量的資訊,其中的故障描述與我們的情況一致,“由於在AIX5L的作業系統上Oracle由於無法獲取正確的data block頭資訊,從而導致DBWn程式寫硬碟失敗,Oracle資料庫從8.1.7.4到10.2.0.2都有此問題,是由於Oracle的BUG導致,需要打一個Oracle的臨時補丁”。此時問題可以定位為oracle在AIX5L平臺上的BUG,需要載入一個Oracle的臨時補丁patch 5496862。
4.Oracle術語解釋
什麼叫interim patch ?
Interim patch是一次性的補丁針對特定的情況下觸發的Bug,沒有經過Oracle系統的認證,Oracle會根據Bug的嚴重性和需要在下一次的patch set中包含此Interim patch。Interim patch對環境和版本有特定的要求,即不同作業系統平臺和資料庫版本的會有不同的Interim patch。如Interim patch 5496862會。
什麼叫Opatch?
Opatch是oracle支援的Oracle臨時補丁的安裝實用程式。是針對Oracle資料庫第二版9.2.0後安裝臨時補丁。Opatch是一個基於Perl的程式。
如何安裝Opatch?
從metalink上選擇補丁程式,選擇簡單搜尋,輸入patch號6880880選擇相應的作業系統平臺,查詢結果會顯示所有可用版本的optach,下載版本號10.1就行。將下的壓縮檔案上傳到資料庫主機,將壓縮檔案複製到$ORACLE_HOME目錄下,用unzip工具解壓此壓縮檔案。具體命令如下:
#cp /tmp/p6880880_101000_AIX64-5L.zip $ORACLE_HOME
#chown oracle:dba $ORACLE_HOME/p6880880_101000_AIX64-5L.zip
以oracle使用者解壓此檔案
$ cd $ORACLE_HOME
$unzip p6880880_101000_AIX64-5L.zip
5.解決方法
1)從metalink上選擇補丁程式,選擇簡單搜尋,輸入patch號5496862,選擇平臺為IBM AIX Based System(64bit),下載Oracle9.2.0.8對應的patch大小為24K。
2)將patch 5496862上傳到資料庫主機(host2)
3)在jcczxt2主機上載入此patch
因綜合管理資訊系統採用雙機熱備方式,所以備機(host2)沒有資料庫應用。所以我們可以在不停下資料庫的情況下載入patch 5496862。詳細步驟如上:
以oracle資料庫使用者執行下面的命令:
$cp /tmp/p5496862_92080_AIX64-5L.zip /oracle/patch
$cd /oracle/patch
$unzip p5496862_92080_AIX64-5L.zip
$cd 5496862
$$ORACLE_HOME/Opatch/opatch install
提示要求輸入metalink的帳號和密碼,可能隨便輸入。
提示“ Please shut down Oracle instances running out of this ORACLE_HOME”輸入’Y’
此時oracle會開始安裝patch,因為要重新連結lib,所以要花幾分鐘時間,在安裝完畢後會出現“OPatch succeeded”提示。
4)將資料庫切換到jcczxt2
5)在host1主機上採用相同的方法上載入patch 5496862
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70109/viewspace-689486/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle的OPatch補丁更新Oracle
- 【UP_ORACLE】如何給Oracle DG打補丁(二)備庫安裝補丁步驟Oracle
- 【UP_ORACLE】如何給Oracle DG打補丁(三)主庫安裝補丁步驟Oracle
- 【ASK_ORACLE】Oracle 19c RAC使用opatchauto安裝補丁報錯OPATCHAUTO-72083Oracle
- ORACLE opatch 打補丁fuser command output for /u01/.../crsctl.bin is FailureOracleAI
- 關於oracle opatch打補丁是 不能用grid使用者直接mvOPatch folder的問題Oracle
- 【補丁】Oracle補丁的知識及術語Oracle
- Oracle RAC更新補丁Oracle
- oracle打補丁回顧Oracle
- oracle最新補丁查詢Oracle
- Oracle補丁介紹一Oracle
- ORACLE打補丁的方法和案例Oracle
- $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithOracleAI
- 12. Oracle版本、補丁及升級——12.2. 補丁及補丁集Oracle
- Oracle各版本補丁的支援週期Oracle
- 【Oracle】常用工具-oracle sql developer快速安裝使用教程OracleSQLDeveloper
- Oracle RAC 19.3打19.5.1 RU補丁Oracle
- windows oracle 11201打補丁報錯WindowsOracle
- RU 和 RUR oracle補丁說明Oracle
- GI PSU打補丁之opatch auto 自動方式分別打GI_HOME和ORACLE_HOMEOracle
- weblogic 12 補丁安裝Web
- Oracle Goldengate 12c打pus補丁OracleGo
- Oracle 12.2之後補丁RU RUR概要Oracle
- 【UP_ORACLE】如何給Oracle DG打補丁(一)整體思路Oracle
- Oracle更新Opatch故障處理Oracle
- oracle 跨小版本dg切換應用補丁報錯處理Oracle
- win10怎麼解除安裝補丁_解除安裝win10已安裝更新補丁的方法Win10
- Oracle 19c- 19.8應用32242453補丁Oracle
- ORACLE windows和linux環境下 10g升級到11.2.0.4 並安裝11.2.0.4.19補丁OracleWindowsLinux
- Oracle bbed一鍵安裝工具分享Oracle
- Oracle 11G 安裝 bbed 工具Oracle
- 使用docker安裝設定oracleDockerOracle
- RedHat 7 靜默安裝Oracle11g的補充RedhatOracle
- ORACLE RAC的全自動 打補丁標準化文件Oracle
- 有Oracle support identifier的沒?幫下載兩個補丁OracleIDE
- 「Oracle」Oracle 資料庫安裝Oracle資料庫
- Webstorm 2024 安裝使用 (附加永久啟用碼、補丁)WebORM
- Oracle安裝相關Linux引數(轉)OracleLinux
- oracle 19c rac打補丁常見錯誤Oracle