Linux(RHEL5)下ORACLE 10g版本升级(10.2.0.1.0-10.2.0.5.0)操作文档

 
 
 

系统环境:RHEL5

文档版本V1.0.1

整理Kevin.Lu

更新时间2011-08-27

备注DBA专用

 

 

 

 

 

 

 

目录

Linux(RHEL5)下ORACLE_10g_10.2.0.1.0升级到10.2.0.5.0操作文档(超给力版本)... 1

目录... 2

1. 文档更新记录... 3

2. 文档说明... 3

3. 升级前,需要做的准备工作:... 4

3.1.1. 临时增加shared pool和java pool的大小... 4

3.1.2. 备份oracle软件,备份数据库... 4

3.1.3. 停掉监听,OEM,ISQLPLUS等... 4

3.1.4. 上传补丁包... 4

4. 数据库软件产品的升级:... 5

4.1.1. 打开控制X server访问权限... 5

4.1.2. 执行runInstaller,开启安装OUI界面... 5

5. 进行数据库的升级操作:... 11

5.1.1. 开始升级及更新数据字典... 11

5.1.2. 重编译失效对象... 12

5.1.3. 察看数据库安装的组件、版本、状态: 12

5.1.4. 开启监听,OEM及ISQLPLUS. 12

6. 小结... 13

6.1.1. 全新安装的情况... 13

6.1.2. 非全新安装的情况... 13

6.1.3. 升级失败,尝试回退机制... 14

 

 

 

 

 

 

 

 

 

 

 

 

1. 文档更新记录

时间

修改人

版本号

修改说明

2011.08.20

Kevin.Lu

1.0.0

建立文档

2011.08.27

Kevin.Lu

1.0.1

梳理文档

2. 文档说明

本文档规范oracle10.2.0.1.0升级到10.2.0.5.0版本的升级流程及操作,供DBA人员在进行数据库版本升级的时参考使用。

 

 

 

 

 

升级操作的具体步骤如下:

3. 升级前,需要做的准备工作: 3.1.1. 临时增加shared pool和java pool的大小

确保参数shared_pool_size和java_pool_size至少为150M大小,保证catupgrd.sql(10g)升级脚本运行正常(9i版本中是catpatch.sql)

[root@10gpri ~]# su – oracle

[oracle@10gpri Disk1]$ sqlplus / as sysdba

SQL>startup

SQL>alter system set shared_pool_size='150M' scope=spfile;

SQL> alter system set java_pool_size='150M' scope=spfile;

SQL>shutdown immediate

3.1.2. 备份oracle软件,备份数据库

[oracle@10gpri Disk1]$cp -r $ORACLE_HOME/product/10.2.0/db_1 /bk/oracle_product_back

[oracle@10gpri Disk1]$ tar -cvfz /bk/oracle_backup.tar.gz $ORACLE_BASE /oradata/ora10g/*

3.1.3. 停掉监听,OEM,ISQLPLUS等

[oracle@10gpri ~]$ lsnrctl stop

[oracle@10gpri ~]$ emctl stop dbconsole

[oracle@10gpri ~]$ isqlplusctl stop

3.1.4. 上传补丁包

将p8202632_10205_LINUX.zip上传到/bk并解压:

[oracle@10gpri bk]$ ls Disk1/

install patch_note.htm response runInstaller stage

[oracle@10gpri Disk1]$ export LANG=en

4. 数据库软件产品的升级: 4.1.1. 打开控制X server访问权限

[root@10gpri ~]# xhost +

access control disabled, clients can connect from any host

[root@10gpri ~]# su – oracle

4.1.2. 执行runInstaller,开启安装OUI界面

[oracle@10gpri Disk1]$ ./runInstaller

Starting Oracle Universal Installer...

Checking installer requirements...

Checking operating system version: must be redhat-3, SuSE-9, SuSE-10, redhat-4, redhat-5, redhat-6, UnitedLinux-1.0, asianux-1, asianux-2, asianux-3, enterprise-4, enterprise-5 or SuSE-11 Passed

All installer requirements met.

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2011-08-26_10-34-03AM. Please wait ...[oracle@10gpri Disk1]$ Oracle Universal Installer, Version 10.2.0.5.0 Production

Copyright (C) 1999, 2010, Oracle. All rights reserved.

出现OUI图形界面如下:

 

点击 ”Next”,进入选择oracle_home界面:

 

只有一个数据库的话默认即可,接着点击 “Next”,出现如下对话框:

 

由于之前安装过数据库软件,所以这里提示安装目的目录非空,是否覆盖,点击”Yes”即可:

填写一个邮箱地址,取消第二项的对钩,继续点击 ”Next”,出现下图:

 

打上对钩,点击 ”Continue”,出现下图示:

 

检查系统参数配置通过,点击 “Next”,如下:

 

点击 “Install”按钮,开始安装升级数据库软件,过程如下图所示:

 

安装完成后,会出现如下一个对话框:

 

按照上面对话框的要求,打开另一个终端,以root身份登录,执行脚本/u01/oracle/product/10.2.0/db_1/root.sh,该脚本会提示是否覆盖已存在的目录,默认为否即可。

再回到刚才的终端,点击”OK”按钮,弹出如下界面:

此时提示版本升级已经成功,点击 ”Exit”按钮,退出即可。

至此,数据库软件产品升级已经完成。

5. 进行数据库的升级操作: 5.1.1. 开始升级及更新数据字典

[oracle@10gpri Disk1]$ sqlplus / as sysdba

SQL> startup upgrade;

SQL> select tablespace_name, sum(bytes)/(1024*1024) "Free M" from dba_free_space where tablespace_name = 'SYSTEM' group by tablespace_name;

TABLESPACE_NAME Free M

------------------------------ ----------

SYSTEM 10.375

SQL> SPOOL patch.log

SQL>@?/rdbms/admin/catupgrd.sql //此脚本执行时间大概需要20分钟左右

Total Upgrade Time: 00:24:46 //设置JAVA_POOL_SIZE为150M时的升级所用时间

Total Upgrade Time: 01:06:39 //不设置JAVA_POOL_SIZE为150M时的升级所用时间,所以,大家一定要记得设置这个参数啊!!

SQL>SPOOL OFF

5.1.2. 重编译失效对象

SQL>shutdown immediate

SQL> startup

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

SQL> @?/rdbms/admin/catalog.sql;

SQL> @?/rdbms/admin/catproc.sql;

5.1.3. 察看数据库安装的组件、版本、状态:

SQL> shutdown immediate;

SQL> startup

SQL> select owner,object_name,subobject_name,object_type,status from dba_objects where status<>'VALID';

SQL> select status from v$instance;

SQL> select * from v$version;

SQL> col comp_name format a30

SQL>col version format a30

SQL>col status format a10

SQL> SELECT comp_name, version, status FROM dba_registry;

SQL>select username from dba_users;

SQL> quit

5.1.4. 开启监听,OEM及ISQLPLUS

[oracle@10gpri Disk1]$ emctl start dbconsole

[oracle@10gpri Disk1]$ isqlplusctl start

[oracle@10gpri Disk1]$ lsnrctl start

http://ip:1158/em (IE方式访问OEM)

http://ip:5560/isqlplus (IE方式访问isqlplus)

http://ip:5560/isqlplus/dba (IE方式访问isqlplus dba)

6. 小结

以上升级操作可以总结为以下几个要点:

6.1.1. 全新安装的情况

如果是全新安装的数据库,直接运行补丁包就可以了

p8202632_10205_LINUX.zip

./runInstaller

6.1.2. 非全新安装的情况

如果是已经创建了数据库,并且有应用在上面,则先停止相关应用

再按以下步骤执行:

0)shutdown 数据库,并停止所有oracle相关的服务和stop listener .

$ isqlplusctl stop

$ emctl stop dbconsole

$ lsnrctl stop

注意: 需要停止Distributed Transaction Coordinator服务/iis服务/web publish(www)/;

1)冷备份数据库

2)运行安装补丁程序

3)startup upgrade; lsnrctl start

3.1)修改java_pool_size / large_pool_size=150M

SQL> ALTER SYSTEM SET JAVA_POOL_SIZE=’150M’ SCOPE=spfile;

SQL>spool upgrd.log

4)运行脚本

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

SQL>spool off

5)shutdown immediate

6)startup

7)运行脚本

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

SQL>@?/rdbms/admin/catalog.sql;

SQL>@?/rdbms/admin/catproc.sql;

8)察看数据库安装的组件、版本、状态:

col comp_name format a30

col version format a30

col status format a10

SELECT comp_name, version, status FROM dba_registry;

6.1.3. 升级失败,尝试回退机制

如果升级失败,可以尝试回退机制

SQL>startup downgrade

SQL>spool downgrade.log

SQL>@catdwgrd.sql (10.2.0.1运行的是这个,而10.1降级用的是d92000.sql,即dold_release.sql)

SQL>spool off

SQL>shutdown immediate