千家信息网

【PSU】Oracle打PSU及卸载PSU(单实例)

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,一、 规划数据库版本: Oracle 11.2.0.4 单实例操作系统: Redhat 6.5 64-bitPSU: p28204707_112040_Linux-x86-64.zipOPatch:
千家信息网最后更新 2026年11月01日【PSU】Oracle打PSU及卸载PSU(单实例)

一、 规划

数据库版本: Oracle 11.2.0.4 单实例

操作系统: Redhat 6.5 64-bit

PSU: p28204707_112040_Linux-x86-64.zip

OPatch: p6880880_112000_Linux-x86-64.zip

二、 思路清晰

1. 打PSU

step1: 打 PSU 前环境检查

step2: 打 PSU 前全库备份

step3: 上传 PSU 包

step4: 阅读 README.html

step5: 如果有必要,更新 Opatch

step6: 软件打 PSU

step7: database 打 PSU

step8: 打 PSU 后检查

2. 卸载PSU

step1: 卸载软件 PSU

step2: 卸载 database PSU

step3: 卸载 PSU 后检查

三、 注意事项

1. 阅读Readme 文档

每个CPU/PSU 都有一个 Readme 文档,关于该 CPU/PSU 的信息都在 Readme 文档中,再打 CPU/PSU 之前一定要仔细阅读。

2. Opatch

打PSU 需要用到 Opatch 工具。 Opatch 的版本必须符合补丁包 readme 文档中版本要求,否则需要升级 Opatch 版本。

查看opatch 版本

$ cd $ORACLE_HOME/OPatch

$ ./opatch version

四、 打PSU 前准备工作

1. 检查instance 状态

SQL> select instance_name,status from v$instance;

INSTANCE_NAME STATUS

---------------- ------------

orcl OPEN

2. 检查数据库版本

SQL> select * from v$version;

BANNER

-----------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

PL/SQL Release 11.2.0.4.0 - Production

CORE 11.2.0.4.0 Production

TNS for Linux: Version 11.2.0.4.0 - Production

NLSRTL Version 11.2.0.4.0 - Production

3. 查看PSU 情况

SQL> set linesize 200

SQL> col comments for a30

SQL> select ACTION_TIME, ACTION, COMMENTS from sys.DBA_REGISTRY_HISTORY;

ACTION_TIME ACTION COMMENTS

------------------------------- --------------- -----------------

24-AUG-13 12.03.45.119862 PM APPLY Patchset 11.2.0.2.0

30-JUL-18 10.04.26.133727 AM APPLY Patchset 11.2.0.2.0

4. 查看无效对象

SQL> select count(*) from dba_objects where status<>'VALID';

SQL> select object_name,object_type,owner,status from dba_objects where status<>'VALID';

5. 确定定当前存在的one-off 补丁是否和 PSU 冲突

$ unzip p28204707_112040_Linux-x86-64.zip

$ cd 28204707

$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

6. 数据库备份

建议在打补丁之前对数据库进行RMAN 全库备份,避免打补丁出现意外,可以从备份中进行恢复。

五、 打补丁

1. 上传补丁包,解压

$ unzip p28204707_112040_Linux-x86-64.zip

2. 查看当前OPatch 版本

$ cd /u01/app/oracle/product/11.2.0/db_1/OPatch/

$ ./opatch version

OPatch Version: 11.2.0.3.4

3. 更新Opatch

如果发现Opatch 版本低,下载最新的 Opatch ,覆盖原来的 Opatch

$ ls

p6880880_112000_Linux-x86-64.zip

$ mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_bak20200804

$ cp -r OPatch $ORACLE_HOME/

$ cd /u01/app/oracle/product/11.2.0/db_1/OPatch

$ ./opatch version

OPatch Version: 11.2.0.3.18

4. 打PSU

1) 关闭Instance 和 listener

SQL> shutdown immediate;

SQL> exit

$ lsnrctl stop

2) 查看当前PSU 版本

$ $ORACLE_HOME/OPatch/opatch lsinv

3) 安装PSU (软件 PSU )

$ pwd

/home/oracle/28204707

$ $ORACLE_HOME/OPatch/opatch apply

最后可能会有warnings ,可以忽略。如果是 error 就不能忽略。

4) 安装PSU ( database PSU )

$ cd $ORACLE_HOME/rdbms/admin

$ sqlplus /nolog

SQL> CONNECT / AS SYSDBA

SQL> STARTUP

SQL> @catbundle.sql psu apply

SQL> QUIT

5) 如果在之前的PSU 中有 OJVM PSU ,那么我们在执行完 catbundle.sql 后 可以看到一些无效的JAVA 类,在这种情况下,运行以下命令

$ cd $ORACLE_HOME/rdbms/admin

$ sqlplus /nolog

SQL> CONNECT / AS SYSDBA

SQL> @utlrp.sql

6) 检查补丁日志看看有没有报错

$cd /u01/app/oracle/cfgtoollogs/catbundle

catbundle_PSU_ _APPLY_ .log

catbundle_PSU_ _GENERATE_< TIMESTAMP> .log

7) 检查

$ cd /u01/app/oracle/product/11.2.0/db_1/OPatch

$ ./opatch lsinv

Patch 28204707: applied on Tue Aug 04 13:15:43 EDT 2020

Unique Patch ID: 22491169

Patch description: "Database Patch Set Update : 11.2.0.4.181016 (28204707) "

Created on 19 Sep 2018, 03:24:06 hrs PST8PDT

SQL> select COMP_ID,COMP_NAME,VERSION,STATUS from DBA_REGISTRY;

SQL> select ACTION_TIME, ACTION, COMMENTS from DBA_REGISTRY_HISTORY;

SQL> select owner,object_name,object_type,status from dba_objects where status<>'VALID';

SQL> select count(*) from dba_objects where status<>'VALID';

六、 卸载PSU

1. 卸载软件PSU

1) 检查文件是否存在

$ORACLE_HOME/rdbms/admin/catbundle_PSU__ROLLBACK.sql

2) 关闭instance 和监听

SQL> shutdown immediate;

SQL> exit

$ lsnrctl stop

3) 执行卸载命令

$ cd $ORACLE_HOME/OPatch

$ ./ opatch rollback -id 28204707

最后可能会有warnings ,可以忽略。如果是 error 就不能忽略。

2. 卸载database PSU

$ cd $ORACLE_HOME/rdbms/admin

$ sqlplus /nolog

SQL> CONNECT / AS SYSDBA

SQL> STARTUP

SQL> @catbundle_PSU_ _ROLLBACK.sql

SQL> QUIT

3. 编译无效对象

如果在之前的PSU 中有 OJVM PSU ,那么我们在执行完 catbundle.sql 后 可以看到一些无效的JAVA 类,在这种情况下,运行以下命令

$ cd $ORACLE_HOME/rdbms/admin

$ sqlplus /nolog

SQL> CONNECT / AS SYSDBA

SQL> @utlrp.sql

4. 检查日志

$ cd /u01/app/oracle/cfgtoollogs/catbundle

catbundle_PSU__ROLLBACK_.log

---- end ----

版本 检查 补丁 备份 数据 数据库 文档 软件 命令 情况 对象 日志 更新 运行 实例 必要 意外 操作系统 事项 信息 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 北京路客互联网科技有限公司 互联网科技公司的优势 互联网医疗科技 美国互联网科技 为想互联网科技 互联网科技公司官网 小马过河互联网科技 广州善班互联网科技 互联网科技宣传片 左右互联网络科技 安控科技rtu产品工业互联网 阿里巴巴算科技企业还是互联网 阿大互联网科技有限公司 杭州壁岐互联网科技有限公司 米聚互联网科技南京有限公司排面 保险科技服务互联网营销体系 元气玛特互联网科技公司是外包吗 产业互联网科技服务公司 上海万顺科技互联网有限公司招聘 山东亿川互联网科技有限责任公司 互联网科技公司起名 北京禾田雨橡互联网科技 万达互联网科技 上海电发互联网科技有限公司 中盈科技互联网信息有限公司 米聚互联网科技南京有限公司排面 容联科技互联网电商 互联网科技品牌 陕西彩京云互联网科技有限公司 宁波允成互联网科技有限公司
0