一次数据库补丁失败修复案例

331 阅读1分钟

问题描述:

DB 11.2.0.4.0

RAC 11.2.0.4.190115

现在需要把DB的PSU也打成190115,由于操作失误把GI的补丁卸载了,卸载出了问题,集群无法正常启动。

报错信息,这种情况直接恢复之前备份过的Grid是直接可以修复的,不幸的是,做之前并没有备份,接到问题后紧急救火。

报错信息

此时使用opatch auot的方式安装会报错,因为opatch auto会先停集群,但发现集群有问题,所以会报错,决定采用手动安装PSU的方式解决问题

修复过程:

执行以下操作,否则后续会报错

1. cp -p $GRID_HOME/perl/lib/5.10.0/Env.pm /usr/lib64/perl5/vendor_perl/

或者yum install perl-Env

2. $GRID_HOME/crs/install/rootcrs.pl-unlock,需要执行步骤一否则报错:

Can’t locate Env.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5

3.打Grid补丁

本步骤执行过程中可能会有权限之类的报错,部分文件属主是root,需要把权限GRID_HOME中的文件属主统一改成grid

su - grid

$ cd /stage/

$ opatch apply -local

$ cd /stage/

$ opatch apply -local

$ cd /stage/

$ opatch apply -local

4. 打Oracle补丁

su - oracle

$ /stage//custom/server//custom/scripts/

./prepatch.shdbhome./prepatch.sh -dbhomeORACLE_HOME

$ cd /stage//custom/server//

$ opatch apply -local

$ cd /stage//custom/server//custom/scripts/

./postpatch.shdbhome./postpatch.sh -dbhomeORACLE_HOME

$ cd /stage/

$ opatch apply -local

5. 集群资源复位

$GRID_HOME/rdbms/install/rootadd_rdbms.sh

#$GRID_HOME/crs/install/rootcrs.pl-patch

集群会自动拉起,启动DB恢复正常。