【说明】生产数据库一般情况下都是不建议使用Oracle 11.2.0.1等类似的点1或R1的版本,11.2.0.1是基础版本,这个版本相对上一个版本有较多的特性的更新,而特性的更新也意味着出现BUG的可能性会比其他版本高很多。
【场景说明】最近发现了一个很少用的系统遇到了BUG,需要从11.2.0.1升级到11.2.0.3的版本。
【原理】数据库的升级其实更像是数据库的迁移,如从11.2.0.1升级到11.2.0.3是在该数据库的操作系统上面增加安装11.2.0.3这个数据库的软件,然后用11.2.0.3的一些脚本刷新原来数据库的文件。
【升级前准备工作】
确定操作系统的版本和位数
确定数据库的版本和位数,脚本:SELECT * FROM PRODUCT_COMPONENT_VERSION;
进行数据库的备份
进行配置文件的备份:
ORACLE_HOME/dbs 参数文件
ORACLE_HOME/network/admin 监听文件
ORACLE_HOME/hostname_dbname
ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_hostname_dbname
拷贝ORACLE数据库的升级包到服务器上面,ORACLE 11.2.0.3的有7个安装包,升级的话只有p10404530_112030_Linux-x86-64_1of7和p10404530_112030_Linux-x86-64_2of7有用,上传这两个文件到服务器上面即可。
创建新的ORACLE_BASE和ORACLE_HOME目录
大型应用的数据库的升级不像这边说的那么简单,需要有大量的反复的测试,经过确认无误后才可以更新到正式环境,我们这里的操作也是在测试环境中进行的。(升级过一套正式系统的办公OA环境,在测试的环境中组织了业务人员分模块进行日常工作中各种场景的测试,整个过程花了3个月的时间。)
【操作步骤】
1、先关闭数据库和服务器的监听
2、设置好环境变量,然后运行./runlnstaller
安装ORACLE11.2.0.3选择第二项,这里是升级所以选项第三项;
选择数据库的语言,国内记得加上中文
这里按照设定好的环境变量显示路径。
选择要升级的数据库,这台主机上面安装了两个数据库。
设置并行度,提醒升级之前需要进行备份;
选择移动文件的位置,便于后续的管理工作;
再核对一遍数据库名称、版本、路径;
时刻观察数据库的输出信息,看是否有报错,整个过程大约需要40分钟的时间。
【检查工作】
1、检查升级过程的报错信息;
2、检查数据库的各组件是否成功升级,脚本:SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;
3、以上是数据库层面的检查工作,但是升级算不算成功主要还是看应用和业务方面的反馈情况;