11G RAC PSU-CPU-OJVM补丁升级过程

1. 下载补丁和最新OPatch,GIPSU,PSU补丁

OPatch下载地址:

https://updates.oracle.com/download/6880880.html

GI-PSU:

Oracle-psu

Oracle-CPU

2. 检查数据库当前OPatch版本

RAC所有节点的GI home和DB home都需要检查。

$ $ORACLE_HOME/OPatch/opatch version

3. 更新OPatch

3.1 RAC所有节点的GI home和DB home都需要更新。

$ mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_bak

$ unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME

$ $ORACLE_HOME/OPatch/opatch version

3.2 需要注意grid用户$ORACLE_HOME 权限。

# su - grid

$ echo $ORACLE_HOME

$ ls -lh $ORACLE_HOME/../

$ exit

# chmod 775 /oracle/app/11.2.0/grid/bin

4. 解压GIPSU补丁文件

# su – grid

$ unzip p27967757_112040_Linux-x86-64-gipsu.zip

5. 检查补丁之间有无冲突

5.1 检查需要打的补丁与现有补丁有无冲突.

Oracle 用户执行:

$ cd 27734982

$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

grid用户执行结果:

$ cd 27967757

$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

6. 停止数据库和本地crs服务

登录节点1

# su – oracle

$ $ORACLE_HOME/bin/srvctl stop instance -d orcl -i orcl2

su – root

进入GRID_HOME下crs/install目录

# $ORACLE_HOME/crs/install/rootcrs.pl –unlock

7. 更新补丁

7.1 手工打补丁

7.1.1 更新GRID-PSU

$ $ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /home/grid/28429134

输出略…

7.1.2 报错解决方法

  1. 执行到最后会报错 如下信息:

chmod: changing permissions of :'/u01/app/11.2.0/grid/bin/extjobO' Operation not permissions

报错原因: 是因为执行过程中extjob0的文件所属组会自动变为root oinstall.

解决方法

1)回退GRID-PSU补丁

$ cd $ORACLE_HOME/Opatch

$ ./opatch  rollback -id 27967757

2)重新授权

chown -R grid:oinstall /u01/app/11.2.0/grid/bin/extjobO

  

3)重新执行补丁升级

 $ORACLE_HOME/OPatch/opatch napply -oh $GRID_HOME -local /home/grid/27967757/

7.1.3 更新Oracle PSU补丁

1)注意事项

Oracle 用户升级前先检查服务是否完全停止,

否则执行过程中也会报关于lib库连接的错误

# fuser /oracle/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1

# lsof /oracle/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1

# kill -9 进程号

2)确认无误后进行补丁升级 

$ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /home/oracle/28204707

输出略..

7.1.4 报错解决方法

  1. 执行到最后如果报错 如下信息:

报错原因: 是因为执行过程中extjob0的文件所属组会自动变为root oinstall.

解决方法

1)回退ORACLE-PSU补丁

$ cd $ORACLE_HOME/Opatch

$ ./opatch  rollback -id 27734982

2)重新授权

chown -R oracle:oinstall /oracle/app/oracle/product/11.2.0/db_1/bin/extjobO

  

3)重新执行补丁升级

 $ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /home/oracle/27734982

7.2.3 启动集群

$ su – root

# /u01/app/11.2.0/grid/rdbms/install/rootadd_rdbms.sh

# /u01/app/11.2.0/grid/crs/install/rootcrs.pl -patch

7.2 在节点2重复以上节点1操作

8. 登录数据库执行升级字典操作

由于RAC实际只有一个数据库,因此任意节点登录数据库执行1次即可。最后重启数据库。

$ cd $ORACLE_HOME/rdbms/admin

$ sqlplus /nolog

SQL> CONNECT / AS SYSDBA

SQL> STARTUP

SQL> @catbundle.sql psu apply

SQL> QUIT

$ cd $ORACLE_HOME/rdbms/admin

$ sqlplus /nolog

SQL> CONNECT / AS SYSDBA

SQL> @utlrp.sql

SQL> shutdown immediate;

SQL> startup;

9. 验证补丁更新结果

各节点的GI HOME和ORACLE HOME都执行验证。

$ cd $ORACLE_HOME/OPatch

$ ./opatch lsinventory

数据库的验证。

SQL> select * from dba_registry_history;

10. 升级CPU安全补丁

以下操作都由Oracle用户执行

10.1. 解压Oracle CPU补丁

unzip p28317183_112040_Linux-x86-64-cpu.zip

10.2. 升级CUP 补丁

$ cd /home/oracle/28317183/27923163

$ $ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /home/oracle/28364007

升级完成后重启当前节点数据库

$ srvctl stop instance –d orcl –i orcl1

10.3. 节点二 执行上述同样的动作

10.4. 更新数据字典

脚本只需要在一个节点上执行,但需要将数据库定义为单机模式。

$cd /home/oracle/28317183/27923163

SQL> SQLPLUS / AS SYSDBA

SQL> alter system set cluster_database=false scope=spfile;

SQL> SHUTDOWN

SQL> STARTUP UPGRADE

SQL> @postinstall.sql

SQL> alter system set cluster_database=true scope=spfile;

SQL> SHUTDOWN

SQL> STARTUP

@?/rdbms/admin/catbundle.sql cpu apply

11.升级OJVM 虚拟组件补丁

以下操作都由Oracle用户执行

11.1 解压OJVM补丁

$ unzip p28440700_112040_Linux-x86-64-OJVM.zip

11.2 升级OJVM补丁

$ cd /home/oracle/28440700

$ $ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /home/oracle/28440700

11.3 节点二 执行上述同样的动作

11.4 更新数据字典

脚本只需要在一个节点上执行,但需要将数据库定义为单机模式。

cd /home/oracle/28440700

sqlplus /nolog

SQL> CONNECT / AS SYSDBA

SQL> STARTUP

SQL> alter system set cluster_database=false scope=spfile;

SQL> SHUTDOWN

SQL> STARTUP UPGRADE

SQL> @postinstall.sql

SQL> alter system set cluster_database=true scope=spfile;

SQL> SHUTDOWN

$srvctl start database –d orcl

  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值