`
wsql
  • 浏览: 12260524 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Local listener&Romote listener

 
阅读更多
一, LOCAL_LISTENER 和 REMOTE_LISTENER
本篇文章主要來說明這兩個參數在Failover和Loadbalance中的作用,順便說一下靜態註冊和动态注册。
注册的大致含义是将数据库作为一个服务注册到监听程序。客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以连接数据库。
动态注册中的实例值来源于参数文件中instance_name,此值在rac环境中每个节点都有一个不同的值。
服务名来自于service_name,如果该参数没有设定值,数据库将结合参数文件中的 db_name和db_domain的值来注册。

10g RAC中默认端口的Listener.ora文件如下:
SID_LIST_LISTENER_node01 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u02/oracle/app/oracle/product/10.2.0/db)
(PROGRAM = extproc)
)
)
LISTENER_node01 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = node01-vip)(PORT = 1521)(IP = FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.200.31)(PORT = 1521)(IP = FIRST))
)
)
如上是默认端口的监听配置,pmon会动态注册默认port为1521的监听,如果需要向非默认监听注册,则需要配置local_listener参数,并且需要在Tnsnames.ora中加入监听的信息:
10g RAC中非默认端口的Listener.ora文件如下:
SID_LIST_LISTENER_node01 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u02/oracle/app/oracle/product/10.2.0/db)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = rac1)
(ORACLE_HOME = /u02/oracle/app/oracle/product/10.2.0/db)
)
)
LISTENER_NODE01 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = node01-vip)(PORT = 1525)(IP = FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST = node01)(PORT = 1525)(IP = FIRST))
)
)
参数值如下:
NAME TYPE VALUE
---------------- ------------- ---------------
local_listener string LISTENER_node011


tnsnames.ora文件中包含如下:
LISTENER_node01 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = node01-vip)(PORT = 1525))
)
)
LISTENER_node02 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = node02-vip)(PORT = 1525))
)
)
静态注册也就是实例启动时读取Listener.ora中配置,将实例和服务注册到监听程序。
例子如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = lichaodg)
(ORACLE_HOME = /oracle2/product/11.2.0/dbhome_1)
(SID_NAME = lichaodg)
)
(SID_DESC =
(GLOBAL_DBNAME = lichaodg_DGMGRL)
(ORACLE_HOME = /oracle2/product/11.2.0/dbhome_1)
(SID_NAME = lichaodg)
)
)
下面看看这两个参数在基于Server-Side Load Balance中的使用。
11.2及以上版本中,出现了SCAN的概念,那么应用连接通过Scan Listener来路由到某个合适(负载相对其它节点低)的节点,那么如果能够达到这样的目的,每个节点就需要能够接收到数据库实例的负载信息。oracle通过local_listener、remote_listener,oralce分别向这两个参数指向的listener进行注册来实现此需求。
11gR2默认参数如下:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string (DESCRIPTION=(ADDRESS_LIST=(AD
DRESS=(PROTOCOL=TCP)(HOST=10.7
0.236.133)(PORT=1521))))
remote_listener string zjddesp12-scanip:1521

其中host=10.70.236.133为VIP.
它使用EZConnect,要enable的话,需要在sqlnet.ora添加names.directory_path=(ezconnect,tnsnames,ldap)
11gR2之前的话,需要在每个节点tnsnames.ora添加:
LISTENERS_CB =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = cb11-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = cb12-vip)(PORT = 1521))
)
修改remote_listener参数为TNS别名:
SQL> alter system set remote_listener='listeners_cb' scope=both sid='*';
分享到:
评论

相关推荐

    Filter&Listener&Ajax.pdf

    在JavaWeb开发中,Filter、Listener和Ajax是三个关键的技术概念,它们各自扮演着不同的角色,共同构建了高效、动态的Web应用程序。 首先,Filter(过滤器)是JavaWeb中的一个重要组件,用于拦截用户请求和服务器...

    Java进阶-Filter&Listener&Ajax&Json(十五).zip

    在Java Web开发中,Filter、Listener、Ajax和Json是四个非常关键的概念,它们共同构建了高效、交互性强的Web应用程序。下面将详细讲解这四个技术及其在实际开发中的应用。 **1. Filter(过滤器)** Java Servlet ...

    java_web_第9章_Filter与Listener.ppt

    11.1 Web应用的事件模型 11.2 Web应用的过滤器 11.3 小 结 11.1.1 事件与监听器接口 11.1.2 监听环境事件 11.1.3 监听请求事件 11.1.4 监听会话事件 11.1.5 事件监听器的注册

    listener监听器demo

    在Java编程语言中,`Listener`接口是一种常见的事件处理机制,它主要用于实现对象之间的通信。在Java Swing和Java AWT库中,`Listener`接口被广泛应用于用户界面(UI)组件,以响应用户的操作,例如按钮点击、窗口...

    TcpListener异步通信

    本文将深入探讨如何使用C#实现一个简单的TcpListener来支持异步通信,允许多客户端同时连接。 首先,我们需要理解TcpListener类在C#中的作用。TcpListener是.NET Framework提供的一个类,用于监听特定IP地址和端口...

    SpringBoot整合Listener的两种方式.docx

    在Spring Boot应用中,整合Listener主要是为了监听应用的生命周期事件,例如在应用启动或关闭时执行特定的操作。这里我们讨论两种整合Listener的方式。 ### 方式一:通过注解扫描完成Listener组件的注册 1. **创建...

    RAC listener.ora详解.docx

    Oracle RAC 监听器配置文件 listener.ora 详解 Oracle RAC 监听器配置文件 listener.ora 是一个核心配置文件,用于配置 Oracle Net Listener 的参数。本文将详细介绍 listener.ora 文件的配置参数、协议地址参数、...

    针对Oracle的TNS listener的攻击原理及方法介绍

    Oracle TNS Listener是Oracle数据库系统中用于监听客户端请求的关键组件。其基本功能是在网络上监听客户端发来的连接请求,并对这些请求做出响应。然而,TNS Listener也存在一系列安全漏洞,尤其是缓冲区溢出和配置...

    c# socket 、TCPClient、TCPListener 用法详解.doc

    C# Socket、TCPClient、TCPListener 用法详解 C# 中的 Socket 编程是基于 Windows Sockets (Winsock) 接口的托管实现,提供了一个强大且灵活的网络编程模型。在本文中,我们将详细介绍 C# 中的 Socket 编程,包括 ...

    listener我的listener listener我的listener

    标题中的"listener我的listener listener我的listener"可能是在强调Listener的重要性或者是在多次提及一个与Listener相关的个人项目或资源。 在Java中,Listener模式是设计模式的一种,属于行为型模式,它允许我们...

    TcpListener 监听服务端

    TcpListener 是 .NET Framework 中用于创建 TCP 服务器端应用程序的关键组件。它允许程序监听来自多个客户端的连接请求,实现网络通信。在这个场景中,我们关注的是如何使用 TcpListener 创建一个可以处理多客户端...

    Tomcat中--Error listenerStart错误的解决方案

    ### Tomcat中Error listenerStart错误的解决方案 在Java Web应用开发过程中,经常遇到的一个问题是Tomcat启动时出现“Error listenerStart”这样的异常信息。本文将详细介绍这一问题的原因、可能涉及的因素以及具体...

    C#Winform使用TCPListener加多线程编程实现客户端服务器端聊天模式

    本文将深入探讨如何使用C#的Winform框架结合TCPListener和TCPClient,以及多线程技术,实现客户端与服务器端的聊天模式。此外,我们还将讨论如何通过委托来解决在非UI线程中操作控件时可能引发的异常。 首先,TCP...

    TcpListener 和TcpClient使用总结

    TcpListener listener = new TcpListener(localAddress, Port); listener.Start(); Console.WriteLine("Server is running..."); while (true) { TcpClient client = listener.AcceptTcpClient(); ...

    handler与listener的区别

    在ExtJS框架中,`handler`和`listener`都是用于响应用户交互的关键概念,它们各自有不同的使用场景和特点。理解两者的区别对于有效管理和组织应用的事件处理至关重要。 1. **Handler** - `handler`通常与`Action`...

    配置ORACLE的listener.ora、tnsnames.ora

    在Oracle数据库的运行过程中,`listener.ora`和`tnsnames.ora`是两个至关重要的配置文件,它们负责管理和通信数据库实例与客户端应用程序之间的连接。 `listener.ora`文件是Oracle监听器的配置文件,它定义了监听器...

    ORA-12541 TNSno listener 的解决方案

    ORA-12541 TNSno listener 的解决方案 ORA-12541 TNSno listener 的解决方案

    C#,winform,Tcp通信源码 使用TcpListener和TcpClient 源码

    在.NET框架中,C#语言提供了丰富的网络编程接口,其中包括TcpListener和TcpClient类,这两个类是用于实现基于TCP协议的客户端与服务器端通信的核心组件。本篇文章将深入探讨这两个类的工作原理、如何使用以及相关的...

    基于tcplistener和tcpclient的一对多通讯原型

    TcpListener listener = new TcpListener(IPAddress.Any, 1234); ``` 这行代码告诉服务器在所有可用的IP地址(`IPAddress.Any`)上监听1234号端口。 2. 开始监听: 使用`Start()`方法启动监听: ```csharp ...

    Oracle12c启动问题解决说明

    打开init<sid>.ora文件,找到local_listener这一行,错误的是这样的local_listener='LISTENER_ORCL',我们需要将其修改为: local_listener='(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(Host=localhost)(PORT=1521)))'...

Global site tag (gtag.js) - Google Analytics