OS: RedHat Enterprise Linux AS4 U2 x86_64
Oracle 10.2.0.1
1、检查升级之前,所有组件的名称及状态:
SQL> col comp_name for a45;
SQL> col version for a20;
SQL> col status for a10;
SQL> select comp_name, version, status from sys.dba_registry;
COMP_NAME VERSION STATUS
--------------------------------------------- -------------------- ----------
Oracle Database Catalog Views 10.2.0.1.0 VALID
Oracle Database Packages and Types 10.2.0.1.0 VALID
Oracle Workspace Manager 10.2.0.1.0 VALID
JServer JAVA Virtual Machine 10.2.0.1.0 VALID
Oracle XDK 10.2.0.1.0 VALID
Oracle Database Java Packages 10.2.0.1.0 VALID
Oracle Expression Filter 10.2.0.1.0 VALID
Oracle Data Mining 10.2.0.1.0 VALID
Oracle Text 10.2.0.1.0 VALID
Oracle XML Database 10.2.0.1.0 VALID
Oracle Rules Manager 10.2.0.1.0 VALID
Oracle interMedia 10.2.0.1.0 VALID
OLAP Analytic Workspace 10.2.0.1.0 VALID
Oracle OLAP API 10.2.0.1.0 VALID
OLAP Catalog 10.2.0.1.0 VALID
Spatial 10.2.0.1.0 VALID
Oracle Enterprise Manager 10.2.0.1.0 VALID
17 rows selected.
再查看下当前数据库的表空间,用户,用户对象数量,升级后可供对比。
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
---------------------------------------- --------------------
SYSTEM ONLINE
UNDOTBS1 ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
NNC_DATA01 ONLINE
NNC_DATA02 ONLINE
NNC_DATA03 ONLINE
NNC_INDEX01 ONLINE
NNC_INDEX02 ONLINE
NNC_INDEX03 ONLINE
11 rows selected.
SQL> select count(*) from dba_users;
COUNT(*)
----------
22
SQL> select count(*) from dba_objects where wner='NC56';
COUNT(*)
----------
2589
2、停止所有oracle相关进程。
[oracle@ctoc-erp ~]$ emctl stop dbconsole
TZ set to PRC
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
http://ctoc-erp:1158/em/console/aboutApplication
Stopping Oracle Enterprise Manager 10g Database Control ...
... Stopped.
[oracle@ctoc-erp ~]$ isqlplusctl stop
iSQL*Plus 10.2.0.1.0
Copyright (c) 2003, 2005, Oracle. All rights reserved.
iSQL*Plus instance on port 5560 is not running ...
[oracle@ctoc-erp ~]$ lsnrctl stop
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 03-JUN-2010 09:59:19
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
The command completed successfully
[oracle@ctoc-erp ~]$ sqlplus "sys/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jun 3 09:59:39 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>exit
然后,冷备份下数据库
2、下载安装p6810189_10204_Linux-x86-64.zip
[oracle@ctoc-erp install]$ unzip p6810189_10204_Linux-x86-64.zip
[oracle@ctoc-erp install]$ cd Disk1
[oracle@ctoc-erp Disk1]$ ./runInstaller
升级过程中多了一个Oracle Configuration Manager,如下图,不启用,next。
打开一个终端窗口,执行提示的脚本后关闭终端,返回安装界面,确定。如图:
Ok,先不要启动数据库,补丁安装完成,还需要升级数据库才行。
升级数据库可以分为两种方法:
1.使用DBUA升级(图型化界面,操作简单,据传出错机率高)
2.手工升级(字符界面,操作稍复制,据传出错机率低)
为了省事儿,我选择通过界面方式进行数据库的升级,执行
[oracle@ctoc-erp ~]$ dbua
基本不需要过多操作,直点下一步就是,不过要注意的地方是如果开了归档,最好选择升级期间关闭归档功能,避免不必要的磁盘空间占用
如果之前有备份过数据了,那这一步就不用先择备份了。由于之前我没有做数据库的备份,下面这一步我选择了备份,备份目的地如框中所示:
可以看到upgrading oracle OLAP API出错了,如下图:此时无从选择,点OK。
打开一个sqlplus 进行如下验证:
SQL> col comp_name for a35;
SQL> select comp_name, version, status from sys.dba_registry;
COMP_NAME VERSION STATUS
----------------------------------- -------------------- --------------------
Oracle Database Catalog Views 10.2.0.4.0 VALID
Oracle Database Packages and Types 10.2.0.4.0 VALID
Oracle Workspace Manager 10.2.0.4.3 VALID
JServer JAVA Virtual Machine 10.2.0.4.0 VALID
Oracle XDK 10.2.0.4.0 VALID
Oracle Database Java Packages 10.2.0.4.0 VALID
Oracle Expression Filter 10.2.0.4.0 VALID
Oracle Data Mining 10.2.0.4.0 VALID
Oracle Text 10.2.0.4.0 VALID
Oracle XML Database 10.2.0.4.0 VALID
Oracle Rule Manager 10.2.0.4.0 VALID
Oracle interMedia 10.2.0.4.0 VALID
OLAP Analytic Workspace 10.2.0.4.0 VALID
Oracle OLAP API 10.2.0.4.0 INVALID
OLAP Catalog 10.2.0.4.0 VALID
Spatial 10.2.0.4.0 VALID
Oracle Enterprise Manager 10.2.0.4.0 VALID
17 rows selected.
可以发现:Oracle OLAP API 10.2.0.4.0 INVALID
这个状态是不正常的。网上找了下好象是由于找不到libstdc++.so.5
参考:http://forums.oracle.com/forums/thread.jspa?threadID=829811
安装上compat-libstdc++-33-3.2.3-47.3.x86_64.rpm包后,再运行一次如下语句:
SQL> @?/rdbms/admin/utlrp.sql
再查询一下状态,这次就都是VALID了。
SQL> select comp_name, version, status from sys.dba_registry;
COMP_NAME VERSION STATUS
----------------------------------- -------------------- --------------------
Oracle Database Catalog Views 10.2.0.4.0 VALID
Oracle Database Packages and Types 10.2.0.4.0 VALID
Oracle Workspace Manager 10.2.0.4.3 VALID
JServer JAVA Virtual Machine 10.2.0.4.0 VALID
Oracle XDK 10.2.0.4.0 VALID
Oracle Database Java Packages 10.2.0.4.0 VALID
Oracle Expression Filter 10.2.0.4.0 VALID
Oracle Data Mining 10.2.0.4.0 VALID
Oracle Text 10.2.0.4.0 VALID
Oracle XML Database 10.2.0.4.0 VALID
Oracle Rule Manager 10.2.0.4.0 VALID
Oracle interMedia 10.2.0.4.0 VALID
OLAP Analytic Workspace 10.2.0.4.0 VALID
Oracle OLAP API 10.2.0.4.0 VALID
OLAP Catalog 10.2.0.4.0 VALID
Spatial 10.2.0.4.0 VALID
Oracle Enterprise Manager 10.2.0.4.0 VALID
17 rows selected.
确认一下数据库表空间及用户和对象数量。
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ --------------------
SYSTEM ONLINE
UNDOTBS1 ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
NNC_DATA01 ONLINE
NNC_DATA02 ONLINE
NNC_DATA03 ONLINE
NNC_INDEX01 ONLINE
NNC_INDEX02 ONLINE
NNC_INDEX03 ONLINE
11 rows selected.
SQL> select count(*) from dba_users;
COUNT(*)
----------
23
对比发现,多了一个用户ORACLE_OCM,这个应该跟Oracle Configuration Manager这个相关吧,此处不做详细说明。
SQL> select count(*) from dba_objects where wner='NC56';
COUNT(*)
----------
2589
升级成功。
后记:由于在安装包compat-libstdc++-33.之前没有先执行一次@?/rdbms/admin/utlrp.sql这个脚本,并不能确定问题就是由此引起,不过总体感觉DBUA升级引起错误几率还是挺大的,以后还是用手动升级吧。呵~~
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12045182/viewspace-664325/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12045182/viewspace-664325/