客户端连接RAC只连接OPEN数据库,不连接MOUNT数据库;解决方案
解决方案:
Failover 只连接open,拒绝mount:使用Service-Side TAF解决
Oracle Rac Failover 可以分为3种:
1. Client-Side Connect time Failover
环境:oracle 11.2.0.1 rac on redhat 5.5
目前数据库节点状态
SQL> select status from gv$instance;
STATUS
------------
OPEN
MOUNTED
1. Client-Side Connect time Failover
RAC_client =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.221)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.222)(PORT = 1521))
(LOAD_BALANCE=YES)
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=RACDB)
)
)
[oracle@dou_rac1 admin]$ sqlplus xiaoyu/oracle@rac_client--(连接到mount节点上)
SQL*Plus: Release 11.2.0.1.0 Production on Fri Jul 26 16:52:27 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-01033: ORACLE 正在初始化或关闭 Process
ID: 0
Session ID: 0 Serial number: 0
2. TAF
rac_taf =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.221)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.222)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = racdb_taf)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
)
)
)
[oracle@dou_rac1 admin]$ sqlplus xiaoyu/oracle@rac_taf--(连接到mount节点上)
SQL*Plus: Release 11.2.0.1.0 Production on Fri Jul 26 16:53:01 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-01033: ORACLE 正在初始化或关闭 Process
ID: 0
Session ID: 0 Serial number: 0
Enter user-name:
3. Service-Side TAF
RAC_server =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dou_rac-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = racdb_taf)--使用service-side TAF修改后的service_name
)
)
SQL> show parameter service
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string
racdb_taf
[oracle@dou_rac1 admin]$ srvctl config service -d racdb
服务名: racdb_taf
服务已启用
服务器池: racdb_racdb_taf
基数: 2
断开连接: 假
服务角色: PRIMARY
管理策略: AUTOMATIC
DTP 事务处理: 假
AQ HA 通知: 假
故障转移类型: SELECT
故障转移方法: BASIC
TAF 故障转移重试次数: 180
TAF 故障转移延迟: 2
连接负载平衡目标: LONG
运行时负载平衡目标: NONE
TAF 策略规范: BASIC
首选实例: racdb1,racdb2
可用实例:
[oracle@dou_rac1 admin]$ sqlplus xiaoyu/oracle@rac_server--(连接到open节点上)
SQL*Plus: Release 11.2.0.1.0 Production on Fri Jul 26 16:53:51 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL>
可以成功登录数据库
总结:
Service-Side TAF的功能。可以保证客户端连接的节点均为open状态的。
感谢 Travel!! Travel原创技术博客: http://www.traveldba.com/
关于更详细的RAC Failover请看http://blog.csdn.net/tianlesoftware/article/details/5340788