操作如下.
(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--