返回顶部
首页 > 资讯 > 数据库 >【PSU】Oracle打PSU及卸载PSU(单实例)
  • 525
分享到

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

2024-04-02 19:04:59 525人浏览 薄情痞子
摘要

一、  规划 数据库版本: oracle 11.2.0.4 单实例 操作系统: Redhat 6.5 64-bit PSU: p28204707_112040_linux-x

一、  规划

数据库版本: 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_ <database SID> _APPLY_ <TIMESTAMP> .log

catbundle_PSU_ <database SID> _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_<SID>_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_ <SID> _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_<database SID>_ROLLBACK_<TIMESTAMP>.log

---- end ----

您可能感兴趣的文档:

--结束END--

本文标题: 【PSU】Oracle打PSU及卸载PSU(单实例)

本文链接: https://lsjlt.com/news/47090.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作