Oracle 补丁安装 opatchauto 报错处理

1、现象:

报错日志显示有文件被使用会导致 opatchauto 执行失败:

[Dec 26, 2023 4:17:26 PM] [INFO]    Following active files/executables/libs are used by ORACLE_HOME :/home/db/grid/product/19.3.0


                                    /home/db/grid/product/19.3.0/lib/libclntsh.so.19.1
                                    /home/db/grid/product/19.3.0/lib/libsqlplus.so
[Dec 26, 2023 4:17:26 PM] [INFO]    Prerequisite check "CheckActiveFilesAndExecutables" failed.
                                    The details are:


                                    Following active files/executables/libs are used by ORACLE_HOME :/home/db/grid/product/19.3.0


                                    /home/db/grid/product/19.3.0/lib/libclntsh.so.19.1
                                    /home/db/grid/product/19.3.0/lib/libsqlplus.so
[Dec 26, 2023 4:17:26 PM] [SEVERE]  OUI-67073:UtilSession failed: Prerequisite check "CheckActiveFilesAndExecutables" failed.

2、处理:

通过 lsof 定位使用该文件的进程及其 PID,杀掉该进程后 resume 继续补丁安装进程:opatchauto resume:

[root@hl10oracldb7001 ~]# fuser /home/db/grid/product/19.3.0/lib/libclntsh.so.19.1
/home/db/grid/product/19.3.0/lib/libclntsh.so.19.1: 37358m
[root@hl10oracldb7001 ~]# lsof /home/db/grid/product/19.3.0/lib/libclntsh.so.19.1
COMMAND   PID USER  FD   TYPE DEVICE SIZE/OFF      NODE NAME
sqlplus 37358 grid mem    REG  253,8 79889800 202759624 /home/db/grid/product/19.3.0/lib/libclntsh.so.19.1
[root@hl10oracldb7001 ~]# kill -9 37358
[root@hl10oracldb7001 ~]#

备注:lsof 是 List Open File 的缩写, 主要用来获取被进程打开文件的信息。

使用 -u 选项可以列出指定用户已经打开的文件,该选项后面可以接多个用户名,每个用户名之间用空格隔开,表示列出所有指定用户已打开的所有文件

lsof -u oracle|more

如果要排除指定用户已经打开的文件,可以在用户名前加 ^ 符号:

lsof -u ^oracle|more 

示例:

session 1:操作杀进程的会话

root@ora19c:/root>lsof /oracle/app/oracle/product/19.3.0/db_1/lib/libclntsh.so.19.1
COMMAND  PID   USER  FD   TYPE DEVICE SIZE/OFF     NODE NAME
tnslsnr 1202 oracle mem    REG  253,0 81925256 50385516 /oracle/app/oracle/product/19.3.0/db_1/lib/libclntsh.so.19.1
sqlplus 7151 oracle mem    REG  253,0 81925256 50385516 /oracle/app/oracle/product/19.3.0/db_1/lib/libclntsh.so.19.1
root@ora19c:/root>kill -9 7151
root@ora19c:/root>

session 2:被杀进程的会话

oracle@ora19c:/home/oracle>sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Dec 27 10:32:29 2023
Version 19.14.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.14.0.0.0

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB01                          READ WRITE NO
SQL> Killed
oracle@ora19c:/home/oracle>
 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值