打補丁時ORACLE無法找到已經安裝元件的解決

westzq1984發表於2009-10-25

客戶的機器打了10204的補丁,告訴我sqlplus 進去還是10201
讓客戶發了日誌過來,發現一個和詭異的地方:
 Summary
 Global Settings
     Source: /setup/orapatch/Disk1/stage/products.xml
     Oracle Home: /oracle/product/10.2.0/db_1 (OUIHome1)
 Product Languages
 Space Requirements
    /oracle/ Required 35MB : Available 12.38GB
    /tmp/ Required 26MB (only as temporary space) : Available 3.15GB
 New Installations (1 products)
    Oracle Configuration Manager 10.2.7.1.0

竟然只打了1個元件的補丁,再次讓客戶確認補丁版本,一切都是OK的,操

遠端支援了下,讓客戶使用opatch檢視安裝的元件
 [WMSp655B:oracle:/oracle/product/10.2.0 _1/OPatch]ventory -detail          <
 Invoking OPatch 10.2.0.1.0
 
 Oracle interim Patch Installer version 10.2.0.1.0
 Copyright (c) 2005, Oracle Corporation.  All rights reserved..
 
 
 Oracle Home       : /oracle/product/10.2.0 _1
 Central Inventory : /oracle/product/10.2.0 _1/inventory
   from           : /oracle/product/10.2.0 _1/oraInst.loc
 OPatch version    : 10.2.0.1.0
 OUI version       : 10.2.0.1.0
 OUI location      : /oracle/product/10.2.0 _1/oui
 Log file location : /oracle/product/10.2.0 _1/cfgtoollogs/opatch/opatch-00_Oct
 _25_12-00-17-GMT+08_Sun.log
 
 Lsinventory Output file location : /oracle/product/10.2.0 _1/cfgtoollogs/opatc
 h/lsinv/lsinventory-00_Oct_25_12-00-17-GMT+08_Sun.txt
 
 --------------------------------------------------------------------------------
 Installed Top-level Products (0):
 
 There are 0 products installed in this Oracle Home.

顯示安裝了0個元件。。。。暈

接著讓客戶做了個truss來研究
在truss的輸出中搜尋 open ,因為我記得ORACLE確認安裝了那些元件是讀取一個配置檔案,但是一下記不起是那個檔案了

看著看著,覺得這個配置檔案很臉熟,/oracle/product/10.2.0/db_1/inventory/ContentsXML/comps.xml

讓客戶傳過來看看,發現這個檔案基本沒東西
 
 <!-- Copyright (c) 2005 Oracle Corporation. All rights Reserved --&gt
 <!-- Do not modify the contents of this file by hand. --&gt
 
 
 

 
 

 
 

 


對應著,檢視了下我本機的comps.xml檔案,發現有很多東西,都是記錄著安裝的元件。
於是嘗試用客戶的這個comps.xml替換我本機的comps.xml,然後執行opatch
 [oracle10@WESTZQ OPatch]$ ./opatch lsinventory -detail
 Invoking OPatch 10.2.0.4.2
 
 Oracle Interim Patch Installer version 10.2.0.4.2
 Copyright (c) 2007, Oracle Corporation.  All rights reserved.
 
 
 Oracle Home       : /u01/oracle10/app/oracle/product/10.2.0/db_1
 Central Inventory : /u01/oracle9/app/oracle/oraInventory
    from           : /etc/oraInst.loc
 OPatch version    : 10.2.0.4.2
 OUI version       : 10.2.0.4.0
 OUI location      : /u01/oracle10/app/oracle/product/10.2.0/db_1/oui
 Log file location : /u01/oracle10/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch2009-10-25_12-26-10PM.log
 
 Lsinventory Output file location : /u01/oracle10/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2009-10-25_12-26-10PM.txt
 
 --------------------------------------------------------------------------------
 Installed Products (0):
 
 There are 0 products installed in this Oracle Home.
 
 
 There are no Interim patches installed in this Oracle Home.
 
 
 --------------------------------------------------------------------------------
 
 OPatch succeeded.

操,看來果然是這個檔案的問題
讓客戶嘗試刪除該檔案,看ORACLE能不能重新查詢

果然,刪除該檔案後,ORACLE會重新去掃描安裝的元件。
跟了下補丁程式,也要讀取該檔案

問題解決

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8242091/viewspace-617368/,如需轉載,請註明出處,否則將追究法律責任。

相關文章