Oracle数据库可以说是在中国的企业和单位使用最多的数据库,但目前Oracle最新版本11gR2使用的还是偏少,大多是10g,也有很多还在用9i。本文主要是介绍Oracle 10.2.0.1升级到Oracle 10.2.0.4的过程,如果没有数据的话,一般都会直接卸载掉,从新安装Oracle或者直接打P4补丁,但是如果数据库中有很多的数据,可以选择备份数据,升级后导入数据。现在主要是介绍直接升级包含数据的数据库的过程(为了以防万一,先做备份还是非常必要的)。
一、升级环境
操作系统:Windows Server 2003 32位。
数据库:Oracle 10.2.0.1
升级补丁包:Oracle 10.2.0.4
数据库存储:NTFS 文件系统
二、准备工作
1、关闭数据库
SQL> CONNECTSYS AS SYSDBA
Enter password: SYS_password
SQL> SHUTDOWN
2、停止所有服务,关闭所有可能访问数据库的工具
3、备份数据
三升级数据库
1、安装升级包软件
2、升级包安装完成后、运行脚本升级数据库
如果只安装了升级包,没有进行数据库字典信息升级,启动数据库将报ORA-01092 ORACLE 例程终止。强行断开连接。(这和Oracle9i有点不同,对Oracle9i做了升级后,不升级数据库字典信息,仍然可以启动数据库使用,但对exp/imp,RMAN之类的工具不能使用)。
- 运行数据库预升级检查
- Conn / as sysdba
STARTUP UPGRADE
SPOOL upgrade_info.log
@?/rdbms/admin/utlu102i.sql
SPOOL OFF
- 进行数据库字典信息升级
- 启动监听器:lsnrctl start
sqlplus /NOLOG
SQL> CONNECT / AS SYSDBA
STARTUP UPGRADE
SQL> SPOOL patch.log
SQL> @ORACLE_BASEORACLE_HOME
dbmsadmincatupgrd.sql
SQL> SPOOL OFF - 检查patch.log 文件,如果有问题,重新运行catupgrd.sql
- 重启动数据库:
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
- 运行utlrp.sql脚本重新编译无效PL/SQL包
SQL> @ORACLE_BASEORACLE_HOME
dbmsadminutlrp.sql
- 运行命令检查所有组件是否升级成功:
SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;
- 所有输出为VALID表示升级成功