この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
初めに
WindowsServer 2019上のOracleClient 19.3にパッチ適用時、dllプロセス占有中のため、事前確認の段階で失敗した事象がありました。
マニュアルに「ここに注意してください」~とかの関連情報は記載していないから、意外と落とし穴にはまりやすいです。
Windowsに詳しい方はすぐ解決策まで至るかもしれないが、私みたいなWindows初心者のために今回の事象~解決策をメモしておきます。
内容
■エラー情報
C:\> opatch apply
[INFO] Following active files are used by opatch process :
C:\app\client\oracle\product\19.0.0\client_1\bin\[XXXX].dll
......
[INFO] Prerequisite check "CheckActiveFilesAndExecutables" failed.
■事象原因
マニュアルには記載していないが、OracleClientにパッチ適用時、Client使用するプロセスを停止する必要があります。
今回エラー発生した原因は、Client使用するプロセスが停止していないとのことです。
■解決方法
1.起動しているサービス或いはプロセスを特定する
コマンドプロンプトを起動し、エラーに出ているdllプロセスのPIDを確認する。
tasklist.exe /m [XXXX].dll
2.該当のPIDにはまるサービス/プロセスを停止する
「タスクマネージャー」ー「詳細」/「サービス」
該当の「プロセス」/「サービス」を右クリックして「停止」/「タスク終了」
3.再度「opatch apply」でパッチ適用する
最後に
WindowsServer上のOracleClientに対してパッチ当てる経験があるエンジニアが多いかもしれないが、自分は初めてです。linuxならすぐプロセスまで特定して、killすればよい作業ですが、Windowsに向けて正直でいうと、時間をかけて調べました。この記事は、私みたいなWindows初心者に、少しでもお役に立てれば幸いです。