Oracle 10.2.0.1.0 upgrade 10.2.0.4.0

Posted by Vincent on February 23, 2009

简单的升级,大同小异,测试一下,如在生产环境需要做好完全的测试,和准备好回滚保障操作

----

(1) Oracle推荐在升级之前先做一个全库的备份;

(2) 停止所有的Oracle服务

emctl stop dbconsole

isqlplusctl stop

lsnrctl stop

shutdown immediate;

在windows服务管理器中停止类似OracleServiceSID的服务

(3) 运行补丁中的setup.exe,一路next即可

(4) 启动监听器

lsnrctl start

(5) SQL> STARTUP UPGRADE

(6) 升级数据字典
SPOOL /home/oracle/upgrade.log
SQL> @?/rdbms/admin/catupgrd.sql (前提需要配置环境变量) 或
SQL>@f:\oracle\product\10.2.0\db_1/rdbms/admin/catupgrd.sql
SPOOL off

检查升级后各组件状态
@f:\oracle\product\10.2.0\db_1/rdbms/admin/utlu102s.sql

(7) 运行脚本utlrp.sql编译所有invaild的对象

SQL>@?/rdbms/admin/utlrp.sql

执行完毕后执行查询所有重新编译错误
SQL> select * from utl_recomp_errors;
或者
select object_name from dba_objects where status='INVALID';

执行检查:
SQL> select name from v$database确认ORACLE_SID正确,为oral
SQL> show user确认当前使用者为SYS
SQL> select tablespace_name, bytes from dba_data_files对系统表空间大小进行确认。
SQL> @f:\oracle\product\10.2.0\db_1/rdbms/admin/catalog.sql

检查tempfile
select name from v$tempfile

SQL>shutdown immediate
SQL>startup
数据库启动成功
重启监听器,升级成功。

#######################

常见问题:
1. 安装补丁的时候,因为没有找对oracle的所在目录,所以补丁装不上
设置oralce_home = 您的oracle安装目录     oralce_sid = 你的oracle的sid

2. 升级后,ORA-01092:ORACLE instance terminated. Disconnection forced
出现这个ora错误,是数据库升级后需要用upgrade打开

SQL> STARTUP UPGRADESQL> SPOOL patch.logSQL> @?/rdbms/admin/catupgrd.sql
SQL> SPOOL OFF

这样升级了里面的数据字典后才算升级成功,升级后重新启动数据库,然后
编译所有无效的包
SQL> @?/rdbms/admin/utlrp.sql


This work is licensed under a CC A-S 4.0 International License.