欢迎光临
我们一直在努力

【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_

<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 —-

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。