11.2.0.1直接安装的
原ORACLE_HOME:/u01/app/oracle/product/11.2.0.1/db_1
新ORACLE_HOME: /u01/app/oracle/product/11.2.0.4/db_1
1. 下载11.2.0.4 的Patchset文件,只需要其中的第1、2两个就可以,从11.2.0.2开始oracle的patchset都是完整的安装包,可以直接用来安装。
2. 备份DB,rman备份DB就够了,哪些安装目录不需要,因为不会丢失
3. 关闭DB和监听(虽然升级后会手工更新.bash_profile中ORACLE_HOME,新ORACLE_HOME下面sqlplus、lsnrctl等命令显示情况和老ORACLE_HOME下面的sqlplus、lsnrctl显示一样,都是同样的监听和DB信息都来自新ORACLE_HOME,见倒数第二、三张图。不会出现老ORACLE_HOME下的命令不关闭就会出现两实例和监听)
关不关闭DB会有两个影响
一个是下面安装第3张图,关闭DB了会提示找不到DB,不关闭则不会出现提示
一个是下面安装第5张图,关闭DB会有需要create inventory的过程,不关闭则不会出现create inventory的过程
关不关闭监听的影响
关闭也好,不关闭也好,都会出现下面安装第7图重建监听到新ORACLE_HOME目录的情况,基于这样的情况那我们还是关闭监听好了。不重建监听直接把监听文件从原ORACLE_HOME拷贝到新ORACLE_HOME下
4. 安装patchset包,弹出netca窗口时选择cancel,这样就不会自动带出DBUA窗口,见下系列图(安装完毕后发现软件版本和实例版本都更新了,虽然还没有升级实例,见最后一张图)
期间不会出现选择字符集、内存等选项,因为我们相当于仅仅安装一个新版本的oracle软件而已,字符集内存等选项是在创建DB的过程中才会有的,也就是我们选择安装并创建DB才会有字符集内存的选项(具体见下面的图片)
5. 修改oracle的.bash_profile文件中ORACLE_HOME的值,并source应用一下,后面第9步就需要用到新的ORACLE_HOME了
6. 修改/ets/oratab将ORACLE_HOME的值,个人实验情况下,不知道这里为什么这一行直接不见了,个人手工加上去了。
7. 拷贝原$ORACLE_HOME/network/admin/下的监听文件到新$ORACLE_HOME/network/admin/下面
8. 拷贝原$ORACLE_HOME/dbs/下文件到新$ORACLE_HOME/dbs/下
9. 执行(第三个脚本是升级检查脚本,根据结果进行修改)
SQL>startup upgrade;
SQL>SPOOL upgrade_info.log
SQL>@?/rdbms/admin /utlu112i.sql
10.升级INSTANCE(最后一个语句catupgrd.sql就是instance的升级脚本,catupgrd.sql执行完后会shutdown immediate,执行时间估计会超过30分钟,要保留足够的空间,因为之前升级脚本期间会产生大量的归档日志)
SQL>shutdown immediate
SQL>startup upgrade;
SQL>set echo on
SQL>spool/home/oracle/upgrade.log
SQL>set time on;
03:28:37 SQL>@?/rdbms/admin/catupgrd.sql
11.执行以下验证脚本(第二个脚本查看升级耗费多少时间,第三个脚本编译失效对象)
SQL>startup
SQL> @?/rdbms/admin/utlu112s.sql
SQL> @?/rdbms/admin/utlrp.sql
12.整个DB重新收集下统计信息
exec dbms_stats.gather_database_stats(estimate_percent=>null)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30126024/viewspace-2122739/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30126024/viewspace-2122739/