remote_listener和listener password

listener注册在远程的目的是rac为了实现服务器负载均衡,如何把db的service_names注册在远程的listener上呢,注意远程注册service_name一定是动态注册的,把service_name注册到远程的listener上有什么缺点?[@more@]

测试版本:10.2.0.1

接下来来看上面提到的2个问题:

1.如何把sevice_names注册到远程的lisenter上,目前db的信息如下,数据库运行在windows下

C:>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 1月 16 22:05:49 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> show parameter service_names

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string ABC
SQL> show parameter db_name

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string orcl
SQL>

在win下的tnsnames.ora中加入下面内容:

LISTENER_R =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.253)(PORT = 1521))

这里的ip:192.168.0.253对应的是一台linux主机

之后修改win下db的

SQL> alter system set remote_listener=LISTENER_R;

系统已更改。

SQL>

之后转移到linux主机下观察listener的状态:

LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 16-JAN-2010 21:56:50
Uptime 0 days 0 hr. 13 min. 10 sec
Trace Level off
Security ON: Password
SNMP OFF
Listener Parameter File /opt/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /opt/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xys)(PORT=1521)))
Services Summary...
Service "ABC" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "ORCL" has 2 instance(s).
Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "TEST" has 2 instance(s).
Instance "TEST", status UNKNOWN, has 1 handler(s) for this service...
Instance "TEST", status READY, has 1 handler(s) for this service...
Service "orcl_XPT" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "test_XPT" has 1 instance(s).
Instance "TEST", status READY, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL>

清楚的发现了下面的信息:

Service "ABC" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...

.........

service...
Instance "orcl", status READY, has 1 handler(s) for this service...

这2条信息都是win下db的service_names(值为A,orcl是win下db的db_name,这个不论service_names是否有值,始终都会使用db_name进行动态注册的)

2.db的service_names进行了远程注册之后,我们可以把远程的listener,这里是linux主机看作是listner的server段,把windows主机看作是client段,这样称呼不知道是否准确.危险的事情出现了,在9i我们可以直接在listener 的client段(windows机器上)直接把远程的listener(linux机器上)停止,这是非常危险的,oracle为了防止这样的事情发生,提供了为listener设置密码.10g进行了安全性加强,从client段尝试停止远程的listener时出现如下错误:

LSNRCTL> stop listener_r
正在连接到 (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.253)(PORT=1521))
TNS-01189: 监听程序无法验证用户
LSNRCTL> exit

C:>set nls_lang=american_

C:>lsnrctl

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 16-JAN-2010 21:51
:04

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> stop listener_r
Connecting to (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.253)(PORT=1521))
TNS-01189: The listener could not authenticate the user

在remote listener(listener server段,这里是linux机器上)上设置password之后:
LSNRCTL> change_password
Old password:
New password:
Reenter new password:
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1521)))
Password changed for LISTENER
The command completed successfully
LSNRCTL> save_config
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1521)))
Saved LISTENER configuration parameters.
Listener Parameter File /opt/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Old Parameter File /opt/app/oracle/product/10.2.0/db_1/network/admin/listener.bak
The command completed successfully
在listener的server段为listener设置口令之后继续在client段尝试停止listener:
LSNRCTL> stop listener_r
Connecting to (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.253)(PORT=1521))
TNS-01169: The listener has not recognized the password
LSNRCTL> set password manager
The command completed successfully
LSNRCTL> stop listener_r
Connecting to (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.253)(PORT=1521))
The command completed successfully
检查远程listener(linux机器上)的状态:
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
LSNRCTL>
很listener已经从client段被成功stop了

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19602/viewspace-1030631/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/19602/viewspace-1030631/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值