在Centos7.0 下升级Oracle 11.2.0.1至Oracle11.2.0.4
背景:系统x86_64;Oracle software未安装grid、asm、未搭建rac;该机器上共运行两个instance(对应两个database)
准备:
下载p13390677_112040_Linux-x86-64_1of7.zip ;p13390677_112040_Linux-x86-64_2of7.zip ,将两文件上传至centos7.0,解压,进入databse文件夹,运行runInstaller
开始:
Pre1.建议在step6中安装至别的路径,这样在升级出错后仍然可以使用原software无损启动原oracle databse;
Pre.2如有必要可以先备份databse,将databse设置为只读方式,清空回收站,可以加快升级速度;
Pre.3步骤三跟步骤四顺序不要弄错,不然可能会(譬如Step10.3.5中移动了database)无法搜索到别的database;
最后,类似安装流程,整个升级过程分为两部分:第一部分升级software;第二部分升级database。另外本文最后还记录了升级后如何升级第二个database,检查监听及环境变量的配置等所有升级相关的工作,直到数据库能被远程正常访问。
一、升级software
Step1
取消勾选 i wish...,next
点击Yes
Step2
由于没有OS账号,选择Skip...,next
Step3
选择 upgrade...,next
Step4
选择运行oracle database的语言,next
Step5
选择enterprise...,next
Step6
Software安装路径修改为11.2.0.4(好处是升级出错,仍可以使用原software无损启动原database),next
Step7
如果配置了oper组请选择改组,本人安装oracle db时未配置,故选择了dba组,next
Step8
检查依赖参数或包,如果此处包参数错误或少包无法自动fixed,需要手动下包或修改参数fixed
Step9
Step8中检查完成自动进入step9,点击install
Step10
开始升级software
其中,遇到报错:
解决办法:
将/opt/oracle/product/11.2.0.4/sysman/lib/ins_emagent.mk文件中$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11;点击"retry"。
Step10.1
按提示执行脚本,全部输入y重写
Step10.2
自定义配置监听、服务,next
Next
点击ok,修改监听名,next
Next
生产库建议不要使用默认端口,修改至15021,next
选择no不再配置监听,点击next
选择start新配置的监听,next
监听配置完成,next
是否配置tnsname.ora?选择no,(后续自己去修改文件或netmgr配置),next
至此,Step10.2 Netca配置完成,点击finish
至此,数据库software升级完成,下面进行database升级。
二、升级database
Step10.3.1
点击Next
Step10.3.2
选择需要升级的database,next
备注:一次只能升级一个database,另外的可以在升级完成后运行dbua升级。
Step10.3.3
点击yes
Step10.3.4
全选,点next
Step10.3.5
Move database...,next
Step10.3.6
没配asm,故选择use common..., next
备注:如果上一步没有选择move database,可以这一步的原路径下新增11.2.0.4文件夹存放数据避免覆盖原数据。本文操作如上图。
Step10.3.7
设置快速恢复区,next
Step10.3.8
选择将哪一个或全部监听注册到oracle system中去,本人选择新配的LSNR,next
Step10.3.9
显示相关配置信息,finish
Step11
开始升级database
至下图,数据升级完成,点击ok
升级结果,改步骤可以configure database passwords 和 restore database(恢复到旧版本数据库),点击close完成
点击close结束
-
升级第二个database
在Oracle账户下运行/opt/oracle/product/11.2.0.4/bin/dbua,选择需要升级的数据库,重复第二部分中的步骤。
-
配置环境变量
oracle账户下:
1.[oracle@localhost ~]$ cd ~
2.[oracle@localhost ~]$ vi .bash_profile
将ORACLE_HOME修改至升级后的路径,本文中是见Step6: ORACLE_HOME=/opt/oracle/product/11.2.0.4
- [oracle@localhost ~]$ source .bash_profile
-
检查是否生效
[oracle@localhost ~]$ echo $ORACLE_HOME
/opt/oracle/product/11.2.0.4
-
sqlplus / as sysdba 登录检查是否是11.2.0.4版本
如上图,使用11.2.0.1的software打开了11.2.0.4的database。说明.bash_profile未生效。在/home/oracle下执行exec bash --login再次sqlplus / as sysdba登录
如上则成功使用11.2.0.4software打开11.2.0.4database
一定要确保该步骤正常完成,如果不行,请关闭所有实例之后再执行使.bash_profile生效的命令。
-
检查数据库、监听是否启正常
检查监听:
显示仍然使用的是旧的监听文件(虽然不影响数据的使用,但是建议还是修改至新版本的路径下的监听文件)。检查更新后的软件是否生成监听文件,检查主机名(为新建监听使用):
使用旧的监听文件仍然可以打开数据库
无监听文件(注:10.3.8的注册似乎注册到旧监听文件中去了,没太注意),oracle账户执行netmgr,新建监听:
设置监听名
新建监听地址
填写主机名(hostname),修改监听端口
分别为catdb、vxdb配置service
Save network configuration
点右上角X关闭
执行lsnrctl reload 重新加载监听文件
执行lsnrctl stop 关闭监听
执行lsnrctl start 开启监听
执行lsnrctl status 查看监听状态
Status为UNKNOWN表示监听为静态注册
-
完成
远程连接测试:
两个实例均连接成功。
至此,所有配置均完毕,oracle database升级工作完成。