在升级clusterware以及database补丁之前,需要将crs以及database主目录进行备份,通过操作系统命令cp将“/home/db/oracle/crs”以及“/home/db/oracle/10g”目录拷贝到其他分区。备份crs以及database主目录的目的在于,一旦升级失败,可以通过将备份的目录强制覆盖过去让操作停留在升级前的状态。
而在升级数据库之前,我们需要在保证数据库停止的状态下通过rman对数据库进行一个冷备操作,具体过程不赘述,下面进行数据库升级操作:
1,停掉副节点crs进程:
[storm02@/home/db/oracle/crs/bin]#./crsctl stop crs
Stopping resources. This could take several minutes.
Successfully stopped CRS resources.
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
2,将主节点数据库启动到nomount状态:
SQL> startup nomount
ORACLE instance started.
Total System Global Area 2.7263E+10 bytes
Fixed Size 2203928 bytes
Variable Size 2761776872 bytes
Database Buffers 2.4495E+10 bytes
Redo Buffers 4259840 bytes
3,更改cluster_database参数,并关闭数据库:
SQL> alter system set cluster_database=false scope=spfile;
System altered.
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
4,启动数据库到upgrade状态下:
SQL> startup upgrade;
ORACLE instance started.
Total System Global Area 2.7263E+10 bytes
Fixed Size 2203928 bytes
Variable Size 2761776872 bytes
Database Buffers 2.4495E+10 bytes
Redo Buffers 4259840 bytes
Database mounted.
Database opened.
5,运行脚本“/home/db/oracle/10g/rdbms/admin/catupgrd.sql”对数据库进行10.2.0.3到10.2.0.4的升级;
6,大约51分钟后升级完毕,请看下图:
7,再次的关闭并打开数据库,运行“/home/db/oracle/10g/rdbms/admin/utlrp.sql“脚本进行升级后的检查:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 2.7263E+10 bytes
Fixed Size 2203928 bytes
Variable Size 2812108520 bytes
Database Buffers 2.4444E+10 bytes
Redo Buffers 4259840 bytes
Database mounted.
Database opened.
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for HPUX: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
可见此时数据库已经成功升级为10.2.0.4版本。
SQL> @/home/db/oracle/10g/rdbms/admin/utlrp.sql
TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN 2009-08-18 01:18:01
DOC> The following PL/SQL block invokes UTL_RECOMP to recompile invalid
DOC> objects in the database. Recompilation time is proportional to the
DOC> number of invalid objects in the database, so this command may take
DOC> a long time to execute on a database with a large number of invalid
DOC> objects.
……………………
……………………
……………………
TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_END 2009-08-18 01:18:22
DOC> The following query reports the number of objects that have compiled
DOC> with errors (objects that compile with errors have status set to 3 in
DOC> obj$). If the number is higher than expected, please examine the error
DOC> messages reported with each object (using SHOW ERRORS) to see if they
DOC> point to system misconfiguration or resource constraints that must be
DOC> fixed before attempting to recompile these objects.
DOC>#
OBJECTS WITH ERRORS
-------------------
0
DOC> The following query reports the number of errors caught during
DOC> recompilation. If this number is non-zero, please query the error
DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors
DOC> are due to misconfiguration or resource constraints that must be
DOC> fixed before objects can compile successfully.
DOC>#
ERRORS DURING RECOMPILATION
---------------------------
0
检查完毕,在升级过程中并没有产生任何错误,说明升级是成功的。
8,重新修改参数并启动数据库进行参数效验:
SQL> alter system set cluster_database=true scope=spfile;
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.
Total System Global Area 2.7263E+10 bytes
Fixed Size 2203928 bytes
Variable Size 2812108520 bytes
Database Buffers 2.4444E+10 bytes
Redo Buffers 4259840 bytes
Database mounted.
Database opened.
SQL> show parameter cluster_database;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean TRUE
cluster_database_instances integer 2
9,停掉主节点上的数据库以及crs进程,准备副节点上数据库的升级工作:
[OFSADB01@/home/db/oracle/crs/bin]#./crsctl stop crs
Stopping resources. This could take several minutes.
Successfully stopped CRS resources.
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
下面进入到意外发生现场。
阅读(2161) | 评论(0) | 转发(0) |