Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10202485
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: Oracle

2011-12-27 13:25:56


RedHat 5.4 Oracle RAC 数据库 从10.2.0.1升级到 10.2.0.4
[日期:2011-05-15] 来源:Linux社区  作者:tianlesoftware
 
 
之前安装的是两个节点的RAC 平台。 数据库版本是10.2.0.1. 这个实验的目的就是将这个数据库版本从10.2.0.1 升级到 10.2.0.4.  升级包可以从Oracle metalink上进行下载,这个下载需要Oracle 付费的帐号。 网络可能也有资源下载。 10.2.0.4的patch number 是:p6810189。
 
两个节点的RAC 安装,参考:
 

RedHat 5.4 + ASM + RAW+ Oracle 10g RAC 安装文档
 
 
升级过程和单节点的升级差不多。 10g 单节点的升级参考Blog:
 
Oracle 10g upgrade from 10.2.0.1 to 10.2.0.4
 
 
RAC 环境下的升级分三步。 这个在patch 包里的readme 文档里有详细的说明。
 
1. 升级clusterware  -- > 升级包中安装程序里选择CRS_HOME后安装
 
2. 升级数据库软件  -- >升级包中安装程序里选择ORACLE_HOME后安装
 
3. 升级实例    -- > 可以使用脚本 或者直接运行DBUA 实现, 如果用脚本,参考单节点的升级
 
RAC 的升级分滚动升级升级和非滚动升级。
 
滚动升级就是每次升级一个节点。
 
非滚动就是一次升级所有节点。
 
这个patch包的readme文档也有说明。这次升级用的是非滚动升级。 即一次性搞定所有节点。
 
注意:
 
如果是生产库,在升级之前做好备份。 备份数据库(如:RMAN),备份ORA_CRS_HOME 目录,备份ORACLE_HOME目录。 虽然很少会出现问题,但是如果出现问题,谁来为我们的错误买单,所以作为一个DBA 要铭记于心的就是备份。
 
一.  从客户端查看现在的版本
 
1.1 修改tnsnames.Ora 文件,增加一下内容:
 
RAC =
 
  (DESCRIPTION =
 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 110.853.10.1)(PORT = 1521))
 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.85.10.2)(PORT = 1521))
 
      (LOAD_BALANCE=YES)
 
      (
 
CONNECT_DATA=
 
 (SERVER=DEDICATED)
 
 (SERVICE_NAME=ORCL)
 
 (
 
   FAILOVER_MODE=
 
  (TYPE=session)
 
  (METHOD=basic)
 
  (RETRIES=180)
 
  (DELAY=5)
 
 )
 
)
 
)
 
1.2  客户端用sqlplus 连接数据库, 查看数据库版本信息
 
C:\Users\Administrator.DavidDai>sqlplus /nolog
 
SQL*Plus: Release 11.2.0.1.0 Production on 星期三 9月 15 16:32:47 2010
 
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
 
SQL> conn as sysdba;
 
已连接。
 
SQL> select instance_name from V$instance;
 
INSTANCE_NAME
 
--------------------------------
 
orcl2
 
SQL> select * from v$version;
 
BANNER
 
--------------------------------------------------------------------------------
 
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
 
PL/SQL Release 10.2.0.1.0 - Production
 
CORE    10.2.0.1.0      Production
 
TNS for Linux: Version 10.2.0.1.0 - Production
 
NLSRTL Version 10.2.0.1.0 - Production
 
SQL>
 
查看版本其实没必要这么复杂,这里是额外的演示一下客户端如何连接RAC. 
 
二. 升级Clusterware 软件
 
2.1 将升级包mout到linux系统
 
用root用户登陆系统,执行如下命令:
 
mount -o username=administrator,password=12345678 //10.85.10.80/Software /mnt
 
2.2 停止相关的进程
 
2.2.1每个节点分别停止 EM和 isqlplus
 
[oracle@rac1 bin]$ emctl stop dbconsole
 
[oracle@rac1 bin]$ isqlplusctl stop
 
2.2.2  停止相关进程
 
这个可以用srvctl 命令来一个一个进行,也可以用crs_stop -all 进行。
 
这部分内容参考Blog:
 
Oracle RAC 启动与关闭
 
 
 
 

[oracle@rac1 bin]$ crs_stat -t
 
Name           Type           Target    State     Host
 
------------------------------------------------------------
 
ora.orcl.db    application    OFFLINE   OFFLINE
 
ora....oltp.cs application    OFFLINE   OFFLINE
 
ora....cl1.srv application    OFFLINE   OFFLINE
 
ora....cl2.srv application    OFFLINE   OFFLINE
 
ora....l1.inst application    OFFLINE   OFFLINE
 
ora....l2.inst application    OFFLINE   OFFLINE
 
ora....SM2.asm application    OFFLINE   OFFLINE
 
ora....C1.lsnr application    OFFLINE   OFFLINE
 
ora.rac1.gsd   application    OFFLINE   OFFLINE
 
ora.rac1.ons   application    OFFLINE   OFFLINE
 
ora.rac1.vip   application    OFFLINE   OFFLINE
 
ora....SM1.asm application    OFFLINE   OFFLINE
 
ora....C2.lsnr application    OFFLINE   OFFLINE
 
ora.rac2.gsd   application    OFFLINE   OFFLINE
 
ora.rac2.ons   application    OFFLINE   OFFLINE
 
ora.rac2.vip   application    OFFLINE   OFFLINE
 

2.2.3 停止每个节点上的CRS
 
[root@rac1 ~]# /u01/app/oracle/product/crs/bin/crsctl stop crs
 
2.3 用Xmanger 工具运行runInstaller
 
2.3.1 先在Xmanager 工具里面指定DISPLAY 变量
 
[oracle@rac1 ~]$ export DISPLAY=10.85.10.80:0.0
 

2.3.2 进行升级包的目录,运行runInstaller
 
[oracle@rac1 p6810189_10204_Linux-x86]$ pwd
 
/mnt/OracleSoftware/p6810189_10204_Linux-x86
 
[oracle@rac1 p6810189_10204_Linux-x86]$ cd Disk1/
 
[oracle@rac1 Disk1]$ ls
 
10204_buglist.htm  install  patch_note.htm  response  runInstaller  stage
 
[oracle@rac1 Disk1]$ ./runInstaller -ignoreSysPreReqs
 
-- 因为我用的是RedHat 5,所以忽略了版本检查
 
2.3.3 在可视化的安装窗口选择CRS_HOME。看清楚,不要选错了。然后一下步进行安装。
 
2.3.4 安装结束会提示运行2个脚本
 
The installer has detected that your Cluster Ready Services (CRS) installation is shared amongst the following nodes:
 
rac1
 
rac2
 
Because of the shared nature of this installation, you cannot perform a rolling upgrade of your CRS software.
 
To complete the installation of this patchset, you must perform the following tasks:
 
1.  On each node, do the following:
 
a.  Log in as the root user.
 
b.  As root, shutdown the CRS daemons on the node
 
using the following command:
 
/u01/app/oracle/product/crs/bin/crsctl stop crs
 
Repeat this step until the CRS daemons on all the nodes are shutdown.
 
2.  After all the CRS daemons on all the nodes are shutdown,
 
run the shell script located at:
 
/u01/app/oracle/product/crs/install/root102.sh
 
This script will automatically start the CRS daemons on the
 
patched node upon completion.
 
3.  Wait until the script finishes and then proceed to the
 
next node and repeat step 2.
 
[root@rac1 ~]# /u01/app/oracle/product/crs/bin/crsctl stop crs
 
Stopping resources.
 
Successfully stopped CRS resources
 
Stopping CSSD.
 
Shutting down CSS daemon.
 
Shutdown request successfully issued.
 
[root@rac1 ~]# /u01/app/oracle/product/crs/install/root102.sh
 
Creating pre-patch directory for saving pre-patch clusterware files
 
Completed patching clusterware files to /u01/app/oracle/product/crs
 
Relinking some shared libraries.
 
Relinking of patched files is complete.
 
WARNING: directory '/u01/app/oracle/product' is not owned by root
 
WARNING: directory '/u01/app/oracle' is not owned by root
 
WARNING: directory '/u01/app' is not owned by root
 
WARNING: directory '/u01' is not owned by root
 
Preparing to recopy patched init and RC scripts.
 
Recopying init and RC scripts.
 
Startup will be queued to init within 30 seconds.
 
Starting up the CRS daemons.
 
Waiting for the patched CRS daemons to start.
 
This may take a while on some systems.
 
.
 
.
 
10204 patch successfully applied.
 
clscfg: EXISTING configuration version 3 detected.
 
clscfg: version 3 is 10G Release 2.
 
Successfully accumulated necessary OCR keys.
 
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
 
node :
 
node 2: rac1 rac1-priv rac1
 
Creating OCR keys for user 'root', privgrp 'root'..
 
Operation successful.
 
clscfg -upgrade completed successfully
 
三. 升级数据库软件
 
上升级clusterware的时候,升级结束的时候会启动CRS服务。 我们在升级数据库的时候需要关闭这些服务。
 
3.1 停止相关进程
 
[oracle@rac1 bin]$ crs_stop -all
 
[oracle@rac1 bin]$ crs_stat -t
 
Name           Type           Target    State     Host
 
------------------------------------------------------------
 
ora.orcl.db    application    ONLINE    OFFLINE
 
ora....oltp.cs application    ONLINE    OFFLINE
 
ora....cl1.srv application    ONLINE    OFFLINE
 
ora....cl2.srv application    ONLINE    OFFLINE
 
ora....l1.inst application    OFFLINE   OFFLINE
 
ora....l2.inst application    OFFLINE   OFFLINE
 
ora....SM2.asm application    OFFLINE   OFFLINE
 
ora....C1.lsnr application    OFFLINE   OFFLINE
 
ora.rac1.gsd   application    OFFLINE   OFFLINE
 
ora.rac1.ons   application    OFFLINE   OFFLINE
 
ora.rac1.vip   application    OFFLINE   OFFLINE
 
ora....SM1.asm application    OFFLINE   OFFLINE
 
ora....C2.lsnr application    OFFLINE   OFFLINE
 
ora.rac2.gsd   application    OFFLINE   OFFLINE
 
ora.rac2.ons   application    OFFLINE   OFFLINE
 
ora.rac2.vip   application    OFFLINE   OFFLINE
 
3.2 用Xmanger 工具运行runInstaller
 
3.2.1 先在Xmanager 工具里面指定DISPLAY 变量
 
[oracle@rac1 ~]$ export DISPLAY=10.85.10.80:0.0
 
3.2.2 进行升级包的目录,运行runInstaller
 
在可视化的安装窗口选择ORACLE_HOME。看清楚,不要选错了。然后一下步进行安装。
 
3.2.3  安装结束会提示用root用户在所有节点上运行一个脚本
 
/u01/app/oracle/product/10.2.0/db_1/root.sh
 
[root@rac1 ~]# /u01/app/oracle/product/10.2.0/db_1/root.sh
 
Running Oracle10 root.sh script...
 
The following environment variables are set as:
 
ORACLE_OWNER= oracle
 
ORACLE_HOME=  /u01/app/oracle/product/10.2.0/db_1
 
Enter the full pathname of the local bin directory: [/usr/local/bin]:
 
The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n)
 
[n]: y
 
Copying dbhome to /usr/local/bin ...
 
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
 
[n]: y
 
Copying oraenv to /usr/local/bin ...
 
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
 
[n]: y
 
Copying coraenv to /usr/local/bin ...
 
Entries will be added to the /etc/oratab file as needed by
 
Database Configuration Assistant when a database is created
 
Finished running generic part of root.sh script.
 
Now product-specific root actions will be performed.
 
四. 升级实例
 
升级实例有两种方法:
 
1. DBUA
 
2. 手动执行脚本
 
4.1 用脚本升级
 
After you install the patch set, you must perform the following steps on every database associated with the upgraded Oracle home:
 

Note:
 
If you do not run the catupgrd.sql script as described in this section and you start up a database for normal operation, then ORA-01092: ORACLE instance terminated. Disconnection forced errors will occur and the error ORA-39700: database must be opened with UPGRADE option will be in the alert log.
 
Log in as the Oracle software owner user.
 
For Oracle RAC installations, start listener on each node of the cluster as follows:
 
$ srvctl start listener -n node
 
If you are using Automatic Storage Management, start the Automatic Storage Management instance.
 
For Oracle RAC installations:
 
Use SQL*Plus to log in to the database as the SYS user with SYSDBA privileges:
 
   $ sqlplus /nolog
 
SQL> CONNECT SYS AS SYSDBA
 
Enter password: SYS_password
 
SQL> STARTUP NOMOUNT
 
Set the CLUSTER_DATABASE initialization parameter to FALSE:
 
   SQL> ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=spfile;
 
Shut down the database:
 
   SQL> SHUTDOWN
 
Enter the following SQL*Plus commands:
 
SQL> STARTUP UPGRADE
 
SQL> SPOOL patch.log
 
SQL> @?/rdbms/admin/catupgrd.sql
 
SQL> SPOOL OFF
 
Review the patch.log file for errors and inspect the list of components that is displayed at the end of catupgrd.sql script.
 
This list provides the version and status of each SERVER component in the database.
 
If necessary, rerun the catupgrd.sql script after correcting any problems.
 
Restart the database:
 
SQL> SHUTDOWN IMMEDIATE
 
SQL> STARTUP
 
Run the utlrp.sql script to recompile all invalid PL/SQL packages now instead of when the packages are accessed for the first time. This step is optional but recommended.
 
SQL> @?/rdbms/admin/utlrp.sql
 
Note:
 
When the 10.2.0.4 patch set is applied to an Oracle Database 10g Standard Edition database, there may be 54 invalid objects after the utlrp.sql script runs. These objects belong to the unsupported components and do not affect the database operation.
 
Ignore any messages indicating that the database contains invalid recycle bin objects similar to the following:
 
BIN$4lzljWIt9gfgMFeM2hVSoA==$0
 
Run the following command to check the status of all the components after the upgrade:
 
SQL> select comp_name, version, status from sys.dba_registry;
 
In the output of the preceding command, the status of all the components should be VALID for a successful upgrade.
 
If you are using the Oracle Recovery Manager catalog, enter the following command:
 
$ rman catalog
 
For Oracle RAC installations:
 
Set the CLUSTER_DATABASE initialization parameter to TRUE:
 
 SQL> ALTER SYSTEM SET CLUSTER_DATABASE=TRUE SCOPE=spfile;
 
Restart the database:
 
SQL> SHUTDOWN
 
SQL> STARTUP
 
Start any database services that you want to use:
 
$ srvctl start service -d db_name -s service_name
 
To configure and secure Enterprise Manager follow these steps:
 
Ensure the database and Listener are operational.
 
In the case of a single instance, execute
 
emca -upgrade db
 
In the case of Oracle Real Application Clusters (RAC), execute
 
emca -upgrade db -cluster
 
4.2 用DBUA升级
 
使用DBUA工具的话,会把升级的一些代码封装起来,我们只需要在界面上点点就可以了。所以比较方便。在一个节点运行DBUA即可。 会同时升级2个节点的实例。
 
4.2.1 启动相关的进程
 
[oracle@rac1 bin]$ crs_start -all
 
4.2.2 运行dbua
 
[oracle@rac1 ~]$ export DISPLAY=192.168.1.111:0.0
 
[oracle@rac1 ~]$ dbua
 
说明:
 
(1)启动dbua工具后,会提示选择升级ASM还是数据库,这里是从10.2.0.1的基础上升级,不需要升级ASM,直接跳过,如低于此版本而是必须先升级ASM。
 
(2)运行过程中有选项是否编译无效的对象。默认勾上。在升级之后会自己编译无效对象。
 
(3)运行需要一个小时左右。
 
安装结束后会提示安装日志存放目录:
 
/u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/dbua/orcl/upgrade/
 
五. 验证
 
我们还是从客户端来验证,监听之前已经配好了。
 
C:\Users\Administrator.DavidDai>sqlplus /nolog
 
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 9月 16 12:18:32 2010
 
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
 
SQL> conn as sysdba;
 
已连接。
 
SQL> select instance_name from V$instance;
 
INSTANCE_NAME
 
--------------------------------
 
orcl2
 
SQL> select * from v$version;
 
BANNER
 
--------------------------------------------------------------------------------
 
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
 
PL/SQL Release 10.2.0.4.0 - Production
 
CORE    10.2.0.4.0      Production
 
TNS for Linux: Version 10.2.0.4.0 - Production
 
NLSRTL Version 10.2.0.4.0 - Production
 
SQL> select comp_name, version, status from sys.dba_registry;
 
COMP_NAME                                          VERSION              STATUS
 
-------------------------------------------------- -------------------- --------
 
Oracle Enterprise Manager                          10.2.0.4.0           VALID
 
Spatial                                            10.2.0.4.0           VALID
 
Oracle interMedia                                  10.2.0.4.0           VALID
 
OLAP Catalog                                       10.2.0.4.0           VALID
 
Oracle XML Database                                10.2.0.4.0           VALID
 
Oracle Text                                        10.2.0.4.0           VALID
 
Oracle Expression Filter                           10.2.0.4.0           VALID
 
Oracle Rule Manager                                10.2.0.4.0           VALID
 
Oracle Workspace Manager                           10.2.0.4.3           VALID
 
Oracle Data Mining                                 10.2.0.4.0           VALID
 
Oracle Database Catalog Views                      10.2.0.4.0           VALID
 
COMP_NAME                                          VERSION              STATUS
 
-------------------------------------------------- -------------------- --------
 
Oracle Database Packages and Types                 10.2.0.4.0           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
 
OLAP Analytic Workspace                            10.2.0.4.0           VALID
 
Oracle OLAP API                                    10.2.0.4.0           VALID
 
Oracle Real Application Clusters                   10.2.0.4.0           VALID
 
已选择18行。
 
顺便验证一下RAC的性能,我们看到现在连的是oracl2. 我们上服务器,把这个实例停掉。在查看连哪个实例。
 
[oracle@rac1 upgrade]$ export ORACLE_SID=orcl2
 
[oracle@rac1 upgrade]$ sqlplus /nolog
 
SQL*Plus: Release 10.2.0.4.0 - Production on Thu Sep 16 00:48:47 2010
 
Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
 
SQL> conn / as sysdba;
 
Connected.
 
SQL> shutdown immediate
 
Database closed.
 
Database dismounted.
 
ORACLE instance shut down.
 
SQL>
 
我们在客户端在查询一下看看:
 
SQL> select instance_name from V$instance;
 
INSTANCE_NAME
 
--------------------------------
 
orcl1
 
注意:这里自动切换到了orcl1 实例。 这个就体现RAC的价值,当一个实例宕掉后,不会影响系统的运行。
 
至此,RAC的升级结束。
 

本篇文章来源于 Linux公社网站()  原文链接:
阅读(1246) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~