在windows 打補丁遇到CODE=41的錯誤

kewin發表於2012-07-31
在windows 2008 R2, Oracle 11.2.0.3 環境,打最新的patch,
遇到錯誤:
following files are active :
d:\oracle\product\11.2.0\dbhome_1\bin\oracommon11.dll
d:\oracle\product\11.2.0\dbhome_1\bin\oraclient11.dll
d:\oracle\product\11.2.0\dbhome_1\bin\orageneric11.dll
d:\oracle\product\11.2.0\dbhome_1\bin\orapls11.dll
d:\oracle\product\11.2.0\dbhome_1\bin\oran11.dll
d:\oracle\product\11.2.0\dbhome_1\bin\oraxml11.dll
d:\oracle\product\11.2.0\dbhome_1\bin\oci.dll
d:\oracle\product\11.2.0\dbhome_1\grid\oui\jlib\srvm.jar
d:\oracle\product\11.2.0\dbhome_1\grid\oui\jlib\srvm.jar
d:\oracle\product\11.2.0\dbhome_1\grid\oui\jlib\srvm.jar
d:\oracle\product\11.2.0\dbhome_1\grid\oui\jlib\srvm.jar
d:\oracle\product\11.2.0\dbhome_1\grid\oui\jlib\srvm.jar
d:\oracle\product\11.2.0\dbhome_1\grid\oui\jlib\srvm.jar
d:\oracle\product\11.2.0\dbhome_1\grid\oui\jlib\srvm.jar
d:\oracle\product\11.2.0\dbhome_1\grid\oui\jlib\srvm.jar
d:\oracle\product\11.2.0\dbhome_1\bin\orahasgen11.dll
d:\oracle\product\11.2.0\dbhome_1\bin\orahasgen11.dll

這裡有兩個問題:
1) 
使用了Process Explorer 檢視發現使用oci.dll檔案的程式,用taskkill /f /pid刪除程式,用Process Explorer檢視沒有檔案被佔用,安裝READ ME的指導安裝patch,在安裝過程提示,有某些檔案不能COPY, 補丁失敗。

再次用Process Explorer檢查,發現又有程式在使用該檔案,程式名稱為 WMIPRVSE ,該程式為守護程式,被刪掉後,windows會自動派生該程式。只能去到SERICE 管理介面把 Windows Management Instrumentation 程式該PAUSE,重新安裝補丁。
2)SRVM.JAR檔案是由於BUG的問題 ,Bug 13902704: SRVM.JAR IS LOCKED BY OPATCH 11.2.0.3.
按照這個方案解決就可以:
move %ORACLE_HOME%\OPatch\jlib\oracle.opatch.classpath.jar %ORACLE_HOME%\OPatch\jlib\oracle.opatch.classpath1.jar
opatch apply
move %ORACLE_HOME%\OPatch\jlib\oracle.opatch.classpath1.jar %ORACLE_HOME%\OPatch\jlib\oracle.opatch.classpath.jar

到此,CODE=41的問題徹底解決。
別忘記要重啟Windows Management Instrumentation 的程式。

Kevin Zou





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

相關文章