首页 > 数据库 > Oracle > RAC升级11.2.0.1到11.2.0.4的实战
原grid
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/grid
原oracle
ORACLE_BASE=/u01/app/oracle
ORACLE_ HOME =/u01/app/oracle/product/11.2.0/db_1
新grid
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/110204/grid
新oracle
ORACLE_BASE=/u01/app/oracle
ORACLE_ HOME =/u01/app/oracle/product/11.2.0.4/db_1
1. 上传新版本oracle和grid安装文件至第一个节点,并解压出来
2. 所有节点上新建目录/u01/app/110204/grid和/u01/app/oracle/product/11.2.0.4/db_1并分别授予grid和oracle的权限
3. Grid升级前检查,进入grid安装文件的目录,执行如下语句(-src_crshome后面对应的是原来grid的$ORACLE_HOME, -dest_crshome后面对应的是新版本grid的$ORACLE_HOME,个人实验的情况是两个问题都忽略了)
./runcluvfy.sh stage -pre crsinst -upgrade -n testdb01,testdb02 -rolling -src_crshome /u01/app/grid -dest_crshome /u01/app/110204/grid -dest_version 11.2.0.4.0 -fixup -fixupdir /tmp -verbose
一般都有如下两个问题(第一个解决办法:安装9706490补丁包;第二个解决办法:忽略)
Checking for Oracle patch "9413827 or 9706490" in home "/u01/app/grid".
Node Name Applied Required Comment
-------- ------ ------ ---
testdb02 missing 9413827 or 9706490 failed
testdb01 missing 9413827 or 9706490 failed
Result: Check for Oracle patch "9413827 or 9706490" in home "/u01/app/grid" failed
There are no oracle patches required
for home "/u01/app/110204/grid".
Checking if search entry in file "/etc/resolv.conf" is consistent across the nodes...
search entry in file "/etc/resolv.conf" is consistent across nodes
Checking DNS response time for an unreachable node
Node Name Status
------- ----
testdb02 failed
testdb01 failed
PRVF-5636 : The DNS response time for an unreachable node exceeded "15000" ms on following nodes: testdb02,testdb01
File "/etc/resolv.conf" is not consistent across nodes
4. 关闭所有节点的CRS(个人实验过程中因为没有打9706490补丁,所以采用了关闭CRS来避免后期执行rootupgrade.sh导致Failed to stop the lower version of Grid Infrastructure错引发的grid升级不成功的问题)
Root#/u01/app/grid/bin/crsctl stop crs
5. 安装grid
6. 启动所有节点的CRS(当然安装完grid后,过一段时间发现会自动启动grid即crsctl start crs,但是安装过程中还是手工启动的好,且启动后的grid的版本有更新了如下)
Root#/u01/app/grid/bin/crsctl start crs
crsctl query crs activeversion -- 11.2.0.4.0
/u01/app/110204/grid/bin/crsctl query crs activeversion -- 11.2.0.4.0
crsctl query crs releaseversion -- 11.2.0.1.0
/u01/app/110204/grid/bin/crsctl query crs releaseversion -- 11.2.0.4.0
crsctl query crs softwareversion -- 11.2.0.4.0
/u01/app/110204/grid/bin/crsctl query crs softwareversion -- 11.2.0.4.0
srvctl config asm显示ASM home: /u01/app/110204/grid
/u01/app/110204/grid/bin/srvctl config asm显示ASM home: /u01/app/110204/grid
但是grid用户下sqlplus / as sysasm显示实例时idle状态,asmcmd进入也是idle状态,执行srvctl status asm却显示ASM is running。查看了$ORACLE_BASE/diag/asm目录没有发现另外的ASM实例名称,也就是ASM实例的名称还是低版本的,那为何grid用户下sqlplus / as sysasm显示idle,但是oracle用户下sqlplus / as sysdba可以查询,奇怪了,理论上ASM没有启动,DB是启动不了的。
7. 安装oracle,选择update an existing databae,执行完$ORACLE_HOME/root.sh后会自动运行DBUA,这些步骤完成后不用再手动执行什么catupgrd.sql、utlrp.sql了,因为DBUA的过程中会自动performing post upgrade之类
8. 修改grid和oracle的.bash_profile并resource一下
9. 继续使用原来目录的命令关闭集群如/u01/app/grid/bin/crsctl stop crs,再重启服务器验证下如查询如下语句
SQL> select comp_name,version,status from dba_registry;
Grid安装界面

















DB安装界面























来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30126024/viewspace-2123327/ ,如需转载,请注明出处,否则将追究法律责任。