WindowsServer2008R2でOracle11gR2にパッチを当てた際のメモ。
[Path_to_OPatch]/opatch -version
[Path_to_OPatch]/opatch lsinventory -detail
で現在のバージョン状況を確認する。
サービス一覧から、Oracle○○という名称のサービスをすべて停止する。
[Path_to_OPatch]/[PatchID]にパッチの中身を配置する。
set ORACLE_HOME=[Path_to_ORACLE_HOME]
cd [Path_to_OPatch]/[PatchID]
[Path_to_OPatch]/opatch apply
でパッチ適用が始まるかとおもいきや、
Running prerequisite checks...
Prerequisite check "CheckActiveFilesAndExecutables" failed.
The details are:
Following files are active :
C:\app\administrator\product\11.2.0\dbhome_1\bin\oci.dll
UtilSession failed: Prerequisite check "CheckActiveFilesAndExecutables" failed.
…
OPatch failed with error code = 73
上記のようなエラーが発生。え、サービス全部止めたんですが・・・?
調べてみると、msdtc(Microsoft Distributed Transaction Coordinator service)がoci.dllをつかんでいたらしい。サービス一覧にmsdtcがあったので、それを停止。
これでoci.dllがフリーになり、無事パッチを適用できました。
参考