Oracle 19c单库环境PU补丁安装

Oracle 19c单库环境PU补丁安装

本文以linux8、Oracle 19c版本、RU补丁包安装为例,其它linux版本、oracle 19c版本、其它psu补丁包安装步骤都基本类似
本文具体以19.30 RU补丁包为例:Patch 38632161 - Database Release Update 19.30.0.0.260120
本文中Opatch补丁包和PU补丁包等都上传至/u01/psu目录下(psu目录命名是以前oracle版本遗留下来的习惯)‘
本文中的ORACLE_HOME目录为/u01/app/oracle/product/19.3.0/db_1
本文中RU补丁集和OJVM补丁集同时一起安装,生产环境也建议如此
特别注意,安装RU这类大型补丁集需要空间(RU补丁包的保存、解压、安装过程),建议至少20G以上(RAC集群环境建议50G以上)

一、步骤简述

A、已经安装Oracle数据库的服务器上,按以下步骤完成PSU补丁安装
(1)安装前准备
1、考虑主机上是否有定时任务(例如备份任务这些,建议期间停止这些定时任务)
2、oracle数据库中的无效对象,尽量提前处理,因为数据库中的数据字典升级以后,需要重新编译所有无效的对象,如果库中存在大量无效对象,会影响整个补丁安装过程
3、提前快照一份无效对象清单,RU安装前后进行比对,确保整个RU升级过程,没有产生新的无效对象
4、数据库组件检查,用于安装前后对比
5、临时关闭数据库中的job
6、关闭数据库(最好immediate干净方式),先关闭监听程序
7、可选项,如果是非常重要的核心数据库,建议重新打开数据库,开启数据库闪回功能,建立闪回还原点,然后再次immediate方式关闭数据库。该步骤主要是预防,如果数据库字典升级出现异常,可以快速闪回至还原点,快速将数据库还原至升级前的状态。
8、备份Oracle数据库软件的ORACLE_HOME目录
9、opatch 版本准备,符合要求的opatch版本来安装psu补丁

(2)正式安装
1、环境变量设置
2、上传和解压RU补丁包
3、补丁冲突检查
4、RU补丁安装
5、RU补丁安装总结
6、安装RU补丁后,更新升级数据字典
7、检查和验证RU安装情况
8、可选项,UPGRADE CATALOG(如果使用了RMAN恢复管理器,则需要,否认不需要执行这一步骤)
9、重启监听
10、重启数据库,开启数据库中临时关闭的job任务,开启操作系统的定时任务,开启业务进行功能性简单测试
11、可选项,回滚总结(如果安装失败或者其它原因,需要回滚,按如下步骤)
12、补丁错误总结



B、刚新建Oracle数据库的服务器上,建议按以下步骤完成PSU补丁安装
方法一、
1、安装数据库软件
2、安装RU和OJVM补丁包(安装数据库前将补丁安装,后续不需要运行数据字典升级脚本了)
3、安装数据库
方法二、
RU安装新方式,安装database同时应用RU(新安装建议)
如果安装database 19c时已经准备好RU补丁,可以在安装时指定参数(applyRU 和 applyOneOffs),即安装DB软件时同时指定RU。
./runInstaller -applyRU /u01/psu/38632161 -applyOneOffs /u01/psu/38523609

二、已经安装Oracle数据库的服务器上,PU补丁安装

备注:oracle数据库已经创建,而非仅仅只是安装Oracle数据库软件

(1)安装前准备
1、检查root用户和oracle用户下有没有数据库相关的定时任务,安装RU之前提前注释掉

su - root
crontab -l
su - oracle
crontab -l

2、检查数据库中的失效对象

su - oracle
sqlplus "/as sysdba"
set linesize 200 pagesize 999
select CON_ID,owner,object_name,object_id,data_object_id,object_type,status 
from cdb_objects where status<> 'VALID';

3、快一份无效对象清单

su - oracle
sqlplus "/as sysdba"
drop table sys.t_invilid_objects ;
create table  sys.t_invilid_objects 
as 
select CON_ID,owner,object_name,object_id,data_object_id,object_type,status 
from cdb_objects where status<> 'VALID';

4、数据库组件检查

su - oracle
sqlplus "/as sysdba"
set linesize 200 pagesize 999
col ACTION_TIME format a30
col time format a20
col ACTION format a10
col NAMESPACE format a10
col VERSION format a10
col BUNDLE_SERIES format a10
col ID format a5
col comments format a30
col comp_name format a35
col object_name format a30
col owner format a20
select to_char(ACTION_TIME,'yyyymmdd hh24:mi:ss') time,ACTION,NAMESPACE,VERSION ,ID, COMMENTS,BUNDLE_SERIES
 from dba_registry_history;
select comp_id,comp_name,status from dba_registry;


set lines 200
col STATUS for a12
col ACTION for a10
col DESCRIPTION for a55
col ACTION_TIME for a32
select patch_id,action,status,action_time,description from dba_registry_sqlpatch;

5、临时关闭数据库中的job

alter system set job_queue_processes =0;
备注:该参数修改为0,表示oracle后台关闭job任务执行进程,因此所有job都会暂停执行

6、关闭数据库(最好immediate干净方式)

补充,这一步骤先关闭监听
su - oracle
lsnrctl stop

关闭数据库的方式,可以参考我的文章《Oracle单库环境下计划内启停数据库的步骤》
19c版本,先关闭所有的pdb,再关闭整个数据库,加快immediate干净方式关闭的速度和成功几率。

7、可选项,后续单独编写Oracle数据库闪回管理知识文章

8、备份Oracle数据库软件的ORACLE_HOME目录

方法一:
tar命令用root用户,经过验证,文件属性都是保持原有的
tar命令 
cd /u01/app/oracle/product/19.3.0/
tar  -czvf db_1.tar.zip   ./db_1

解压命令
cd /u01/app/oracle/product/19.3.0/
tar  -xzvf db_1.tar.zip  .

备注:操作系统oracle用户执行tar命令,可能报错
tar  -cf db_1.tar   ./db_1      
tar: ./db_1/bin/nmb: Cannot open: Permission denied
tar: ./db_1/bin/nmhs: Cannot open: Permission denied
tar: ./db_1/bin/nmo: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors


方法二:
cp命令,同样使用root命令
cp -a选项表示递归cp和保留文件原始属性(时间戳、文件权限、所有权)
cp -a相当于cp -r -p -d 其中r表示递归备份,-p表示保留文件属性,-d表示原为软连接复制后也一样
cd /u01/app/oracle/product/19.3.0/
cp -a db_1/  db_1_$(date +%F)/

还原命令如下:
mv  db_1/  db_1_old/
mv db_1_$(date +%F)/  db_1

9、opatch 版本准备,符合要求的opatch版本来安装psu补丁

提前上传符合的Opatch版本,存放至/u01/psu目录
su - oracle
mv $ORACLE_HOME/OPatch  $ORACLE_HOME/OPatch_$(date +%F)
ls -ld $ORACLE_HOME/OPatch*

cd /u01/psu
unzip -q p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
ls -ld $ORACLE_HOME/OPatch*

验证
$ORACLE_HOME/OPatch/opatch version

(2)正式安装psu

前提说明

本文以19.30 RU补丁包为例:Patch 38632161 - Database Release Update 19.30.0.0.260120

1、环境变量设置

su - oracle
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/usr/ccs/bin
export PATH=$ORACLE_HOME/perl/bin:$PATH
export PERL5LIB=$ORACLE_HOME/perl/lib
备注:主要将OPatch目录加入可执行环境变量中,PERL5LIB变量设置用于规避OJVM补丁安装过程的一个错误

2、解压psu补丁包

ls -ltr /u01/psu
-rw-r--r-- 1 oracle oinstall  129508957 Mar 16 17:45 p38523609_190000_Linux-x86-64.zip
-rw-r--r-- 1 oracle oinstall 2279159986 Mar 17 10:49 p38632161_190000_Linux-x86-64.zip
-rw-r--r-- 1 oracle oinstall   72896144 Mar 17 09:29 p6880880_190000_Linux-x86-64.zip

cd /u01/psu
unzip -q p38632161_190000_Linux-x86-64.zip
unzip -q p38523609_190000_Linux-x86-64.zip   //建议OJVM补丁补丁集包一起安装

3、补丁冲突检查

ru补丁冲突检测:
cd /u01/psu/38632161
opatch prereq CheckConflictAgainstOHWithDetail -ph ./

ojvm补丁冲突检测:
cd /u01/psu/38523609
opatch prereq CheckConflictAgainstOHWithDetail -ph ./

4、补丁安装

1)RU补丁安装
cd /u01/psu/38632161
opatch apply

安装过程中,会提示二个交互式回答,都输入y即可
y
y

2)OJVM补丁集包安装
cd /u01/psu/38523609
opatch apply
安装过程中,会提示二个交互式回答,都输入y即可
y
y

备注:OJVM补丁集包安装可能出现如下错误:
Applying interim patch '38523609' to OH '/u01/app/oracle/product/19.3.0/db_1'
Patching component oracle.javavm.server, 19.0.0.0.0...
Patching component oracle.javavm.server.core, 19.0.0.0.0...
Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...
Patching component oracle.rdbms, 19.0.0.0.0...
Patching component oracle.javavm.client, 19.0.0.0.0...
Make failed to invoke "/usr/bin/make -f ins_rdbms.mk javavm_refresh ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1 OPATCH_SESSION=apply"....'make: perl: Command not found
make: *** [ins_rdbms.mk:573: javavm_refresh] Error 127
处理办法:
设置PATH和PERL5LIB环境变量,然后重新opatch apply.
export PATH=$ORACLE_HOME/perl/bin:$PATH
export PERL5LIB=$ORACLE_HOME/perl/lib


安装完毕验证
opatch lsinv
或者
opatch lspatches

输出显示类似如下:
[oracle@host01 38632161]$ opatch lsinv
Oracle Interim Patch Installer version 12.2.0.1.49
Oracle Home       : /u01/app/oracle/product/19.3.0/db_1
......
Installed Top-level Products (1): 
Oracle Database 19c                                                  19.0.0.0.0
There are 1 products installed in this Oracle Home.

Interim patches (3) :

Patch  38523609     : applied on Tue Mar 17 11:21:35 CST 2026
Unique Patch ID:  28341036
Patch description:  "OJVM RELEASE UPDATE: 19.30.0.0.260120 (38523609)"
......
......
Patch  38632161     : applied on Tue Mar 17 11:20:35 CST 2026
Unique Patch ID:  28443995
Patch description:  "Database Release Update : 19.30.0.0.260120 (38632161)"
   Created on 17 Jan 2026, 08:18:46 hrs UTC
   Bugs fixed:
     10121473, 10123661, 12608302, 1297945, 13087312, 13801211, 14570574
     14735102, 15878434, 15931756, 15959416, 16662822, 16664572, 16750494
....

或者
[oracle@host01 ~]$ opatch lspatches
38523609;OJVM RELEASE UPDATE: 19.30.0.0.260120 (38523609)
38632161;Database Release Update : 19.30.0.0.260120 (38632161)
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)
OCW是集群管理的,单机环境不需要安装这个补丁

5、安装PSU补丁后,更新升级数据字典(RU和OJVM补丁集一起完成),如下:

1)非CDB容器数据库,方法如下:
su - oracle
sqlplus "/as sysdba"
startup
exit

cd $ORACLE_HOME/OPatch
./datapatch -sanity_checks
./datapatch -verbose


2)CDB容器类型数据库(建议将所有PDB都打开,一起进行升级)
sqlplus "/as sysdba"
startup;
alter pluggable database all open;
show pdbs;
exit
cd $ORACLE_HOME/OPatch
./datapatch -sanity_checks
./datapatch -verbose

备注:可以不打开pdb直接升级,不过后续还是需要单独升级pdb,尽量一起完成数据字典升级
SQL> show pdbs;
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 PDB2                           READ WRITE NO         
 
说明
cd $ORACLE_HOME/OPatch
./datapatch -sanity_checks(可选步骤)
备注:数据补丁工具的 -sanity_checks(完整性检查)可选步骤会执行一系列环境与数据库检查,验证当前条件是否达到最佳补丁状态。检查结果将显示在屏幕上,并标注严重性等级及潜在操作建议。
./datapatch -verbose
备注:该步骤完成数据库字典升级


继续执行
上述数据字典升级过程会导致部分过程失效,需要编译无效对象
export PATH=$PATH:$ORACLE_HOME/bin
cd $ORACLE_HOME/rdbms/admin
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -n 1 -e -b utlrp -d $ORACLE_HOME/rdbms/admin utlrp.sql

6、更新 extjob 的权限(根据补丁集readme文件)

数据库版本更新修补程序安装涉及重新链接库和可执行文件待更新。有时会导致权限更改并需要更新。
#以root权限执行以下命令
su - root
#如果你的root用户没有配置ORACLE_HOME的环境变量的话,此时会找不到目录,直接将$ORACLE_HOME替换成实际目录就行了
chown root $ORACLE_HOME/bin/extjob
chmod 4750 $ORACLE_HOME/bin/extjob
 
 
#没有配置环境变量执行以下命令
chown root /u01/app/oracle/product/19.3.0/db_1/bin/extjob
chmod 4750 /u01/app/oracle/product/19.3.0/db_1/bin/extjob

7、检查和验证RU安装情况

1)检查版本和dba_registry_sqlpatch视图
su - oracle
sqlplus "/as sysdba"
set lines 200
col STATUS for a12
col ACTION for a10
col DESCRIPTION for a55
col ACTION_TIME for a32
select patch_id,action,status,action_time,description from dba_registry_sqlpatch;
SELECT banner_full FROM v$version;

SQL> select patch_id,action,status,action_time,description from dba_registry_sqlpatch;

  PATCH_ID ACTION     STATUS       ACTION_TIME                      DESCRIPTION
---------- ---------- ------------ -------------------------------- -------------------------------------------------------
  29517242 APPLY      SUCCESS      16-MAR-26 03.19.09.418745 PM     Database Release Update : 19.3.0.0.190416 (29517242)
  38632161 APPLY      SUCCESS      17-MAR-26 11.44.10.968068 AM     Database Release Update : 19.30.0.0.260120 (38632161)
  38523609 APPLY      SUCCESS      17-MAR-26 11.45.51.200470 PM     OJVM RELEASE UPDATE: 19.30.0.0.260120 (38523609)
  
SELECT banner_full FROM v$version;
BANNER_FULL
-------------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.30.0.0.0
 



2)检测是否有失效的对象:
sqlplus "/as sysdba"
select con_id,owner,object_name
from cdb_objects where status<> 'VALID'
minus 
select con_id,owner,object_name from t_invilid_objects;
#备注,没有输出结果表示升级前后没有新增的无效对象,属于期望的查询结果


3)检查RU补丁集信息已经在数据库体现,可以查询:
su - oracle
sqlplus "/as sysdba"
set linesize 200 pagesize 999
col ACTION_TIME format a30
col time format a20
col ACTION format a10
col NAMESPACE format a10
col VERSION format a10
col BUNDLE_SERIES format a10
--col ID format a5
col comments format a30
col comp_name format a35
col object_name format a30
col owner format a20
select to_char(ACTION_TIME,'yyyymmdd hh24:mi:ss') time,ACTION,NAMESPACE,VERSION ,ID, COMMENTS,BUNDLE_SERIES
 from dba_registry_history;
select comp_id,comp_name,status from dba_registry;

输出结果:
TIME                 ACTION     NAMESPACE  VERSION            ID COMMENTS                       BUNDLE_SER
-------------------- ---------- ---------- ---------- ---------- ------------------------------ ----------
                     BOOTSTRAP  DATAPATCH  19                    RDBMS_19.30.0.0.0DBRU_LINUX.X6
                                                                 4_260116
20260316 15:19:04    RU_APPLY   SERVER     19.0.0.0.0            Patch applied on 19.3.0.0.0: R
                                                                 elease_Update - 190410122720
20260317 11:44:10    RU_APPLY   SERVER     19.0.0.0.0            Patch applied from 19.3.0.0.0
                                                                 to 19.30.0.0.0: Release_Update
                                                                  - 260116203150
20260317 11:59:09    jvmpsu.sql SERVER     19.30.0.0.260120OJVM RU         0 RAN jvmpsu.sql                                                                                    
20260317 11:59:09    APPLY      SERVER     19.30.0.0.260120OJVM RU         0 OJVM RU post-install                                                         
最后几行表示已经安装成功RU补丁和OJVM补丁、完成数据字典的升级                                                                
                                                                
SQL> select comp_id,comp_name,status from dba_registry;
COMP_ID                        COMP_NAME                           STATUS
------------------------------ ----------------------------------- ------------
CATALOG                        Oracle Database Catalog Views       VALID
CATPROC                        Oracle Database Packages and Types  VALID
RAC                            Oracle Real Application Clusters    OPTION OFF
JAVAVM                         JServer JAVA Virtual Machine        VALID
XML                            Oracle XDK                          VALID
CATJAVA                        Oracle Database Java Packages       VALID
APS                            OLAP Analytic Workspace             VALID
XDB                            Oracle XML Database                 VALID
OWM                            Oracle Workspace Manager            VALID
CONTEXT                        Oracle Text                         VALID
ORDIM                          Oracle Multimedia                   VALID
SDO                            Spatial                             VALID
XOQ                            Oracle OLAP API                     VALID
OLS                            Oracle Label Security               VALID
DV                             Oracle Database Vault               VALID

备注:RU补丁安装和数据字典升级后,各组件状态都正常



4)检查日志文件,排查升级过程中有无异常
类似如下:
Patch 38632161 apply (pdb CDB$ROOT): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/38632161/28443995/38632161_apply_ORCL_CDBROOT_2026Mar17_11_37_46.log (no errors)
Patch 38632161 apply (pdb PDB$SEED): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/38632161/28443995/38632161_apply_ORCL_PDBSEED_2026Mar17_11_44_32.log (no errors)
Patch 38632161 apply (pdb PDB1): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/38632161/28443995/38632161_apply_ORCL_PDB1_2026Mar17_11_44_31.log (no errors)
Patch 38632161 apply (pdb PDB2): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/38632161/28443995/38632161_apply_ORCL_PDB2_2026Mar17_11_44_31.log (no errors)
.......
备注: 升级数据字典时,一般有上面输出 ,其中(no errors)没有错误,是预期的结果。

另外,根据readme.html文件,datapatch/catbundle.sql日志出现如下错误,都是和忽略的
The following ignorable errors may be encountered while running the datapatch/catbundle.sql script or its rollback script:
ORA-00942: table or view does not exist
ORA-00955: name is already used by an existing object
ORA-01430: column being added already exists in table
ORA-01432: public synonym to be dropped does not exist
ORA-01434: private synonym to be dropped does not exist
ORA-01435: user does not exist
ORA-01917: user or role 'XDB' does not exist
ORA-01920: user name '<user-name>' conflicts with another user or role name
ORA-01921: role name '<role name>' conflicts with another user or role name
ORA-01927: cannot REVOKE privileges you did not grant
ORA-01952: system privileges not granted to 'WKSYS'
ORA-02289: sequence does not exist 
ORA-02303: cannot drop or replace a type with type or table dependents
ORA-02443: Cannot drop constraint - nonexistent constraint
ORA-04043: object <object-name> does not exist
ORA-06512: at line <line number>. If this error follow any of above errors, then can be safely ignored.
ORA-14452: attempt to create, alter or drop an index on temporary table already in use
ORA-29809: cannot drop an operator with dependent objects
ORA-29830: operator does not exist
ORA-29832: cannot drop or replace an indextype with dependent indexes
ORA-29844: duplicate operator name specified 
ORA-29931: specified association does not exist

8、可选项,UPGRADE CATALOG(如果使用了RMAN恢复管理器,则需要,否认不需要执行这一步骤)

RU补丁集安装,如果使用了RMAN恢复管理器,那么恢复catalog也必须更新升级
rman catalog username/password@alias
UPGRADE CATALOG;
UPGRADE CATALOG;
EXIT;
备注:UPGRADE CATALOG命令必须执行两次来确认完成升级!

9、重启监听

su - oracle
lsnrctl start

10、重启数据库,开启数据库中临时关闭的job任务,开启操作系统的定时任务,开启业务进行功能性简单测试

sqlplus "/as sysdba"
shutdown immediate;
//再次启动
startup;
alter pluggable database all open;   //容器类型需要打开所有pdb
show pdbs;

开启数据库中的job任务:
alter system set job_queue_processes =1000;
开启root用户和oracle用户下数据库相关的定时任务:
su - root
crontab -l
su - oracle
crontab -l

至此,完成Oracle数据库PSU补丁包安装

11、可选项,回滚总结(如果安装失败或者其它原因,需要回滚,按如下步骤)

回滚:
RU补丁集回滚
opatch rollback -id 38632161
OJVM补丁回滚
opatch rollback -id 38523609

检查
opatch lsinventory


数据库软件回滚完毕,在回滚数据字典
sqlplus "/as sysdba"
startup;
alter pluggable database all open;   //容器类型需要打开所有pdb
show pdbs;
exit
cd $ORACLE_HOME/OPatch
./datapatch -sanity_checks (optional)
./datapatch -verbose

上述数据字典回滚过程会导致部分过程失效,需要编译无效对象
export PATH=$PATH:$ORACLE_HOME/bin
cd $ORACLE_HOME/rdbms/admin
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -n 1 -e -b utlrp -d $ORACLE_HOME/rdbms/admin utlrp.sql

12、补丁错误总结

1)OJVM补丁集包安装可能出现如下错误:
Applying interim patch '38523609' to OH '/u01/app/oracle/product/19.3.0/db_1'
Patching component oracle.javavm.server, 19.0.0.0.0...
Patching component oracle.javavm.server.core, 19.0.0.0.0...
Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...
Patching component oracle.rdbms, 19.0.0.0.0...
Patching component oracle.javavm.client, 19.0.0.0.0...
Make failed to invoke "/usr/bin/make -f ins_rdbms.mk javavm_refresh ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1 OPATCH_SESSION=apply"....'make: perl: Command not found
make: *** [ins_rdbms.mk:573: javavm_refresh] Error 127

处理办法:
设置PATH和PERL5LIB环境变量,然后重新opatch apply.
export PATH=$ORACLE_HOME/perl/bin:$PATH
export PERL5LIB=$ORACLE_HOME/perl/lib


2)OJVM补丁可能的错误:
Issue 1
Problem: An error may appear in the Database alert log file when datapatch is run.ORA-04068
During a successful run of the datapatch tool with no errors indicated, an error may appear in the Database alert log file: ORA-04068
ORA-04068: existing state of packages has been discarded
解决方案:此错误属于 datapatch 本身的可重试错误。若补丁安装过程中遇到该错误,datapatch 将自动重试一次操作,之后再报告失败。只要 datapatch 成功运行且未指示错误(可能是在自动重试之后),即可忽略该错误。ORA-04068

3)RU补丁集升级数据字典时,如果出现如下错误,可忽略
Issue 1
The following ignorable errors may be encountered while running the datapatch/catbundle.sql script or its rollback script:
ORA-00942: table or view does not exist
ORA-00955: name is already used by an existing object
ORA-01430: column being added already exists in table
ORA-01432: public synonym to be dropped does not exist
ORA-01434: private synonym to be dropped does not exist
ORA-01435: user does not exist
ORA-01917: user or role 'XDB' does not exist
ORA-01920: user name '<user-name>' conflicts with another user or role name
ORA-01921: role name '<role name>' conflicts with another user or role name
ORA-01927: cannot REVOKE privileges you did not grant
ORA-01952: system privileges not granted to 'WKSYS'
ORA-02289: sequence does not exist 
ORA-02303: cannot drop or replace a type with type or table dependents
ORA-02443: Cannot drop constraint - nonexistent constraint
ORA-04043: object <object-name> does not exist
ORA-06512: at line <line number>. If this error follow any of above errors, then can be safely ignored.
ORA-14452: attempt to create, alter or drop an index on temporary table already in use
ORA-29809: cannot drop an operator with dependent objects
ORA-29830: operator does not exist
ORA-29832: cannot drop or replace an indextype with dependent indexes
ORA-29844: duplicate operator name specified 
ORA-29931: specified association does not exist

三、刚新建Oracle数据库的服务器上,建议按以下步骤完成PSU补丁安装

方法一、
1、安装数据库软件
2、安装RU和OJVM补丁包(安装数据库前将补丁安装,后续不需要运行数据字典升级脚本了)
3、安装数据库
方法二、
RU安装新方式,安装database同时应用RU新安装建议
如果安装database 19c时已经准备好RU补丁,可以在安装时指定参数(applyRU 和 applyOneOffs),即安装DB软件时同时指定RU。
./runInstaller -applyRU /u01/psu/38632161 -applyOneOffs /u01/psu/38523609

方法二的简单示例:(oracle用户下执行)

su - oracle

0、解压oracle 19c安装包到ORACLE_HOME目录
cd /u01/soft
unzip -q LINUX.X64_193000_db_home.zip -d $ORACLE_HOME

1、opatch工具更新
mv $ORACLE_HOME/OPatch  $ORACLE_HOME/OPatch_$(date +%F)
ls -ld $ORACLE_HOME/OPatch*
cd /u01/psu
unzip -q p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
ls -ld $ORACLE_HOME/OPatch*
验证
$ORACLE_HOME/OPatch/opatch version

2、解压RU补丁包和OJVM补丁包
cd /u01/psu
unzip -q p38632161_190000_Linux-x86-64.zip
unzip -q p38523609_190000_Linux-x86-64.zip

3、开始安装
export DISPLAY=192.168.11.1:0.0
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/usr/ccs/bin
export PATH=$ORACLE_HOME/perl/bin:$PATH
export PERL5LIB=$ORACLE_HOME/perl/lib
./runInstaller -applyRU /u01/psu/38632161 -applyOneOffs /u01/psu/38523609
export DISPLAY=192.168.11.1:0.0
export CV_ASSUME_DISTID=OL7   //linux 8版本需要设置
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/usr/ccs/bin
export PATH=$ORACLE_HOME/perl/bin:$PATH
export PERL5LIB=$ORACLE_HOME/perl/lib
./runInstaller -applyRU /u01/psu/38632161 -applyOneOffs /u01/psu/38523609

输出:
Preparing the home to patch...    
Applying the patch /u01/psu/38632161... //这里显示补丁一起安装
Successfully applied the patch.
Applying the patch /u01/psu/38523609... //这里显示补丁一起安装
Successfully applied the patch.
The log can be found at: /tmp/InstallActions2026-03-17_05-25-52PM/installerPatchActions_2026-03-17_05-25-52PM.log
Launching Oracle Database Setup Wizard...

posted @ 2026-03-20 09:17  数据库路上  阅读(0)  评论(0)    收藏  举报