熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

oracleopatch工具的使用

2013-11-13 22:19:34  來源: Oracle 

  從版開始Oracle公司設計實現了個別補丁安裝管理工具opatchopatch使用一

  個稱為inventory的系統數據結構(嚴格說是與oui共享inventory)集中管理所有已安裝的個別補丁個別

  補丁的安裝和卸載都使用opatch命令完成沖突檢測也由opatch在安裝時自動完成提供列表命令可以很方

  便得到已安裝個別補丁的信息

  g()版本中opatch作為一個標准工具在軟件安裝時自動安裝(安裝在

  $ORACLE_HOME/OPatch下)而對於需要從metalink下載opatch無論數據庫是哪一個版本系統中是

  否已經安裝opatch在使用之前應從metalink下載最新版本的opatch很遺憾由於系統實現的問題

  使用的opatch與之前版本()使用的opatch不兼容不能混用這一點必須注意

  opatch是使用perl編寫的腳本程序(其中也使用JAVA API)編程使用的perl版本是雖然在

  之前的版本中也可運行但應盡可能安裝或以上的版本的perl對於DBA來說一個好消息是如果安裝

  版軟件時保留了HTTP服務器則在$ORACLE_HOME/Apache下會自動安裝perlg會自動安裝配置perl和

  opatch

  opatch命令格式為

  opatch < command > [< command_options >] [ h[elp] ]

  命令有apply(安裝個別補丁)rollback(卸載個別補丁)lsinventory(對inventory進行列表)

  query(顯示某一個別補丁的詳細信息)version(顯示opatch版本信息)在opatch目錄下有用戶使

  用指南文件(Users_Guidetxt)其中有詳細的命令格式和使用示例讀者可以參考Opatch執行操作時

  除在屏幕輸出結果外還生成日志文件日志文件的路徑和文件名格式如下

  $ORACLE_HOME/patch_storage/< patch_id >/< action >< patch_id >_< mmddyyyy_hhmiss

  >log

  其中patch_id是Oracle技術支持部門為個別補丁分配的編號

  * 個別補丁安裝實例

  沿用安裝PSR實例中的環境在安裝PSR檢索metalink發現若干在其之上的個別補丁

  擇其中之一安裝

  個別補丁Patch 修復BUG這一BUG的主要問題是TNS LISTENER在注冊ONS(Oracle

  Notification Services)的同時如果創建子進程那麼LISTENER會掛起(HANGUP)

  安裝時首先從metalink下載補丁的壓縮文件p__LINUXzip將此文件解壓縮至某一目錄

  中解壓縮後這一補丁的所有文件都在子目錄目錄名就是個別補丁的補丁號opatch依據目錄

  名獲得信息所以一定不要重命名子目錄

  然後在終端窗口中執行cd命令移動到子目錄中執行以下命令

  $ $ORACLE_HOME/OPatch/opatch apply

  對inventory列表確認安裝操作

  $ $ORACLE_HOME/OPatch/opatch lsinventory

  執行卸載命令時也必須使子目錄成為當前目錄其中Rollback命令需要兩個參數id給出

  個別補丁號ph 給出個別補丁解壓縮後的路徑

  $ $ORACLE_HOME/OPatch/opatch rollback id ph /…/

  隨後再對inventory列表則會看到這一個別補丁已經被移去

  * 使用opatch顯示已安裝的版本信息

  不需要啟動數據庫執行加選項的對inventory的列表命令可以得到已安裝的軟件的各個組件的詳細版

  本信息

  $ $ORACLE_HOME/OPatch/opatch lsinventory detail

  安全補丁CPU

  一個CPU內包含了對多個安全漏洞的修復並且也包括相應必需的非安全漏洞的補丁CPU是累積型的

  只要安裝最新發布的CPU即可其中包括之前發布的所有CPU的內容事實上在CPU之前的安全漏洞修改除去

  個別例外也被包括在CPU中Oracle公司只對處於標准技術支持和延長支持期間的產品提供CPU更新對處於

  維持支持范圍的產品不提供新的CPU(對於以前的版本只對處於ECS和EMS期間的版本提供CPU更新

  一般對當前補丁發行版及前一個版本提供CPU但也有只限於當前補丁發行版的例外情形也就是說一般需

  要先安裝最新PSR後才可能安裝CPU由於是累積型的定期發布所以對於某一平台的某一版本如果兩次CPU

  發布期間沒有發現新的安全漏洞則新發布的CPU與前一版本完全相同

  在以下網址中可以找到CPU發布的信息但是很遺憾只有技術支持簽約用戶才可以從metalink下載補丁

  文件

  

  Oracle公司制定的CPU的發布日期大約在一月四月七月和十月的最接近的星期二

  對於每一個CPU附有相應的說明文檔(Critical Patch Update Note)其中介紹安裝過程和注意事項

  在安裝之前應認真閱讀此文檔同樣也存在文檔Oracle Critical Patch Update MM YYYY Known Issues

  for Oracle Database其中列出了說明文檔中沒有給出的新信息

  在安裝時首先下載壓縮文件p__LINUXzip解壓縮到與其它個別補丁相同的目錄下

  查其發行說明時發現要求opatch版本比現已安裝版本要高下載安裝指定版本opatch進入子目錄

  (這是此安全補丁的補丁號)執行apply命令

  $ $ORACLE_HOME/OPatch/opatch apply

  打開此次安裝生成的日志文件其中沒有錯誤信息出現執行inventory列表命令確認安裝

  $ $ORACLE_HOME/opatch lsinventory

  opatch作用

  opatch是用於維護個別補丁的有人稱其為interim path或是oneoff patch

  以解決TA ENQ AND US ENQ DEADLOCK DURING TRANSACTION RECOVERY IN RAC問題的interim patch 為例

  安裝及rollback的命令如下

  install:

  oracle>unzip p__HPzip

  oracle>cd

  oracle>opatch apply

  rollback:

  oracle>cd

  oracle>opatch rollback id

  查看

  如下命令可以看到已經安裝了哪些interim patch

  [oracle@mysql ~]$ /u/app/oracle/product//db_/OPatch/opatch lsinventory

  不斷的在opatch後面加h可以看到這個命令更加詳細的選項

  看一下lsinventory後面有哪些選項

  [oracle@mysql ~]$ /u/app/oracle/product//db_/OPatch/opatch lsinventory h

   環境介紹

  XXXX綜合管理信息系統主機放在XXXX數據庫平台硬件架構如下

  數據庫主機兩台IBMp (jcczxtjcczxt)安裝AIXL ML 通過IBM HACMP構成雙機熱備

  數據庫平台Oracle Server Enterprise Edition Version:

  故障描述

  號上午值班人員接到用戶反應應用出錯無法存盤前台出現的錯誤信息如下

  ORAIO error reading block from file (block #)

  ORA: data file : /oradata/smisdbf

  ORA: skgfqio :unable to quere I/O

  ORA: skgfdisp : I/O error

  IBM AIX RISC System/ Error : : I/O error

  此時數據庫管理員重新啟動數據庫前台用戶反應應用可能正常運行問題解決數據庫管理員在檢查主機日志時沒有發現任何硬件故障問題在檢查數據庫日志時也沒有任何錯誤提示用Oracle的實用程序DBV對數據庫文件進行檢查沒有發現壞塊

  日下午用戶又報同樣的錯誤此時DBA重新啟動數據庫和應用問題解決 :用戶又報同樣的DBA重新啟動數據庫和應用問題解決

  故障的定位

  第一步通過errpt檢查主機的日志確認主機沒有硬件問題磁盤沒有損壞第二步通過檢查數據庫的日志文件(alertSIDlog)也沒有相關的錯誤提示初步判定不是數據庫的問題第三步通過Oracle的實用程序DBV對數據庫文件進行檢查沒有發現壞塊此時可以確認不是硬件問題是軟件的問題第四步綜合管理信息系統是號上線一直都穩定運行沒有出現過類似的情況可以排除是應用程序的問題第五步通過上metalink網站查詢與ORA相關的信息發現有大量的資訊其中的故障描述與我們的情況一致由於在AIXL的操作系統上Oracle由於無法獲取正確的data block頭信息從而導致DBWn進程寫硬盤失敗Oracle數據庫從都有此問題是由於Oracle的BUG導致需要打一個Oracle的臨時補丁此時問題可以定位為oracle在AIXL平台上的BUG需要加載一個Oracle的臨時補丁patch

  Oracle術語解釋

  什麼叫interim patch ?

  Interim patch是一次性的補丁針對特定的情況下觸發的Bug沒有經過Oracle系統的認證Oracle會根據Bug的嚴重性和需要在下一次的patch set中包含此Interim patchInterim patch對環境和版本有特定的要求即不同操作系統平台和數據庫版本的會有不同的Interim patch如Interim patch

  什麼叫Opatch?

  Opatch是oracle支持的Oracle臨時補丁的安裝實用程序是針對Oracle數據庫第二版後安裝臨時補丁Opatch是一個基於Perl的程序

  如何安裝Opatch?

  從metalink上選擇補丁程序選擇簡單搜索輸入patch號選擇相應的操作系統平台查詢結果會顯示所有可用版本的optach下載版本號就行將下的壓縮文件上傳到數據庫主機將壓縮文件復制到$ORACLE_HOME目錄下用unzip工具解壓此壓縮文件具體命令如下

  #cp /tmp/p__AIXLzip $ORACLE_HOME

  #chown oracle:dba $ORACLE_HOME/p__AIXLzip

  以oracle用戶解壓此文件

  $ cd $ORACLE_HOME

  $unzip p__AIXLzip

  解決方法

  )從metalink上選擇補丁程序選擇簡單搜索輸入patch號選擇平台為IBM AIX Based System(bit)下載Oracle對應的patch大小為K

  )將patch 上傳到數據庫主機(host)

  )在jcczxt主機上加載此patch

  因綜合管理信息系統采用雙機熱備方式所以備機(host)沒有數據庫應用所以我們可以在不停下數據庫的情況下加載patch 詳細步驟如上

  以oracle數據庫用戶執行下面的命令

  $cp /tmp/p__AIXLzip /oracle/patch

  $cd /oracle/patch

  $unzip p__AIXLzip

  $cd

  $$ORACLE_HOME/Opatch/opatch install

  提示要求輸入metalink的帳號和密碼可能隨便輸入

  提示 Please shut down Oracle instances running out of this ORACLE_HOME輸入Y

  此時oracle會開始安裝patch因為要重新鏈接lib所以要花幾分鐘時間在安裝完畢後會出現OPatch succeeded提示

  )將數據庫切換到jcczxt

  )在host主機上采用相同的方法上加載patch


From:http://tw.wingwit.com/Article/program/Oracle/201311/18781.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.