升级Oracle10.2.0.1.0到10.2.0.4.0 for linux


操作如下.

(1) 停止所有的Oracle服务
emctl stop dbconsole
isqlplusctl stop
lsnrctl stop
shutdown immediate;
ps –Af|grep oracle检查是否还有相关进程
(2) Oracle推荐在升级之前先做一个全库的备份;
备份内容包括:Oracle Inventory, Oracle 10g home 和 Oracle 10g Database
找到空闲的分区,拷贝文件进行备份:cp -r /u01/app/oracle/oradata/orcl orcl_bak
(3)安装补丁
启动xterm执行./runInstall,一路Next
切换至root用户执行root.sh
(4) 手工升级
 lsnrctl start   启动监听器
SQL> startup upgrade启动数据库
SQL> SPOOL upgrade_info.log
@$ORACLE_HOME/rdbms/admin/utlu102i.sql    --收集升级信息
SQL> SPOOL OFF保存至文件
 启动监听lsnrctl start
SQL> startup upgrade
SQL> SPOOL patch.log
SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql     --升级脚本[刷新数据字典]
SQL> SPOOL OFF
(5) 重启oracle
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
(6) SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
tips:utlrp.sql脚本可以在数据库运行的状态下执行以编译、数据库中的invalid对象.
oracle建议在对数据库进行迁移、升级、降级后都运行一遍utlrp.sql以编译无效对象。

(7)  SQL> select * from utl_recomp_errors;
未选定行(这里说明没有错误)

查询sys.dba_registry视图,看组件的status是否是valid
SQL> select comp_name, version, status from sys.dba_registry;

--EOF--