ORACLE 10g RAC 负载均衡配置_第1页
ORACLE 10g RAC 负载均衡配置_第2页
ORACLE 10g RAC 负载均衡配置_第3页
ORACLE 10g RAC 负载均衡配置_第4页
ORACLE 10g RAC 负载均衡配置_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

负载均衡是指连接的负载均衡。RAC的负载均衡主要是指新会话连接到RAC数据库时,如何判定这个新的连接要连到哪个节点进行工作。在RAC中,负载均衡分为两种,一种是基于客户端连接的,另外一种是基于服务器端的。一、客户端负载均衡的配置1、当前服务器中的数据库版本如下:SQL〉select*fromv$version;BANNEROracleDatabase10gEnterpriseEditionRelease.0-ProdPL/SQLRelease.0-ProductionCORE.0ProductionTNSforLinux:Version.0-ProductionNLSRTLVersion.0—Production2、在客户端的tnsnames.ora的配置中,只要连接的是整个数据库的服务名,不是实例名在服务器端查看RAC数据库的service_names:SQL>showparameterservice_namesNAMETYPEVALUEservice_namesstringRACDB.SQL>3、在客户端配置TNS:客户端的负载均衡配置相对简单,只需要在tnsnames.ora中添加L0AD_BALANCE=0N这么一个选项即可。RACDB=

(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=70)(P0RT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=71)(P0RT=1521))(LOAD_BALANCE=on))(CONNECT_DATA=(SERVICE_NAME=)))配置TNS中的HOST值是服务器端RAC配置中的虚拟IP即VIP,如下:[root@NODE01admin]#more/etc/hostsDonotremovethefollowingline,orvariousprogramsthatrequirenetworkfunctionalitywillfail.localhost.localdomainlocalhost::1localhost6.localdomain6localhost61.180node011.181node021.170vip011.171vip02priv01priv024、在客户端测试:开启sqlplus_1:SQL〉connsys/chenxu@racdbassysdba

已连接。SQL>SQL>showparameterinstance_nameNAMETYPEVALUEinstance_namestringRACDB2SQL〉SQL〉selectinstance_namefromgv$instance;INSTANCE_NAMERACDB1RACDB2开启sqlplus_2:SQL>connsys/chenxu@racdbassysdba已连接。SQL>showparameterinstance_nameNAMETYPEVALUEinstance_namestringRACDB1开启sqlplus_3:SQL>connsys/chenxu@racdbas已连接。SQL>sysdba

SQL〉showparameterNAMEinstance_nameTYPEVALUEinstance_namestringRACDB2开启sqlplus_4:SQL>connsys/chenxu@racdbassysdba已连接。SQL>showparameterinstance_nameNAMETYPEVALUEinstance_namestringRACDB15、总结这样当客户端连接RAC数据库时,会随机在TNS里面挑个监听地址进行连接。在Oracle10g以前,假如有节点宕机或者类似事故时,客户端可能还是选择连接到这个节点,这样会发生较长时间的TCP等待超时。而在10g以后,由于VIP和FAN的引入,这样的情况可以得到很大程度的改善。客户端的负载均衡在通常情况下能够较好地工作,但是由于连接是在客户端随机发起的,这样客户端并不知道RAC各节点的负荷及连接数情况,有可能负荷大的节点还会源源不断地增加新的连接,导致RAC节点无法均衡工作。二、服务器端负载均衡的配置从Oracle10g开始,服务器端的负载均衡可以根据RAC中各节点的负荷及连接数情况,而判定将新的客户端连接分配到负荷最小的节点上去。RAC中各节点的PMON进程每3秒会将各自节点的负荷(包括LOAD、最大LOAD、CPU使用率)及连接数更新到service_register里面,然后假如节点的负荷有发生变化,将会通知到监听程序,由监听程序再决定新的客户

端连接分配至哪个节点。假如RAC中一个节点的监听失败了,PMON每一分钟会去检查一次是否已经恢复正常。服务器端的监听配置是在各节点的tnsnames.ora里面添加一个连接到各个节点监听的条目,然后再在初始化参数里面设置remote_listeners这个参数。1、测试客户端的TNS修改客户端tnsnames.ora的文件,内容如下:RACDB=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=70)(P0RT=1521)))(CONNECT_DATA=(SERVICE_NAME=)))测试连接:SQL〉connsys/chenxu@racdbassysdba已连接。SQL>SQL>showparameterinstance_nameNAMETYPEVALUEinstance_namestringRACDB12、配置服务器端TNS

服务器端的监听配置是在各节点的tnsnames.ora里面添加一个连接到各个节点监听的条目(红色代码),在服务器端每个节点的tnsnames.ora里面的内容如下:[root@NODEOladmin]#pwd/orac/orahome/oracle/product/10.2.0/db_l/network/admin[root@NODE01admin]#[root@NODE01admin]#moretnsnames.oratnsnames.oraNetworkConfigurationFile:/orac/orahome/oracle/product/10.2.0/db_l/network/admin/tnsnames.oraGeneratedbyOracleconfigurationtools.RACDB1=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=vip01)(P0RT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=RACDB.)(INSTANCE_NAME=RACDB1)))RACDB=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=vip01)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=vip02)(PORT=1521))(LOAD_BALANCE=yes)(CONNECT_DATA=

(SERVER=DEDICATED)(SERVICE_NAME=RACDB.)))LISTENERS_RACDB=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=vipOl)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=vip02)(P0RT=1521)))RACDB2=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=vip02)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=RACDB.)(INSTANCE_NAME=RACDB2)))3、在初始化参数中设置参数remote_listenersSQL>connsys/chenxu@racdbassysdba已连接。SQL>showparameterremote_listenerNAMETYPEVALUE

remote_listenerstringSQL〉SQL〉altersystemsetremote_listener二'LISTENERS_RACDB'sid二'*'#(reset命令可以撤销设置,恢复默认值)系统已更改。SQL〉SQL>showparameterremote_listenerNAMETYPEVALUEremote_listenerstringLISTENERS_RACDB正确配置参数后,通过lsnrctlstatus命令看到在监听启动以后,可以看到监听器上有2个instance。[root@NODE01bin]#lsnrctlstatusLSNRCTLforLinux:Version.0—Productionon18—DEC—200805:40:08Copyright(c)1991,2005,Oracle.Allrightsreserved.Connectingto(ADDRESS=(PR0T0C0L=tcp)(H0ST=)(P0RT=1521))STATUSoftheLISTENERAliasVersionLISTENERN0DE01AliasVersionTNSLSNRforLinux:Version.0—ProductionStartDateStartDate18—DEC—200800:18:07Uptime0days5hr.22min.1secTraceLeveloffSecurityON:LocalOSAuthenticationSNMPOFFListenerParameterFile/orac/orahome/oracle/product/10.2.0/db_1/network/admin/listener.oraListenerLogFile/orac/orahome/oracle/product/10.2.0/db_1/network/log/listener_node01.logListeningEndpointsSummary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(H0ST=70)(P0RT=1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(H0ST=80)(P0RT=1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))ServicesSummary...Service""+ASM""has1instance(s).Instance""+ASM1",statusBLOCKED,has1handler(s)forthisservice...Service""+ASM_XPT"has1instance(s).Instance""+ASM1",statusBLOCKED,has1handler(s)forthisservice...Service"RACDB."has2instance(s).Instance"RACDB1",statusREADY,has2handler(s)forthisservice...Instance"RACDB2",statusREADY,has1handler(s)forthisservice...Instance"RACDB1",statusREADY,has2handler(s)forthisservice...Instance"RACDB2",statusREADY,has1handler(s)forthisservice...Service""RACDBXDB.Service""RACDBXDB.""has2instance(s).Instance""RACDB1",statusREADY,has1handler(s)forthisservice...Instance""RACDB2",statusREADY,has1handler(s)forthisservice...Instance""RACDB1",statusREADY,has1handler(s)forthisservice...Instance""RACDB2",statusREADY,has1handler(s)forthisservice...Service""RACDB_XPT.""has2instance(s).Instance""RACDB1"",statusREADY,has2handler(s)forthisservice...Instance""RACDB2",statusREADY,has1handler(s)forthisservice...Thecommandcompletedsuccessfully这时在客户端用sqlplus连接服务器数据库可能会出现如下错误:ERROR:ORA-12545:因目标主机或对象不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论