ORACLE RAC 负载均衡与local_listener、remote_listener两个参数的配置关系
RAC的负载均衡主要由客户端和服务器端两种实现方式。1,客户端的实现,直接在tnsnames.ora中配置LOAD_BALANCE参数来实现。默认值是NO
clinet_LB =
(DESCRIPTION =
(LOAD_BALANCE = YES)
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.4.124.243)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.4.124.244)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.4.124.245)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.4.124.246)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = srv_epm1)
)
)
2,服务器端的负载均衡LB设置。主要是通过两个初始化参数local_listener、remote_listener来实现的。通过这两个参数,oracle分别向这两个参数指向的listener进行注册,这样,listener就能知道各个服务的状态,进而进行连接分发。
11gr2版本,这两个参数默认设置为如下
SQL> show parameter listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
listener_networks string
local_listener string (DESCRIPTION=(ADDRESS_LIST=(AD
DRESS=(PROTOCOL=TCP)(HOST=10.4
.124.244)(PORT=1521))))
remote_listener string dtydb-scan2:1521
由于以上设置,数据库实例分别向local_listener和remote_listener进行注册。
本地listener只注册了+ASM2和epmdb2两个实例
LSNRCTL> set current_listener LISTENER
Current Listener is LISTENER
LSNRCTL> service
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM2", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:10765 refused:0 state:ready
LOCAL SERVER
Service "epmdb" has 1 instance(s).
Instance "epmdb2", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:10 refused:0 state:ready
LOCAL SERVER
The command completed successfully
SCAN listener注册了所有数据库实例默认service和运行在epmdb1实例上的服务srv_epm1
查看服务注册情况,SCAN
LSNRCTL> set current_listener LISTENER_SCAN1
Current Listener is LISTENER_SCAN1
LSNRCTL> service
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
Services Summary...
Service "epmdb" has 3 instance(s).
Instance "epmdb1", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
REMOTE SERVER
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.4.124.243)(PORT=1521)))
Instance "epmdb2", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
REMOTE SERVER
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.4.124.244)(PORT=1521)))
Instance "epmdb3", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:4 refused:0 state:ready
REMOTE SERVER
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.4.124.245)(PORT=1521)))
Service "srv_epm1" has 1 instance(s).
Instance "epmdb1", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
REMOTE SERVER
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.4.124.243)(PORT=1521)))
The command completed successfully
tnsnames.ora的配置如下
tydb_srv_epm1 =
(DESCRIPTION =
(LOAD_BALANCE = NO)
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.4.124.243)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.4.124.244)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.4.124.245)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.4.124.246)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = epmdb)
)
)
epmdb_scan =
(DESCRIPTION =
(LOAD_BALANCE = NO)
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.4.124.230)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = epmdb)
)
)
当我们连接时tydb_srv_epm1,由于顺序关系,会连接到epmdb1实例
sqlplus system/oracle@tydb_srv_epm1
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 6月 14 16:10:21 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management,
OLAP,
Data Mining and Real Application Testing options
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
epmdb1
SQL> exit
连接scan IP时,由于scan listener了注册了各个数据库实例,负载均衡的效果就产生了
>sqlplus system/oracle@epmdb_scan
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 6月 14 16:11:26 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management,
OLAP,
Data Mining and Real Application Testing options
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
epmdb1
SQL> exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management,
OLAP,
Data Mining and Real Application Testing options 断开
sqlplus system/oracle@epmdb_scan
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 6月 14 16:12:57 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management,
OLAP,
Data Mining and Real Application Testing options
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
epmdb3
SQL>
3,10gr2版本以上,TAF主要是通过service的配置来实现。已如下已配置的service srv_epm1为例
[grid@dtydb3 ~]$ srvctl config service -d epmdb -s srv_epm1
Service name: srv_epm1
Service is enabled
Server pool: epmdb_srv_epm1
Cardinality: 1
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Failover type: SELECT
Failover method: BASIC
TAF failover retries: 180
TAF failover delay: 5
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: BASIC
Edition:
Preferred instances: epmdb1
Available instances: epmdb2
tnsnames.ora的连接配置如下
epmdb_scan_taf =
(DESCRIPTION =
(LOAD_BALANCE = NO)
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.4.124.230)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = srv_epm1)
)
)
由于服务只运行于epmdb1,因此必定连接epmdb1实例
sqlplus system/oracle@epmdb_scan_taf
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 6月 14 16:21:42 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management,
OLAP,
Data Mining and Real Application Testing options
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
epmdb1
数据库实例EPMDB1 down后,service发生了切换,再次连接数据库,已经运行于instane 2 .
sys@EPMDB1(10.4.124.233)> shutdown immediate;
[grid@dtydb3 ~]$ srvctl status service -d epmdb -s srv_epm1
Service srv_epm1 is running on instance(s) epmdb2
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
epmdb1
SQL> /
INSTANCE_NAME
----------------
epmdb2
分享到:
相关推荐
数据库oracle rac 修改db_unique_name参数
ORACLE RAC 数据库负载均衡方案.doc
Oracle RAC数据库连接负载均衡配置研究.pdf
ORACLE_10g_RAC_负载均衡配置,负载均衡是指连接的负载均衡。RAC的负载均衡主要是指新会话连接到RAC数据库时,如何判定这个新的连接要连到哪个节点进行工作。在RAC中,负载均衡分为两种,一种是基于客户端连接的,...
oracle,rac,集群,可用,备份,恢复
Oracle_RAC_For_Windows_install.pdf
大话Oracle_RAC__集群_高可用性_备份与恢复.pdf
虚拟机Oracle_10g_RAC_安装_Windows_2003
本文详细的介绍了oracle 11g rac的搭建过程,并讲解了负载均衡的方法,是word文档,可以照着做一遍,图文并茂,容易理解!
oracle rac集群高可用性_备份与恢复
Oracle 10g RAC的负载均衡配置,负载均衡是指连接的负载均衡。RAC的负载均衡主要是指新会话连接到RAC数据库时,如何判定这个新的连接要连到哪个节点进行工作。在RAC中,负载均衡分为两种,一种是基于客户端连接的,...
Oracle高可用性RAC部署方案_环境Oracle_11G_R2_RAC_for_Linux
详细介绍Windows平台下的Oracle RAC配置与安装_penglan.pdf
Oracle RAC系列之_10gR2 RAC(ASM) Data Guard容灾配置手册_mfkqwyc86.pdf
Oracle内部资料: Oracle RAC 培训资料汇集(3个PPT) 1.Oracle真正应用集群_(RAC)_10g的新特性.ppt 2.Oracle真正应用集群_(RAC)_最佳实践.ppt 3.Oracle真正应用集群的成功:可扩展性、低成本和高可用性.ppt
Install_Oracle_RAC_10_g_on_Oracle_Enterprise_Linux
Oracle_10g_RAC_For_Redhat_AS_4安装指南
Oracle_RAC_For_Linux_install