local_listener 与 remote_listener 参数说明
一. LOCAL_LISTENER 和 REMOTE_LISTENER说明
1.1 LOCAL_LISTENER
官网信息如下:
Property |
Description |
Parameter type |
String |
Syntax |
LOCAL_LISTENER = network_name |
Default value |
(ADDRESS = (PROTOCOL=TCP)(HOST=hostname)(PORT=1521)) where hostname is the network name of the local host. |
Modifiable |
ALTER SYSTEM |
Basic |
No |
LOCAL_LISTENER specifies a network name that resolves to an address or address list of Oracle Net local listeners (that is, listeners that are running on the same machine as this instance). The address or address list is specified in the TNSNAMES.ORA file or other address repository as configured for your system.
1.2 REMOTE_LISTENER
Property |
Description |
Parameter type |
String |
Syntax |
REMOTE_LISTENER = network_name |
Default value |
There is no default value. |
Modifiable |
ALTER SYSTEM |
Basic |
Yes |
http://blog.csdn.net/tianlesoftware/archive/2010/04/30/5543166.aspx
动态注册是在instance启动的时候,PMON进程根据init.ora中的instance_name,service_names两个参数将实例和服务动态注册到listener中。
将监听的信息添加到tnsnames.ora 文件中。 因为pmon在动态注册监听时要从tnsnames.ora中读取相关信息。
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT =1522))
SQL> alter system set local_listener= LISTENER _RACDB1;
SQL> alter system set LOCAL_LISTENER='(ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1522))';
这样,在DB启动的时候,就会自动的把instence_name 和service_name注册到监听。 如果在这期间,监听重启了,监听里的信息也会丢失,这时就需要手动的把信息注册到监听:
三. LOCAL_LISTENER, REMOTE_LISTENER 与RAC CLIENT-SIDE TAF 和 LOAD BALCANING
http://blog.csdn.net/tianlesoftware/archive/2010/03/03/5340788.aspx
中对RAC的Failover做了分类:Client-Side TAF 和 Server-side TAF.
Service-SideTAF是在服务器上配置的,Client-Side TAF是在客户端配置的。
How To Configure Server Side Transparent Application Failover [ID 460982.1]
http://blog.csdn.net/tianlesoftware/archive/2010/12/20/6086728.aspx
LOCAL_LISTENER 和 REMOTE_LISTENER 这2个参数就是配置Client-Side TAF的。
官网的配置参考:
10g & 11g Configuration of TAF(Transparent Application Failover) and Load Balancing [ID 453293.1]
http://blog.csdn.net/tianlesoftware/archive/2010/12/19/6085529.aspx
3.2 Client-Side TAF 配置
3.2.1主机信息如下
Node1:
Hostname: node1.idc.oracle.com
VIP Hostname: node1-vip.idc.oracle.com
Database Service_names: service.idc.oracle.com
SID: sid1
Node2:
Hostname: node2.idc.oracle.com
VIP Hostname: node2-vip.idc.oracle.com
Database Service_names: service.idc.oracle.com
SID: sid2
3.2.2 Node1配置
(1)修改Listener.ora文件
LISTENER_NODE1=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = node1-vip.idc.oracle.com)(PORT = 1521)(IP=FIRST)) --私有IP
(ADDRESS = (PROTOCOL = TCP)(HOST = node1.idc.oracle.com)(PORT = 1521)(IP=FIRST)) --public IP
)
)
(2)启动Listener
$ lsnrctl start LISTENER_NODE1
(3)修改Tnsnames.ora文件
NODE1_LOCAL=
(ADDRESS = (PROTOCOL = TCP)(HOST=node1-vip.idc.oracle.com)(PORT = 1521))
测试:
$ tnsping node1_local
(4) 设置node1的local_listener参数
sql > alter system set LOCAL_LISTENER='node1_local' scope=both sid='sid1' ;
3.2.3 NODE2 配置
(1)修改Listener.ora文件
LISTENER_NODE2=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=TCP)(HOST=node2.idc.oracle.com)(PORT=1521)(IP=FIRST))
(ADDRESS=(PROTOCOL=TCP)(HOST=node2-vip.idc.oracle.com)(PORT=1521)(IP=FIRST))
)
)
(2)启动Listener
$ lsnrctl start LISTENER_NODE2
(3)修改Tnsnames.ora文件
NODE2_LOCAL=
(ADDRESS = (PROTOCOL = TCP)(HOST = node2-vip.idc.oracle.com)(PORT = 1521))
验证:
$ tnsping node2_local
(4)设置local_listener 参数
sql > alter system set LOCAL_LISTENER='node2_local' scope=both sid='sid2' ;
3.2.4 在node1和node2的 tnsnames.ora 文件添加如下内容
NODE_REMOTE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST=node1-vip.idc.oracle.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST=node2-vip.idc.oracle.com)(PORT = 1521))
)
)
测试:
$ tnsping node_remote
3.2.5 在所有节点设置remote listener
sql> alter system set REMOTE_LISTENER='node_remote' scope=both;
3.2.6 在客户端设置的tnsnames.ora 设置TAF
RACTAF=
(DESCRIPTION =
(ADDRESS_LIST =
(LOAD_BALANCE = yes)
(FAILOVER=ON) -- 这个参数是默认值,可以不写
(ADDRESS = (PROTOCOL = TCP)(HOST = node1-vip.idc.oracle.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = node2-vip.idc.oracle.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = service.idc.oracle.com)
(failover_mode=(type=select)(method=basic))
)
)
当客户端发出连接请求给Server端listener的时候,通过local_listener注册的服务接收这个连接请求,然后由master instance来决定这个连接请求应该由哪个目标instance发出server process响应这个连接请求。如果启用负载均衡,那么主节点会选择cpu负载最小的那个instance,此时:
如果master分配的目标instance是local listener machine,那么直接通过local server listener,开启后台的server process,处理发出conn的客户端,建立连接,处理会话;
如果master分配的目标instance不是local listener machine,那么会通过remote_listener这个参数,把连接请求转移到remote machine上的listener, 然后由remote service listener发出一个server process返回客户端,建立连接,处理会话.
当conn建立连接以后,listener就没有用了,不会再用到了,如果这个时候,已经连接的那个instance down了,会重新由新分配的master instance通过remote_listener切换到可用instance,此时客户不会发现连接中断。conn 和 select操作是不会中断的。
当实例1注册监听的时候,即使节点2的instance没有启动,也会通过remote_listener在节点2 server上注册相应的listener1. 它是在数据库启动的时候,添加到相应的listener service里的。
整理自网络
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977(满)
DBA3 群:62697850 DBA 超级群:63306533;
聊天 群:40132017
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请
转载于:https://www.cnblogs.com/zlja/archive/2010/12/20/2449753.html
local_listener 与 remote_listener 参数说明相关推荐
- Oracle 单实例 迁移到 RAC 实例 -- 使用RMAN 异机恢复
Oracle 官网有关单实例迁移到RAC的一个步骤说明: How to Convert 10g Single-Instance database to 10g RAC using Manual Con ...
- 【DB笔试面试733】在Oracle中,RAC中REMOTE_LISTENER的作用是什么?
♣ 题目部分 在Oracle中,RAC中REMOTE_LISTENER的作用是什么? ♣ 答案部分 REMOTE_LISTENER参数主要用于RAC环境中监听器的远程注册,监听器的远程注册主要用于实现 ...
- RAC8——scan ip的理解
SCAN概念 先介绍一下什么叫SCAN,SCAN(Single Client Access Name)是Oracle从11g R2开始推出的,客户端可以通过SCAN特性负载均衡地连接到RAC数据库.S ...
- Oracle RAC 环境下的连接管理(转) --- 防止原文连接失效
崔华老师的文章!!! 这篇文章详细介绍了Oracle RAC环境下的连接管理,分别介绍了什么是 Connect Time Load Balancing.Runtime Connection Load ...
- Oracle RAC 环境下的连接管理
转自 http://www.oracle.com/technetwork/cn/articles/database-performance/oracle-rac-connection-mgmt-165 ...
- 六、配置Oracle数据库的网络环境
1. 连接建立的过程 场景:oracle默认监听器1521,把数据库服务注册到监听器中,客户端才能通过监听器登录到数据库上操作, 数据库的名称是orcl,注册后,叫服务命名 [oracle@oracl ...
- Oracle 11g R2 RAC 高可用连接特性
转自-阿里巴巴许春值 1.scan概念 什么叫 SCAN,SCAN (Single Client Access Name) 是 Oracle 从11g R2 开始推出的,客户端可以通过 SCAN 特性 ...
- 负载均衡设备oracle,Oracle RAC 服务器端联接负载均衡(Load Balance)
Oracle RAC 服务器端连接负载均衡(Load Balance) Oracle RAC服务器端的负载均衡是根据RAC中各节点的连接负荷数情况,将新的连接请求分配到负荷最小的节点上去.当数据库处于 ...
- Oracle11g rac监听,关于oracle11g RAC 监听器使用中出现的no services以及no listener分析...
首先,我们必须知道在oracle11g中,官方推荐GI和oracle数据库软件分开管理,在这种情况下,我们会发现数据库监听器其实是位于GI的管理账号下,即通常我们所创建的grid账号.在该grid账号 ...
最新文章
- NAR:UNITE真菌鉴定ITS数据库——处理未分类和并行分类(数据库文章阅读模板)
- Xamarin iOS开发实战上册-----2.2.2 使用代码添加视图
- 玩家为何沉迷于游戏?《密教模拟器》中的“上瘾体验”设计
- docker-compose安装elk7.1.1版本
- JavaScript 随意整理2
- 【平台兼容性】jeecg部署weblogic 测试,修改配置方法
- 视觉SLAM十四讲学习笔记-第四讲-Sophus实践、相似变换群与李代数
- 常用的redis命令
- 拳王虚拟项目公社:通过网络卖虚拟产品,月入1W的全自动化推广引流技术
- 基于阈值分解的多级中值滤波-附代码
- 软件签名不一致是什么意思
- maxon motor 471486电机
- 双耳节拍 枕头_枕头2-3-0不在
- Sequence Model-week1编程题2-Character level language model【RNN生成恐龙名 LSTM生成莎士比亚风格文字】...
- 【openlayers】ol3地图组成部分
- 一个3D摄像机的设计与实现
- 20189221 2018-2019-2 《密码与安全新技术专题》第二周作业
- window gcc编译器备忘录[Makefile语法说明][make clean指令错误(process_begin: CreateProcess()failed.]
- 买车容易行路难-买车
- Kerberos协议内容详解