RAC中的应用分离


使用rac的时候,为了尽可能的减少内部网络通信,我们通常把相同的应用连接到同一节点上,当该节点出现意外 down掉之后,client端应用能够透明的切换到其他节点上,通过这种办法尽可能的减少节点间cr block的构造或者说尽可能的减少cache fusion从而减少内部网络通信

这里的通过tnsname的配置,对不同的应用做不同的节点上的分离。从而让相同的应用都在固定的节点上,从而减小cache fusion的影响。这个是RAC的优化中比较实用和常见的做法。

在client的 tnsnames文件中配置racdb_1和racdb_2两个net service:

这里要求failover 的METHOD必须是preconnect.backup是net service名

racdb_1=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcp)
(HOST=node1)
(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=racdb_taf_pre)
(INSTANCE_NAME=racdb1)
(FAILOVER_MODE=
(BACKUP=racdb_2)
(TYPE=select)
(METHOD=preconnect))))

racdb_2=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcp)
(HOST=node2)
(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=racdb_taf_pre)
(INSTANCE_NAME=racdb2)
(FAILOVER_MODE=
(BACKUP=racdb_1)
(TYPE=select)
(METHOD=preconnect))))
--===============================

C:>sqlplus system/system@racdb_1

SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 2月 6 21:44:53 2010

Copyright (c) 1982, 2005, 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> COLUMN instance_name FORMAT a13
SQL> COLUMN host_name FORMAT a9
SQL> COLUMN failover_method FORMAT a15
SQL> COLUMN failed_over FORMAT a11
SQL> SELECT
2 instance_name
3 , host_name
4 , NULL AS failover_type
5 , NULL AS failover_method
6 , NULL AS failed_over
7 FROM v$instance
8 UNION
9 SELECT
10 NULL
11 , NULL
12 , failover_type
13 , failover_method
14 , failed_over
15 FROM v$session
16 WHERE username = 'SYSTEM';

INSTANCE_NAME HOST_NAME FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER
------------- --------- ------------- --------------- -----------
racdb1 node1
SELECT PRECONNECT NO

--=============================

[oracle@node1 bin]$ srvctl stop instance -d racdb -i racdb1 -o abort
[oracle@node1 bin]$ srvctl status database -d racdb
Instance racdb1 is not running on node node1
Instance racdb2 is running on node node2

--==============================

SQL> /

--这里出现了长时间的等待,不过最终还是透明的切换到了racdb2 node上,长时间等待的原因是可能我在racdb_1和racdb_2的failover mode中没有设置RETRIES 和 DELAY 参数,而这些参数使用了default值

INSTANCE_NAME HOST_NAME FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER
------------- --------- ------------- --------------- -----------
racdb2 node2
SELECT PRECONNECT YES

SQL>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

inthirties

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值