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

在生产环境中,我们经常会碰到数据库监听假死的情况,导致监听假死的原因很多,通常主要是服务问题,或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的图形化配置工具都比较傻瓜,建议大家手工修改配置文件,有可能修改好的文件可以正常运行,但是图形工具无法识别,这个是很正常的。

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

本文链接地址:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值