Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9167613
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类:

2012-10-29 12:43:13

OCM实训:设置Oracle同一数据库实例上开启多个监听动态注册实例  

2012-10-27 15:09:51|  分类: linux下Oracle 10 |  标签: |字号 

在生产环境中,我们经常会碰到数据库监听假死的情况,导致监听假死的原因很多,通常主要是服务问题,或client连接请求过多导致oracle server资源被大量暂用,从而无法处理其他正常的client的请求。所以我们可以对同一个数据库实例配置多个不同的监听,分发给不同的用户或部门使用,如果哪一个监听经常假死,可以排查该用户或该部门的session使用情况,而其他用户或部门是不会受到影响的。

常用的多个监听的使用方式:
1、顺序分配执行,failover模式:当一个用户请求连接时,server会顺序的将可用的监听分配给client,从而保证一个监听故障而不会影响到其他用户正常访问。
2、随机分配执行,负载均衡模式:当一个用户请求连接时,server会随机的将负载低的监听分配给client,从而保证一个监听故障而不会影响到其他用户正常访问,并且每个监听对session的处理请求是相对平均的。

监听的HA+LB配置在后面的文章中在做讨论。

监听注册实例的两种方式:
1、动态注册:需要修改数据库参数和tnsnames.ora文件,每次启动监听服务会显示实例的运行状态,如果是正常的则显示”READY”
2、静态注册:只需要配置listener.ora文件,每次启动监听只能显示连接了哪些数据库实例,无法判断数据库实例是否正常工作,实例的运行状态显示为”UNKNOW”,所以我们通常在启动监听的时候,看到有的实例是READY的,有的实例是UNKNOW的,这个是正常的,因为有部分实例可能是动态注册的。

监听的配置文件:$ORACLE_HOME/network/admin/listener.ora
TNS的配置文件:$ORACLE_HOME/network/admin/tnsnames.ora

下面开始如何配置两个监听,要求实例都是动态注册的,每个监听可以单独管理:

首先配置listener.ora文件,
建立侦听LISTENER1 协议为:TCP 主机名称为:OracleServer 端口为:1500
建立侦听LISTENER2 协议为:TCP 主机名称为:OracleServer 端口为:1501
(主机名称也可以直接写为oracle 服务器的IP,OracleServer的ip为:192.168.1.100)
[root@OracleServer ~]# su – oracle
[oracle@OracleServer ~]$ echo $ORACLE_SID
felix
[oracle@OracleServer ~]$ echo $ORACLE_HOME
/u01/oracle/product/10.2.0/db_1
[oracle@OracleServer ~]$ cd $ORACLE_HOME/network/admin
[oracle@OracleServer admin]$ cat ./listener.ora

LISTENER1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = OracleServer)(PORT = 1500))
)
)

LISTENER2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = OracleServer)(PORT = 1501))
)
)

在tnsnames.ora添加一个tns配置,让数据库可以调用,tnsname 为FELIX,这个不一定要和SID一样,用户可以自定义。然后配置两个监听的连接地址信息。

我们可以看到监听2的实例 felix 也已经起来了, 而且状态显示为 READY, 说明数据库也是正常运行的,如果数据库服务没有起来,可以用sqlplus登陆后执行 startup force 来启动数据库。如果监听启动后,实例felix的状态要几分钟才能刷出来,我们为了更快看到效果,可以进入sqlplus执行一个命令让系统立刻快速注册刷新:alter system register;

另外注意,oracle的图形化配置工具都比较傻瓜,建议大家手工修改配置文件,有可能修改好的文件可以正常运行,但是图形工具无法识别,这个是很正常的。

原创文章,转载请注明: 转载自

本文链接地址: 


阅读(728) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~