데이터 베이스 MySQL 튜토리얼 oracle 10g服务器端RAC负载均衡配置代码

oracle 10g服务器端RAC负载均衡配置代码

Jun 07, 2016 pm 03:01 PM
oracle rac 암호 섬기는 사람 구성

前面我们介绍了RAC的客户端负载均衡配置,接下来就到了服务器端RAC负载均衡配置的具体代码介绍了,通过两方面的配置和测试之后,整个负载均衡才能完全的设置好。那么就让我们赶紧来看一下啊具体的服务器端RAC负载均衡配置内容吧。 从Oracle 10g开始,服务器端

前面我们介绍了RAC的客户端负载均衡配置,接下来就到了服务器端RAC负载均衡配置的具体代码介绍了,通过两方面的配置和测试之后,整个负载均衡才能完全的设置好。那么就让我们赶紧来看一下啊具体的服务器端RAC负载均衡配置内容吧。

从Oracle 10g开始,服务器端负载均衡可以根据RAC中各节点的负荷及连接数情况,而判定将新的客户端连接分配到负荷最小的节点上去?RAC中各节点的PMON进程每3秒会将各自节点的负荷(包括LOAD?最大LOAD?CPU使用率)及连接数更新到service_register里面,然后假如节点的负荷有发生变化,将会通知到监听程序,由监听程序再决定新的客户端连接分配至哪个节点?假如RAC中一个节点的监听失败了,PMON每一分钟会去检查一次是否已经恢复正常?

服务器端的监听配置是在各节点的tnsnames.ora里面添加一个连接到各个节点监听的条目,然后再在初始化参数里面设置remote_listeners这个参数?

1?测试客户端的TNS

修改客户端tnsnames.ora的文件,内容如下:

<ol>
<li><span>RACDB =  </span></li>
<li><span>  (DESCRIPTION =  </span></li>
<li><span>    (ADDRESS_LIST =  </span></li>
<li><span>      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.170)(PORT = 1521))  </span></li>
<li><span>    )  </span></li>
<li><span>    (CONNECT_DATA =  </span></li>
<li><span>      (SERVICE_NAME = racdb.chenxu.yo2.cn)  </span></li>
<li><span>    )  </span></li>
<li><span>  ) </span></li>
</ol>
로그인 후 복사

测试连接:

<ol>
<li><span><span>SQL&gt;  conn sys/chenxu@racdb </span><span>as</span><span> sysdba  </span></span></li>
<li><span>已连接?  </span></li>
<li><span>SQL&gt;  </span></li>
<li><span>SQL&gt; show parameter instance_name   </span></li>
<li><span> </span></li>
<li>
<span>NAME</span><span>                                 TYPE        VALUE  </span>
</li>
<li>
<span>------------------------------------ ----------- --------------------- </span><span> </span>
</li>
<li><span>instance_name                        string      RACDB1  </span></li>
</ol>
로그인 후 복사

2?配置服务器端TNS

服务器端的监听配置是在各节点的tnsnames.ora里面添加一个连接到各个节点监听的条目(红色代码),在服务器端每个节点的tnsnames.ora里面的内容如下:

<ol>
<li><span>[root@NODE01 admin]# pwd  </span></li>
<li><span>/orac/orahome/oracle/product/10.2.0/db_1/network/admin  </span></li>
<li><span>[root@NODE01 admin]#  </span></li>
<li><span>[root@NODE01 admin]# more tnsnames.ora  </span></li>
<li><span># tnsnames.ora Network Configuration File: /orac/orahome/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora  </span></li>
<li>
<span># Generated </span><span>by</span><span> Oracle configuration tools.  </span>
</li>
<li><span> </span></li>
<li><span>RACDB1 =  </span></li>
<li><span>  (DESCRIPTION =  </span></li>
<li><span>    (ADDRESS = (PROTOCOL = TCP)(HOST = vip01)(PORT = 1521))  </span></li>
<li><span>    (CONNECT_DATA =  </span></li>
<li><span>      (SERVER = DEDICATED)  </span></li>
<li><span>      (SERVICE_NAME = RACDB.chenxu.yo2.cn)  </span></li>
<li><span>      (INSTANCE_NAME = RACDB1)  </span></li>
<li><span>    )  </span></li>
<li><span>  )  </span></li>
<li><span> </span></li>
<li><span>RACDB =  </span></li>
<li><span>  (DESCRIPTION =  </span></li>
<li><span>    (ADDRESS = (PROTOCOL = TCP)(HOST = vip01)(PORT = 1521))  </span></li>
<li><span>    (ADDRESS = (PROTOCOL = TCP)(HOST = vip02)(PORT = 1521))  </span></li>
<li><span>    (LOAD_BALANCE = yes)  </span></li>
<li><span>    (CONNECT_DATA =  </span></li>
<li><span>      (SERVER = DEDICATED)  </span></li>
<li><span>      (SERVICE_NAME = RACDB.chenxu.yo2.cn)  </span></li>
<li><span>    )  </span></li>
<li><span>  )  </span></li>
<li><span> </span></li>
<li><span>LISTENERS_RACDB =  </span></li>
<li><span>  (ADDRESS_LIST =  </span></li>
<li><span>    (ADDRESS = (PROTOCOL = TCP)(HOST = vip01)(PORT = 1521))  </span></li>
<li><span>    (ADDRESS = (PROTOCOL = TCP)(HOST = vip02)(PORT = 1521))  </span></li>
<li><span>  )  </span></li>
<li><span> </span></li>
<li><span>RACDB2 =  </span></li>
<li><span>  (DESCRIPTION =  </span></li>
<li><span>    (ADDRESS = (PROTOCOL = TCP)(HOST = vip02)(PORT = 1521))  </span></li>
<li><span>    (CONNECT_DATA =  </span></li>
<li><span>      (SERVER = DEDICATED)  </span></li>
<li><span>      (SERVICE_NAME = RACDB.chenxu.yo2.cn)  </span></li>
<li><span>      (INSTANCE_NAME = RACDB2)  </span></li>
<li><span>    )  </span></li>
<li><span>  ) </span></li>
</ol>
로그인 후 복사

3?在初始化参数中设置参数remote_listeners

<ol>
<li><span><span>SQL&gt; conn sys/chenxu@racdb </span><span>as</span><span> sysdba  </span></span></li>
<li><span>已连接?  </span></li>
<li><span>SQL&gt; show parameter remote_listener  </span></li>
<li><span> </span></li>
<li>
<span>NAME</span><span>                                 TYPE        VALUE  </span>
</li>
<li>
<span>------------------------------------ ----------- ------------------------ </span><span> </span>
</li>
<li><span>remote_listener                      string  </span></li>
<li><span>SQL&gt;  </span></li>
<li>
<span>SQL&gt; </span><span>alter</span><span> system </span><span>set</span><span> remote_listener=</span><span>'LISTENERS_RACDB'</span><span> sid=</span><span>'*'</span><span>;  </span>
</li>
<li><span>#(reset命令可以撤销设置,恢复默认值)  </span></li>
<li><span>系统已更改?  </span></li>
<li><span>SQL&gt;  </span></li>
<li><span>SQL&gt; show parameter remote_listener  </span></li>
<li>
<span>NAME</span><span>                                 TYPE        VALUE  </span>
</li>
<li>
<span>------------------------------------ ----------- --------------------- </span><span> </span>
</li>
<li><span>remote_listener                      string      LISTENERS_RACDB </span></li>
</ol>
로그인 후 복사

正确配置参数后,通过lsnrctl status命令看到在监听启动以后,可以看到监听器上有2个instance?

<ol>
<li><span>[root@NODE01 bin]# lsnrctl status  </span></li>
<li>
<span>LSNRCTL </span><span>for</span><span> Linux: Version 10.2.0.1.0 - Production </span><span>on</span><span> 18-</span><span>DEC</span><span>-2008 05:40:08  </span>
</li>
<li>
<span>Copyright (c) 1991, 2005, Oracle.  </span><span>All</span><span> rights reserved.  </span>
</li>
<li>
<span>Connecting </span><span>to</span><span> (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))  </span>
</li>
<li>
<span>STATUS </span><span>of</span><span> the LISTENER  </span>
</li>
<li>
<span>------------------------ </span><span> </span>
</li>
<li><span>Alias                     LISTENER_NODE01  </span></li>
<li>
<span>Version                   TNSLSNR </span><span>for</span><span> Linux: Version 10.2.0.1.0 - Production  </span>
</li>
<li>
<span>Start </span><span>Date</span><span>                18-</span><span>DEC</span><span>-2008 00:18:07  </span>
</li>
<li>
<span>Uptime                    0 days 5 hr. 22 </span><span>min</span><span>. 1 sec  </span>
</li>
<li>
<span>Trace </span><span>Level</span><span>               </span><span>off</span><span> </span>
</li>
<li>
<span>Security                  </span><span>ON</span><span>: </span><span>Local</span><span> OS Authentication  </span>
</li>
<li>
<span>SNMP                      </span><span>OFF</span><span> </span>
</li>
<li><span> </span></li>
<li><span>Listener Parameter File   /orac/orahome/oracle/product/10.2.0/db_1/network/admin/listener.ora  </span></li>
<li><span>Listener Log File         /orac/orahome/oracle/product/10.2.0/db_1/network/log/listener_node01.log  </span></li>
<li><span>Listening Endpoints Summary...  </span></li>
<li><span>  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.170)(PORT=1521)))  </span></li>
<li><span>  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.180)(PORT=1521)))  </span></li>
<li>
<span>  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(</span><span>KEY</span><span>=EXTPROC)))  </span>
</li>
<li><span> </span></li>
<li><span>Services Summary...  </span></li>
<li>
<span>Service </span><span>"+ASM"</span><span> has 1 instance(s).  </span>
</li>
<li>
<span>  Instance </span><span>"+ASM1"</span><span>, status BLOCKED, has 1 handler(s) </span><span>for</span><span> this service...  </span>
</li>
<li>
<span>Service </span><span>"+ASM_XPT"</span><span> has 1 instance(s).  </span>
</li>
<li>
<span>  Instance </span><span>"+ASM1"</span><span>, status BLOCKED, has 1 handler(s) </span><span>for</span><span> this service...  </span>
</li>
<li>
<span>Service </span><span>"RACDB.chenxu.yo2.cn"</span><span> has 2 instance(s).  </span>
</li>
<li>
<span>  Instance </span><span>"RACDB1"</span><span>, status READY, has 2 handler(s) </span><span>for</span><span> this service...  </span>
</li>
<li>
<span>  Instance </span><span>"RACDB2"</span><span>, status READY, has 1 handler(s) </span><span>for</span><span> this service...  </span>
</li>
<li>
<span>Service </span><span>"RACDBXDB.chenxu.yo2.cn"</span><span> has 2 instance(s).  </span>
</li>
<li>
<span>  Instance </span><span>"RACDB1"</span><span>, status READY, has 1 handler(s) </span><span>for</span><span> this service...  </span>
</li>
<li>
<span>  Instance </span><span>"RACDB2"</span><span>, status READY, has 1 handler(s) </span><span>for</span><span> this service...  </span>
</li>
<li>
<span>Service </span><span>"RACDB_XPT.chenxu.yo2.cn"</span><span> has 2 instance(s).  </span>
</li>
<li>
<span>  Instance </span><span>"RACDB1"</span><span>, status READY, has 2 handler(s) </span><span>for</span><span> this service...  </span>
</li>
<li>
<span>  Instance </span><span>"RACDB2"</span><span>, status READY, has 1 handler(s) </span><span>for</span><span> this service...  </span>
</li>
<li><span>The command completed successfully </span></li>
</ol>
로그인 후 복사

这时在客户端用sqlplus连接服务器数据库可能会出现如下错误:

<ol>
<li><span>ERROR:  </span></li>
<li><span>ORA-12545: 因目标主机或对象不存在,连接失败 </span></li>
</ol>
로그인 후 복사

4?解决ORA-12545连接失败问题

配置客户端的Hosts文件

通过在客户端的Hosts文件中加入对两个服务名的名字解析可以解决ORA-12545问题?在windows下Hosts文件在C:\WINDOWS\system32\drivers\etc目录下,在linux修改/etc/hosts文件的内容?添加如下内容:

<ol>
<li><span>192.168.1.170   node01  </span></li>
<li><span>192.168.1.171   node02  </span></li>
<li><span>其中node01?node02为服务器节点的主机名?  </span></li>
<li><span>[root@NODE01 bin]# hostname  </span></li>
<li><span>NODE01  </span></li>
</ol>
로그인 후 복사

5?通过客户端测试RAC负载均衡配置

<ol>
<li><span>开启sqlplus_1:  </span></li>
<li>
<span>SQL&gt; conn sys/chenxu@racdb </span><span>as</span><span> sysdba  </span>
</li>
<li><span>已连接?  </span></li>
<li><span>SQL&gt; show parameter instance_name  </span></li>
<li>
<span>NAME</span><span>                                 TYPE        VALUE  </span>
</li>
<li>
<span>------------------------------------ ----------- --------------- </span><span> </span>
</li>
<li><span>instance_name                        string      RACDB1 </span></li>
</ol>
로그인 후 복사

开启sqlplus_2:

<ol>
<li><span><span>SQL&gt;  conn sys/chenxu@racdb </span><span>as</span><span> sysdba  </span></span></li>
<li><span>已连接?  </span></li>
<li><span>SQL&gt;  show parameter instance_name  </span></li>
<li>
<span>NAME</span><span>                                 TYPE        VALUE  </span>
</li>
<li>
<span>------------------------------------ ----------- ------------- </span><span> </span>
</li>
<li><span>instance_name                        string      RACDB2 </span></li>
</ol>
로그인 후 복사

可以看到客户端能够连接到实例RACDB2,说明基于服务器端RAC负载均衡配置成功?

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

오라클에서 두 날짜 사이의 일수를 계산하는 함수 오라클에서 두 날짜 사이의 일수를 계산하는 함수 May 08, 2024 pm 07:45 PM

오라클에서 두 날짜 사이의 일수를 계산하는 함수

Oracle 데이터베이스 로그는 얼마나 오래 보관됩니까? Oracle 데이터베이스 로그는 얼마나 오래 보관됩니까? May 10, 2024 am 03:27 AM

Oracle 데이터베이스 로그는 얼마나 오래 보관됩니까?

Oracle 데이터베이스 시작 단계의 순서는 다음과 같습니다. Oracle 데이터베이스 시작 단계의 순서는 다음과 같습니다. May 10, 2024 am 01:48 AM

Oracle 데이터베이스 시작 단계의 순서는 다음과 같습니다.

오라클에서 간격을 사용하는 방법 오라클에서 간격을 사용하는 방법 May 08, 2024 pm 07:54 PM

오라클에서 간격을 사용하는 방법

Oracle에서 특정 문자의 발생 횟수를 확인하는 방법 Oracle에서 특정 문자의 발생 횟수를 확인하는 방법 May 09, 2024 pm 09:33 PM

Oracle에서 특정 문자의 발생 횟수를 확인하는 방법

Oracle 데이터베이스 서버 하드웨어 구성 요구 사항 Oracle 데이터베이스 서버 하드웨어 구성 요구 사항 May 10, 2024 am 04:00 AM

Oracle 데이터베이스 서버 하드웨어 구성 요구 사항

오라클에는 얼마나 많은 메모리가 필요합니까? 오라클에는 얼마나 많은 메모리가 필요합니까? May 10, 2024 am 04:12 AM

오라클에는 얼마나 많은 메모리가 필요합니까?

Oracle 데이터베이스를 사용하는 데 필요한 메모리 양 Oracle 데이터베이스를 사용하는 데 필요한 메모리 양 May 10, 2024 am 03:42 AM

Oracle 데이터베이스를 사용하는 데 필요한 메모리 양

See all articles