网站首页 > 技术文章 正文
介绍
本文介绍安装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安装完成!
猜你喜欢
- 2024-10-21 安装oracle12C RAC时可跳过gimr安装
- 2024-10-21 「干货分享」史跃东老师:Oracle Database 12C 之多租户(三)
- 2024-10-21 详解Windows下oracle打补丁步骤 oracle11g打补丁
- 2024-10-21 Oracle Database 12c SQL OCA/OCP 1Z0-071题库(1-5题)
- 2024-10-21 Oracle 19C 数据泵导出的dmp导入 12C 报ORA-39002 错误解决方法
- 2024-10-21 Oracle 12c Release 2 RAC On Oracle Linux 7
- 2024-10-21 产品|QData Cloud 完美兼容 Oracle 12c 容器数据库
- 2024-10-21 docker安装oracle 12c实现数据持久化
- 2024-10-21 一文看懂Oracle11g和12c的v$pwfile_user视图
- 2024-10-21 详解Oracle11g和12c的v$pwfile_user视图及区别
你 发表评论:
欢迎- 05-24网络信息安全之敏感信息在传输、显示时如何加密和脱敏处理
- 05-24常见加密方式及Python实现
- 05-24pdf怎么加密
- 05-24aes256 加密 解密 (python3) 「二」
- 05-24深入理解Python3密码学:详解PyCrypto库加密、解密与数字签名
- 05-24Springboot实现对配置文件中的明文密码加密
- 05-24JavaScript常规加密技术
- 05-24信息安全人人平等 谷歌推出低性能安卓手机加密技术
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)