Oracle12C RAC PATCH安装p30354375

Oracle12C RAC PATCH安装p30354375

技术教程gslnedu2025-02-01 12:46:047A+A-

介绍

本文介绍安装p30354375,这个patch是用来解决ORA-00600 [KSXP_EXCEPT] AND [IPC_RECEIVE_DONE_1] ON 12.2 RAC的问题。通过MOS下载patch包,解压后查看README.txt文件,看看安装需求和安装步骤,本文需要先应用32507738,然后再应用30354375。测试中用到滚动升级方式,即先在节点1上执行操作,然后再节点2上执行操作,操作期间保留一个节点对外提供服务!


服务器IP

数据库版本

实例名

rac1

192.168.5.13

12.2.0.1

racdb1

rac2

192.168.5.14

12.2.0.1

racdb2

查看30354375的README.txt可以看到(重点):

1.要安装p30354375需要先确保OPATCH的版本12.2.0.1.23 or higher,默认版本较低

2.确保12c Release
12.2.0.1.210420DBAPR2021RU Patch Set Update (PSU) 32507738 is already applied on the Oracle Database

3.其他信息略

查看32507738的README.txt可以看到

1.OPATCH的版本12.2.0.1.23 or higher

2.Oracle JavaVM 12.2.0.1.x(可以忽略)

3.如果需要grid的patch,需要下载另一个包(暂时忽略)

4.其他信息略

PATCH下载

通过文章Doc ID 2630730.1,可以找到patch号30354375,通过patch号可以找到对应的包。

一共需要3个安装包,下载完成后,上传到2个节点。

更新OPATCH

根据Readme.txt的要求,首先更新Opatch,备份老的Opatch目录,然后将解压出来的新Opatch目录放到$ORACE_HOME下。

[oracle@rac1 ~]$ cd $ORACLE_HOME

[oracle@rac1 db_1]$ mv OPatch/ OPatch_bak

[oracle@rac1 ~]$ unzip p6880880_122010_Linux-x86-64.zip

[oracle@rac1 ~]$ mv OPatch/ /u01/app/oracle/product/12.2.0/db_1/

[oracle@rac1 ~]$ cd /u01/app/oracle/product/12.2.0/db_1/OPatch

查询Opatch版本(12.2.0.1.24):

[oracle@rac1 OPatch]$ ./opatch version

上述操作在节点2上也要执行一遍!

应用32507738

1.解压

[oracle@rac1 ~]$unzip p32507738_122010_Linux-x86-64.zip

[oracle@rac1 ~]$ mv 32507738/ /u01/app/oracle/product/12.2.0/db_1/OPatch/

2.执行冲突检查

[oracle@rac1 OPatch]$ cd 32507738/

[oracle@rac1 32507738]$ ../opatch prereq CheckConflictAgainstOHWithDetail -ph ./

检查通过后,关闭数据库实例:

SQL> shutdown immediate;

3.应用补丁

[oracle@rac1 32507738]$ ../opatch apply

从图中可以看到,patch apply后有错误,这个报错是权限相关,用root修改即可:

[root@rac1 ~]# cd /u01/app/oracle/product/12.2.0/db_1/bin

[root@rac1 bin]# ll extjobO

-rwsr-x--- 1 root oinstall 2251869 Apr 15 10:55 extjobO

[root@rac1 bin]# chown oracle:oinstall extjobO

[root@rac1 bin]# chmod 600 extjobO

[root@rac1 bin]# ll extjobO

-rw------- 1 oracle oinstall 2251869 Apr 15 10:55 extjobO

4.其他操作

1.修改oracle执行文件权限:

[root@rac1 bin]# ll oracle*

-rwsr-s--x 1 oracle oinstall 410101002 Apr 22 15:00 oracle

-rw------- 1 oracle asmadmin 408114239 Apr 15 10:55 oracleO ---自动备份文件

[root@rac1 bin]#chown oracle:asmadmin oracle

[root@rac1 bin]#chmod 6751 oracle (文件带有s权限)

注意:在执行的过程中,会自动备份执行文件$ORACLE_HOME/bin/oracle,同时会改变权限,需要将文件权限修改回去,否则在启动数据库的时候,就会报找不到控制文件,找不到共享磁盘。

2.启动节点1的数据库:

SQL> startup

在alter日志中可以看到patch相关信息:

至此,32507738应用完成,相同的操作在第二个节点也执行一遍,然后进行下一步!

Load Modified SQL Files into the Database

注意:这个操作只需要在一个节点上执行

[oracle@rac1 ~]$cd $ORACLE_HOME/OPatch

[oracle@rac1 OPatch]$ ./datapatch -verbose

可以看到有报错,经过查询解决报错,解决办法如下:

1.解决
GSMADMIN_INTERNAL.DBMS_GSM_POOLADMIN报错:

SQL >grant EXECUTE on DBMS_BACKUP_RESTORE to PUBLIC;
SQL >grant EXECUTE on DBMS_JOB to PUBLIC;
SQL >grant EXECUTE on DBMS_LOB to PUBLIC;
SQL >grant EXECUTE on DBMS_OBFUSCATION_TOOLKIT to PUBLIC;
SQL >grant EXECUTE on DBMS_RANDOM to PUBLIC;
SQL >grant EXECUTE on DBMS_SQL to PUBLIC;
SQL >grant EXECUTE on DBMS_SYS_SQL to PUBLIC;
SQL >grant EXECUTE on UTL_FILE to PUBLIC;
SQL >grant EXECUTE on UTL_HTTP to PUBLIC;
SQL >grant EXECUTE on UTL_SMTP to PUBLIC;
SQL >grant EXECUTE on UTL_TCP to PUBLIC;

SQL > @?/rdbms/admin/dbmsgwm.sql
SQL > @?/rdbms/admin/prvtgwm.sql

2.DBMS_SHARED_POOL报错

根据Error at line 2457在日志中找到报错信息,是和DBMS_SHARED_POOL有关,我这里是只要包体没有包头导致的编译错误,执行下列脚本

SQL >@?/rdbms/admin/dbmspool.sql

SQL >@?/rdbms/admin/prvtpool.plb

3.编译无效对象:

SQL> @?/rdbms/admin/utlrp.sql

4.重新执行datapatch

[oracle@rac1 OPatch]$ ./datapatch -verbose

查看patch应用信息,出现success说明正常:

SQL> select PATCH_ID ,VERSION,STATUS from dba_registry_sqlpatch;

安装p30354375

1.解压

[oracle@rac1 ~]$ unzip p30354375_12201210420DBAPR2021RU_Linux-x86-64.zip

[oracle@rac1 ~]$ mv 30354375/ /u01/app/oracle/product/12.2.0/db_1/OPatch/

[oracle@rac1 ~]$ cd /u01/app/oracle/product/12.2.0/db_1/OPatch/30354375

2.冲突检查

[oracle@rac1 30354375]$ ../opatch prereq CheckConflictAgainstOHWithDetail -ph ./

注意:For a RAC environment, shut down all the services (database, ASM, listeners, nodeapps, and CRS daemons)

3.关闭数据库和CRS

SQL> shutdown immediate;

[root@rac1 bin]# ./crsctl stop crs

4.应用patch和检查

[oracle@rac1 30354375]$ ../opatch apply

[oracle@rac1 OPatch]$ ./opatch lsinventory

5.启动CRS进程和数据库

注意$ORACLE_HOME/bin/oracle 文件权限,又被修改了!!

[root@rac1 bin]# ./crsctl start crs

[oracle@rac1 ~]$ sqlplus / as sysdba

SQL> startup

在第二个节点上重复上述过程,如果觉得不放心,可以在完成后,重启2台服务器,查看是否正常,至此,patch安装完成!

点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8