欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle升级(10.2.0.1-10.2.0.3)

程序员文章站 2022-05-02 19:25:25
...

一般情况下我们在安装Oracle软件以后,创建数据库之前就会为Oracle打上补丁,当然没打也没关系,接下里就会介绍Oracle在建库以后

一般情况下我们在安装Oracle软件以后,创建数据库之前就会为Oracle打上补丁,当然没打也没关系,接下里就会介绍Oracle在建库以后的升级过程,DB:Oracle 10G R2 10.2.0.1;OS:Red Hat Linux as 4。Oracle安装参考:

一. 升级前的准备

首先下载并上传补丁包到数据库服务器上,因为我试验使用的是Linux下32位的Oracle 10G R2 10.2.0.1,所以需要的补丁为p5337014_10203_LINUX.zip。补丁直接到Oracle官网上去下,注意对应的版本就可以了。

1. 解压补丁包,得到Disk1文件夹

2. 备份数据库及Oracle相关目录,必须是全备。推荐冷备,一旦升级出现问题恢复也比较快。

二. 升级Oracle软件

1. 安装补丁包,需要用到图形终端。VNC使用参考:

2. 根据一步一步执行,知道提示以root身份运行root.sh脚本

3. 以root身份运行root.sh脚本,,完成后Oracle软件升级完成。

三. 升级数据库

Oracle软件升级完成以后先不忙启动数据库,否则会报如下错误:

ORA-00704: bootstrap process failure

ORA-39700: database must be opened with UPGRADE option

Error 704 happened during db open, shutting down database

USER: terminating instance due to error 704

Instance terminated by USER, pid = 7819

ORA-1092 signalled during: ALTER DATABASE OPEN...

升级数据库有两种方式:DBUA图形化方式及手工升级方式,推荐使用手工升级方式。DBUA图形化方式操作简单,只需按照提示一步一步往下做就可以了,需要注意如果要升级的数据库没有在列表中,需修改/etc/oratab添加相应的SID,升级过程作要勾选“升级完成后编译无效对象”选项。如果在升级之前没有备份,可以在使用DBUA的时候选择备份数据库,DBUA执行的是冷备,需要保留足够的空间。按照提示执行完成以后没有报错就可以finish了。

手工方式先使用echo $ORACLE_SID是否为需要升级的数据库,不是则使用export $ORACLE_SID=sid修改,然后以DBA身份登录SQLPLUS,执行如下操作:

SQL> startup upgrade

SQL> spool /u01/upgrade.log

SQL> @?/rdbms/admin/catupgrd.sql --需要等待较长时间

如果这一步顺利执行,那么数据升级工作已经完成一大半了,接下来重启数据库,编译无效对象。因为catupgrd.sql可能会造成一些数据对象无效,通过语句:select count(1) from dba_objects where status='INVALID'查询是否存在有无效的对象,有则运行utlrp.sql编译无效的对象。

SQL> shutdown immediate;

SQL> startup

SQL> @?/rdbms/admin/utlrp.sql --需要等待较长时间

编译完成以后查询一下表空间,用户,用户对象等信息,如果都没有问题,OK,我们的数据库升级算是成功了,接下来就备份一次数据库,然后打开应用。我们在查询对象的时候可能出现一些名字类似BIN$BD34RX+6TCJEK54334w==$0的对象,这些是保存在回收站里面的删除对象,可以忽略。

Oracle升级(10.2.0.1-10.2.0.3)