将oracle10g 升级至10.2.0.4

一、单实例环境,全时长一个半钟多。 详细图文说明到这下载

1、停止所有oracle相关进程。

emctl stop dbconsole

isqlplusctl stop

lsnrctl stop

sqlplus /nolog

sql> conn / as sysdba

Connected to an idle instance.

sql>shutdown

 

然后,冷备份下数据库 cp

 

2、google搜索下载安装p6810189_10204_Linux-x86

[oracle@linux~] cd Disk1

[oracle@linux Disk1~]$ ./runInstaller –jreLoc /opt/oracle/jdk1.6.0_18/jre/

 备注:因为环境关系,我指定使用了最新的jdk1.6.0.18,如您的环境与我不同。直接执行 ./runInstaller即可。

 

打开一个终端窗口:

[oracle@linux ~] su

口令:

执行提示的脚本,本例中:[root@linux ~]# /opt/oracle/product/10.2/db_1/root.sh完成后关闭终端,返回安装界面,确定。如图

 

 

Ok,先不要启动数据库,补丁安装完成,还需要升级数据库才行。

 

重要:升级数据库,按说明文档,安装完成后,Postinstallation Tasks

1.使用DBUA升级(图型化界面,操作简单,据传出错机率高)

2.手工升级(字符界面,操作稍复制,据传出错机率低)

 

DBUA方式:

oracle用户登陆

打开终端,设置好环境变量$ORACLE_HOME$ORACLE_SID$PATH

执行dbua

[oracle@linux ~]$ dbua

看到欢迎界面,如图见文档

 

下一步,按照提示选择数据库(如果你要操作的数据库不在列表中,手工修改/etc/oratab添加SID),注意"升级完成后编译无效对象"的选项,建议选中,接着下一步。如果在操作之前没有备份数据库,可以在此选择备份。dbua执行的是冷备,需要估计好磁盘剩余空间。点击下一步,oracle开始升级操作,如图

如果运气好即没碰上bug,也没遭遇错误,那就可以finish了,如图

 

升级完成,Oracle自动打开数据库,赶紧连接进去看看数据是否还在:)

 

手工升级:

1、以oracle用户登陆

打开终端,设置好环境变量$ORACLE_HOME$ORACLE_SID$PATH

[oracle@jsslinux dbs]$ export ORACLE_SID=stu

[oracle@jsslinux dbs]$ oracle@linux-oracle10g:/> sqlplus /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on Tue Mar 9 15:14:18 2010

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

SQL> conn / as sysdba;

Connected.

 

2、以升级模式启动数据库

SQL> startup upgrade

ORACLE 例程已经启动。

数据库装载完毕。

数据库已经打开。

3、重建数据字典,另:如果有归档的话,强烈建议首先关闭归档

SQL> SPOOL path.log (路径默认在oracle主目录下  /opt/oracle/,这个日志会有点大30M,可以查看.

SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql

...安装过程图省略

SQL> SPOOL OFF

如果这一步顺利执行,升级已经完成了大半。(这里要等待比较长一段时间)

 如图

4、执行完重建数据字典,重启数据库

SQL> SHUTDOWN IMMEDIATE

SQL> STARTUP

5、编译无效对象

由于catupgrd.sql重建过程中可能造成一些对象失效,我们需要运行utlrp.sql重新编译PL/SQL packages (知道utlrp.sql功能了吧,黑黑,有事没事都可以执行一下)

@?/rdbms/admin/utlrp.sql

耐心等待,直至完毕,出现sql>

6、然后运行下面的命令来检查升级之后,所有组件的状态:

SQL> select comp_name, version, status from sys.dba_registry;

显示值为VALID,则成功完成升级。如图

 

 

另:最好查看下。

SQL> select tablespace_name,status from dba_tablespaces;

--表空间都在

SQL> select username from dba_users;

--用户都在

SQL> select object_name from dba_objects where owner='SCOTT';

--用户对象都在

注:dba_objects视图中也许会有一些类似BIN$4lzljWIt9gfgMFeM2hVSoA==$0的对象存在,这是10g后提供的新功能,对象删除后并非真正被删,而是扔到回收站,这些对象就是回收站的对象,不用管它。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值