如何为一个instance配置多个监听,并且实现Client Load Balancing和Client Load Balancing。
打开NETCA,配置两个监听器。
LISENTER,默认监听器,一路next,就配置完毕, 监听端口1521。
配置LISENTER2,注意监听端口改为1522,其它和LISENTER一致。
这个时候,LISENTER已经可以使用了。
但是LISENTER2还是不行,因为Oracle只会为第一个默认的监听注册服务。
在$ORACLE_HOME/NETWORK/ADMIN,编辑lisenter.ora文件,如下:
红色字体为需要增加的内容
SID_LIST_LISTENER2 =
(SID_LIST =
(SID_DESC =
(SID_NAME = WWJ)
(ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
(GLOBAL_DBNAME = WWJ)
)
)
LISTENER2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = valen)(PORT = 1522))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = valen)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
需要解释的是,SID_LIST_<lisenter name> 这里的<lisenter name>要和LISTENER名称一致。
SID_DESC则注册要提供服务的数据库实例名。这样LISTENER2 才能够提供服务。
否则会报TNS-错误。
测试过程,配置local tns name如下:
1522 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = wwj)
)
)
1521 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = wwj)
)
)
local =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = wwj)
)
)
1522和1521分别对应两个监听器,local稍后再解释:
测试:
SQL> conn [url=mailto:wwj/wwj@1521]wwj/wwj@1521
已连接。
SQL> conn [url=mailto:wwj/wwj@1522]wwj/wwj@1522
已连接。
OK,再看local,
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
这里的意思是,该命名对应了两个监听端口,如果一个Crash,会立刻切换到另外一个。
并且如果多个连接,会随机的分配监听。
测试
SQL> conn [url=mailto:wwj/wwj@local]wwj/wwj@local
已连接。
STOP LISENTER,再次连接,这个时候,连接比第一次慢了1秒钟左右
SQL> conn [url=mailto:wwj/wwj@local]wwj/wwj@local
已连接。
成功,这时连接上了LISTENER2
关于Oracle网络服务的资料,在OCP教材的第四章Oracle Net Services有很清晰的说明。
分享到:
相关推荐
在Oracle数据库环境中,为了满足高可用性和资源优化的需求,常常会遇到在单一主机上配置多个实例和多个监听器的情况。这种配置方式不仅能够提高资源利用率,还能实现更细粒度的管理和控制。本文将深入探讨如何在...
在Oracle数据库环境中,监听器是运行在服务器端的一个后台进程,它的主要职责是监听来自客户端的连接请求,并将这些请求转发给相应的数据库实例。本文将深入探讨如何配置Oracle监听器,以便更好地理解和操作数据库...
- **负载均衡和故障转移**:通过配置多个监听器实例来实现负载均衡和高可用性。 - **安全性增强**:可以启用SSL/TLS加密来保护传输中的数据。 #### 总结 正确配置Oracle监听器对于确保数据库服务的稳定性和可访问...
为了实现一个Oracle实例配置多个监听器的目的,首先需要了解监听器的工作原理以及如何进行配置。 ##### 步骤一:定义多个监听器 监听器的配置文件通常位于数据库安装目录下的`network\admin\`文件夹中。主要涉及的...
本文将详细讲述如何在Oracle 11g环境下设置一个监听器对应多个实例的配置方法。 首先,Oracle的网络配置可以分为图形界面配置和命令行配置两种方式。 在图形界面下,主要通过Net Configuration Assistant工具来...
在Oracle环境中,为了实现高可用性和资源的有效利用,经常会遇到需要在同一台服务器上部署多个Oracle实例的情况。这种部署模式被称为“Oracle双实例”或者“多实例”。本文将详细介绍如何配置Oracle双实例的监听器...
在这个文件中,可以定义多个服务名及其对应的连接参数。 #### 三、Oracle网络连接配置方法 - **图形化工具**:Oracle提供了图形化工具`Oracle Net Manager`来简化网络配置的过程。通过这个工具,用户可以直观地...
在Linux环境下配置Oracle数据库时,有时我们需要在同一台服务器上安装多个Oracle实例,并通过一个监听器进行管理。这种配置可以提高资源利用率并简化网络管理。本文将详细介绍如何在Linux下为两个Oracle实例配置一个...
Oracle 9i数据库监听是数据库服务对外...总之,Oracle 9i数据库监听器的配置涉及多个步骤,理解并掌握这些步骤对于数据库管理员来说至关重要,这不仅关乎到数据库服务的稳定运行,也是确保数据安全和高效访问的基础。
监听器运行在数据库服务器之上,与 Oracle 实例(可为多个)相关关联,是一个专门的进程 process,在 Windows 的服务项目或者 Linux 的运行进程列表中,都会看到对应的运行进程。Windows 上名为 TNSLSNR,Linux/Unix...
3. **默认服务名**:如果你有多个数据库实例,可以通过定义默认服务名来指定监听器应该将连接请求路由到哪个实例。 二、tnames文件(tnsnames.ora) tnsnames.ora文件同样位于$ORACLE_HOME/network/admin目录下,...
而在共享连接模式中,多个客户端共享同一个Server Process,这时监听器会向Dispatcher进程请求一个Server Process。Server Process与监听器之间交换信息,包括进程编号和连接地址。监听器再将这些信息返回给客户端,...
通常,每台数据库服务器至少需要配置一个监听器,但为了优化性能和处理大量并发连接,可以配置多个监听器来分散负载。 在配置监听器时,需要注意以下几点: - **端口设置**:确定监听器监听的端口号,确保它不会与...
数据守护(Data Guard)是Oracle提供的一种高可用性解决方案,它可以创建并维护一个或多个备用数据库,以便在主数据库出现问题时接管服务。配置数据守护需要设置redo log传输、standby数据库的状态监控以及故障切换...
- `DESCRIPTION_LIST`:表示监听器可以接受多个服务连接请求。 - `DESCRIPTION`:表示监听器的一个连接描述符。 - `ADDRESS_LIST`:表示连接描述符中的一个地址列表,每个地址都对应着不同的协议类型及端口号。 ...
- 重启监听器和Oracle服务。 #### 四、最佳实践 1. **统一命名规范**:为所有服务名制定统一的命名规则,有助于提高可读性和可维护性。 2. **定期检查**:定期检查服务名配置的有效性和安全性,确保其符合最新的...
### 在Linux下重启Oracle数据库及监听器的知识点详解 #### 一、背景介绍 在Linux环境下管理和维护Oracle数据库是一项常见的任务。对于DBA(数据库管理员)来说,掌握如何有效地重启Oracle数据库及其监听器是非常...
5. 负载均衡:监听器可以依据预设策略将客户端请求分发到多个数据库实例,以平衡系统负载。 三、监听器基本操作 1. 命令查看:使用`lsnrctl help`命令可以查看监听器提供的所有操作。 2. 状态查看:通过`lsnrctl ...
在Oracle数据库系统中,监听器(Listener)是一个关键组件,负责管理数据库实例与客户端应用程序之间的通信。当"Oracle11g监听日志文件过大导致监听无法启动"的问题出现时,通常意味着监听器的日志文件(listener....