之前整理过一篇Oracle Patch 的文章,参考:
Oracle 补丁体系 及 opatch 工具 介绍
http://blog.csdn.net/tianlesoftware/archive/2010/08/13/5809526.aspx
http://blog.csdn.net/tianlesoftware/archive/2010/08/13/5809526.aspx
关于Oracle Patch 的知识,参考之前的文章。 这篇主要是演示下RAC 平台下Patch 的安装与卸载。
一. Path 安装说明
在metalink 上下了个Path:5689937,在readme 文档里有RAC下的安装方法。
在metalink 上下了个Path:5689937,在readme 文档里有RAC下的安装方法。
1.1 安装Patch
(1). 关闭其中一个节点上的DB实例。
(2). 关闭在第一步操作节点上的nodeapps services:
srvctl stop nodeapps -n
(3). 在第一步操作的节点上应用patch:
进入Patch的目录,然后运行opatch命令,注意加上-local 参数。
cd 5689937
opatch apply -local
(4). 启动该节点的nodeapps 和ASM服务。
srvctl start nodeapps -n
srvctl start asm -n rac1 -i +ASM1
(5). 启动该节点上的DB实例。
srvctl start instance -d sid -i sid1
(6) 在其他节点上,重复以上步骤来安装Patch。
1.2 Patch 安装的后续操作
选择一个节点,执行如下操作即可。 在这个操作期间,用户可以访问数据库。
选择一个节点,执行如下操作即可。 在这个操作期间,用户可以访问数据库。
(1)启动所有实例
(2)在其中一个节点上用SYSDBA 连接并执行catcpu.sql脚本:
cd $ORACLE_HOME/cpu/CPUJan2007 --必须进入这个目录
sqlplus /nolog
sqlplus /nolog
sql> connect /as sysdba
sql> startup
sql> @catcpu.sql
sql> quit
运行完该脚本之后, 注意查看alert log,有无错误信息,并检查有无无效对象。
可以通过如下SQL,来查看无效对象:
sql> select object_name from dba_objects where status= 'INVALID';
sql> select object_name from dba_objects where status= 'INVALID';
如果有无效对象,执行utlrp.sql 来编译这些对象:
cd $oracle_home/rdbms/admin
cd $oracle_home/rdbms/admin
sqlplus /nolog
sql> connect /as sysdba
sql> startup
sql> @utlrp.sql
1.3 Patch 卸载
(1) 在其中一个节点上关闭DB 实例
(2) 在第一步的节点上关闭nodeapps 服务。
srvctl stop nodeapps -n
(1) 在其中一个节点上关闭DB 实例
(2) 在第一步的节点上关闭nodeapps 服务。
srvctl stop nodeapps -n
(3) 回滚Patch,进入Patch 文件的目录,执行命令
cd 5689937
cd 5689937
opatch rollback -id 5689937
如果出现什么错误,对照readme 文档,该文档里有一些常见错误的处理方法。
(4)启动该节点上的nodeapps 和ASM服务
srvctl start nodeapps -n
(5) 启动该节点上的DB实例
(6) 在其他节点上重复上述操作
因为在打patch 期间,每次只对一个实例进行操作,所以DB 还可以对外提供访问。
1.4 Patch卸载的后续操作
在其中一个节点上执行如下操作:
(1)执行如下脚本:
在其中一个节点上执行如下操作:
(1)执行如下脚本:
cd $ORACLE_HOME/cpu/CPUJan2007
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catcpu_rollback.sql
SQL> QUIT
(2)如果在第一步脚本结束时报有无效对象,则执行如下脚本,编译这些无效对象:
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @utlrp.sql
查看无效对象
SQL> SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE STATUS = 'INVALID';
二. RAC 情况
[oracle@rac1 u01]$ sh crs_stat.sh
[oracle@rac1 u01]$ sh crs_stat.sh
Name Target State Host
------------------------------ ---------- --------- -------
ora.dave.dave1.inst ONLINE ONLINE rac1
ora.dave.dave2.inst ONLINE ONLINE rac2
ora.dave.db ONLINE ONLINE rac2
ora.dave.taf.cs ONLINE ONLINE rac2
ora.dave.taf.dave1.srv ONLINE ONLINE rac1
ora.dave.taf.dave2.srv ONLINE ONLINE rac2
ora.rac1.ASM1.asm ONLINE ONLINE rac1
ora.rac1.LISTENER_RAC1.lsnr ONLINE ONLINE rac1
ora.rac1.gsd ONLINE ONLINE rac1
ora.rac1.ons ONLINE ONLINE rac1
ora.rac1.vip ONLINE ONLINE rac1
ora.rac2.ASM2.asm ONLINE ONLINE rac2
ora.rac2.LISTENER_RAC2.lsnr ONLINE ONLINE rac2
ora.rac2.gsd ONLINE ONLINE rac2
ora.rac2.ons ONLINE ONLINE rac2
ora.rac2.vip ONLINE ONLINE rac2
我这里配置了Server-side TAF. 所以net service name(tnsnames.ora)配置:
RAC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.82)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.83)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dave)
)
)
Oracle RAC Failover 详解
http://blog.csdn.net/tianlesoftware/archive/2010/03/04/5340788.aspx
http://blog.csdn.net/tianlesoftware/archive/2010/03/04/5340788.aspx
测试:
C:\Users\Administrator.DavidDai>sqlplus sys/oracle@rac as sysdba;
C:\Users\Administrator.DavidDai>sqlplus sys/oracle@rac as sysdba;
SQL*Plus: Release 11.2.0.1.0 Production on 星期六 4月 2 23:03:47 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> select instance_name from v$instance;
INSTANCE_NAME
--------------------------------
dave1
SQL>
三. 安装Patch 示例
节点1操作:
[oracle@rac1 u01]$ sh crs_stat.sh
[oracle@rac1 u01]$ sh crs_stat.sh
Name Target State Host
------------------------------ ---------- --------- -------
ora.dave.dave1.inst ONLINE ONLINE rac1
ora.dave.dave2.inst ONLINE ONLINE rac2
ora.dave.db ONLINE ONLINE rac2
ora.dave.taf.cs ONLINE ONLINE rac2
ora.dave.taf.dave1.srv ONLINE ONLINE rac1
ora.dave.taf.dave2.srv ONLINE ONLINE rac2
ora.rac1.ASM1.asm ONLINE ONLINE rac1
ora.rac1.LISTENER_RAC1.lsnr ONLINE ONLINE rac1
ora.rac1.gsd ONLINE ONLINE rac1
ora.rac1.ons ONLINE ONLINE rac1
ora.rac1.vip ONLINE ONLINE rac1
ora.rac2.ASM2.asm ONLINE ONLINE rac2
ora.rac2.LISTENER_RAC2.lsnr ONLINE ONLINE rac2
ora.rac2.gsd ONLINE ONLINE rac2
ora.rac2.ons ONLINE ONLINE rac2
ora.rac2.vip ONLINE ONLINE rac2
[oracle@rac1 u01]$ srvctl stop instance -d dave -i dave1
[oracle@rac1 u01]$ srvctl stop nodeapps -n rac1
[oracle@rac1 u01]$ sh crs_stat.sh
Name Target State Host
------------------------------ ---------- --------- -------
ora.dave.dave1.inst OFFLINE OFFLINE
ora.dave.dave2.inst ONLINE ONLINE rac2
ora.dave.db ONLINE ONLINE rac2
ora.dave.taf.cs ONLINE ONLINE rac2
ora.dave.taf.dave1.srv ONLINE OFFLINE
ora.dave.taf.dave2.srv ONLINE ONLINE rac2
ora.rac1.ASM1.asm OFFLINE OFFLINE
ora.rac1.LISTENER_RAC1.lsnr OFFLINE OFFLINE
ora.rac1.gsd OFFLINE OFFLINE
ora.rac1.ons OFFLINE OFFLINE
ora.rac1.vip OFFLINE OFFLINE
ora.rac2.ASM2.asm ONLINE ONLINE rac2
ora.rac2.LISTENER_RAC2.lsnr ONLINE ONLINE rac2
ora.rac2.gsd ONLINE ONLINE rac2
ora.rac2.ons ONLINE ONLINE rac2
ora.rac2.vip ONLINE ONLINE rac2
[oracle@rac1 u01]$ cd 5689937/
[oracle@rac1 5689937]$ opatch apply -local
Invoking OPatch 10.2.0.1.0
Oracle interim Patch Installer version 10.2.0.1.0
Copyright (c) 2005, Oracle Corporation. All rights reserved..
Oracle Home : /u01/app/oracle/product/10.2.0/db_1
Central Inventory : /u01/app/oraInventory
from : /u01/app/oracle/product/10.2.0/db_1/oraInst.loc
OPatch version : 10.2.0.1.0
OUI version : 10.2.0.1.0
OUI location : /u01/app/oracle/product/10.2.0/db_1/oui
Log file location : /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch-2011_Apr_03_15-47-59-CST_Sun.log
ApplySession applying interim patch '5689937' to OH '/u01/app/oracle/product/10.2.0/db_1'
ApplySession: Optional component(s) [ oracle.**panion, 10.2.0.1.0 ] , [ oracle.isearch.client, 10.2.0.1.0 ] , [ oracle.ons, 10.2.0.1.0 ] not present in the Oracle Home or a higher version is found.
Invoking fuser to check for active processes.
Invoking fuser on "/u01/app/oracle/product/10.2.0/db_1/bin/genezi"
Invoking fuser on "/u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr"
Invoking fuser on "/u01/app/oracle/product/10.2.0/db_1/bin/lsnrctl"
Invoking fuser on "/u01/app/oracle/product/10.2.0/db_1/bin/oracle"
You selected -local option, hence OPatch will patch the local system only.
Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/10.2.0/db_1')
Is the local system ready for patching?
本文来自CSDN博客,转载请标明出处: http://blog.csdn.net/tianlesoftware/archive/2011/04/03/6300295.aspx
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25243263/viewspace-696297/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25243263/viewspace-696297/