LoginSignup
1
0

More than 3 years have passed since last update.

OPatchエラーの対処法: OUI-67073 Util Sessionが失敗しました: Prerequisite check"CheckActiveFilesAndExecutables" failed.

Last updated at Posted at 2020-05-07

Oracle DB 18c にOPatchを適用しようとしたところ、以下エラーが出現した際の対処法

Prerequisite check "CheckActiveFilesAndExecutables" failed.
The details are:

Following active executables are not used by opatch process :
/home/oracle/dbhome/product/bin/oracle

Following active executables are used by opatch process :

OUI-67073:UtilSessionが失敗しました: Prerequisite check CheckActiveFilesAndExecutables" failed.
Log file location: /home/oracle/dbhome/product/cfgtoollogs/opatch/opatch2020-05-07_21-11-00午後_1.log

環境

Oracle Linux 6.10
Oracle Database 18c
適用したいパッチ: p30872794_180000_Linux-x86-64

結果

opatchを利用して、patchをapplyする際は、ORACLE_HOMEを利用するプロセスはすべて終了している必要がある。もし、他のプロセスがORACLE_HOMEを利用している場合は73エラーがでてしまう。
そのため、ORACLE_HOMEを利用しているプロセスをkillすることで解決ができる。

対処方法

まず初めに使用しているプロセスを確認した

$ ps -ef | grep _orcl
oracle   10127   1 0 20:19 ?    00:00:00 ora_w004_orcl
oracle   9794   1 0 20:19 ?    00:00:00 ora_pmon_orcl
...

pmonなどのプロセスがずっと動いていることを確認。
合計で50個くらいのプロセスがあった。
それらをpid指定してそれぞれkillするのはとても時間と労力がかかるため、
まとめてkillできるよう以下を実行した。

$ for oud in $(ps -ef | awk '/_orcl/ {print $2}'); do kill -9 $pid; done

もう一度プロセスを確認

$ ps -ef | grep _orcl

orclプロセスはすべてkillできたようだ。
そこでもう一度patch applyをしてみたところ、問題なく適用することができた!

(補足)以下のようなエラーが出た場合

Following executables are active :
/oracle/app/oracle/product/12.1.0/dbtest/lib/libsqlplus.so
UtilSession failed: Prerequisite check "CheckActiveFilesAndExecutables" failed.Prerequisite check "CheckActiveFilesAndExecutables" failed.
Log file location: /oracle/app/oracle/product/12.1.0/dbtest/cfgtoollogs/opatch/opatch2017-02-16_15-30-33PM_1.log

OPatch failed with error code 73

エラーログに記載されているactiveになってしまっている
/oracle/app/oracle/product/12.1.0/dbtest/lib/libsqlplus.so
のプロセスをkillする必要がある。
以下コマンドでPIDを特定

$ /sbin/fuser /oracle/app/oracle/product/12.1.0/dbtest/lib/libsqlplus.so
/oracle/app/oracle/product/12.1.0/dbtest/lib/libclntsh.so.12.1: 29275m

$ ps -ef | grep 29275
oracle 29275 29255 0 15:02:33 pts/2 0:00 sqlplus / as sysdba
oracle 13802 27442 0 15:33:16 pts/1 0:00 grep 29275

プロセスをkillする(複数ある場合はすべてkillする必要あり)

$ kill -9 29275

これでもう一度patch applyをしてみると、解決できるはずだ。

参考サイト
https://dbaclass.com/article/prerequisite-check-checkactivefilesandexecutables-failed/
https://ittutorial.org/opatch-failed-with-error-code-73-prerequisite-check-checkactivefilesandexecutables-failed-during-opatch-apply-30698487/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0