ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle srvctl的小bug

Oracle srvctl的小bug

原创 Linux操作系统 作者:yangtingkun 时间:2007-03-29 00:00:00 0 删除 编辑

今天发现一个SRVCTL命令的小bug


SRVCTL工具可以用来管理RAC环境,用来启动、关闭数据库、监听和其他服务。

今天在使用srvctl关闭监听的时候,发现一个小问题:

$ lsnrctl status

LSNRCTL for Solaris: Version 10.2.0.2.0 - Production on 29-3 -2007 10:31:11

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

正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER
STATUS
------------------------
别名
LISTENER_RACNODE2版本 TNSLSNR for Solaris: Version 10.2.0.2.0 - Production启动日期 28-3 -2007 10:27:02正常运行时间 1 0 小时 4 9 跟踪级别 off安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件
/data/oracle/product/10.2/database/network/admin/listener.ora监听程序日志文件 /data/oracle/product/10.2/database/network/log/listener_racnode2.log监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.25.198.225)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.25.198.223)(PORT=1521)))
服务摘要
..服务 "+ASM" 包含 1 个例程。
例程 "+ASM2", 状态 BLOCKED, 包含此服务的 1 个处理程序...服务 "+ASM_XPT" 包含 1 个例程。
例程 "+ASM2", 状态 BLOCKED, 包含此服务的 1 个处理程序...服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...服务 "testrac" 包含 2 个例程。
例程 "testrac1", 状态 READY, 包含此服务的 1 个处理程序...
例程 "testrac2", 状态 READY, 包含此服务的 2 个处理程序
...服务 "testracXDB" 包含 2 个例程。
例程 "testrac1", 状态 READY, 包含此服务的 1 个处理程序...
例程 "testrac2", 状态 READY, 包含此服务的 1 个处理程序
...服务 "testrac_XPT" 包含 2 个例程。
例程 "testrac1", 状态 READY, 包含此服务的 1 个处理程序...
例程 "testrac2", 状态 READY, 包含此服务的 2 个处理程序
...命令执行成功
$ srvctl stop listener -n racnode2
$ lsnrctl status

LSNRCTL for Solaris: Version 10.2.0.2.0 - Production on 29-3 -2007 10:32:44

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

正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12541: TNS:
无监听程序

TNS-12560: TNS:
协议适配器错误
TNS-00511:
无监听程序
Solaris Error: 146: Connection refused
$ lsnrctl start

LSNRCTL for Solaris: Version 10.2.0.2.0 - Production on 29-3 -2007 10:32:47

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

启动/data/oracle/product/10.2/database/bin/tnslsnr: 请稍候...

TNSLSNR for Solaris: Version 10.2.0.2.0 - Production系统参数文件为/data/oracle/product/10.2/database/network/admin/listener.ora写入/data/oracle/product/10.2/database/network/log/listener.log的日志信息监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=racnode2)(PORT=1521)))

正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER
STATUS
------------------------
别名
LISTENER版本 TNSLSNR for Solaris: Version 10.2.0.2.0 - Production启动日期 29-3 -2007 10:32:47正常运行时间 0 0 小时 0 0 跟踪级别 off安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件
/data/oracle/product/10.2/database/network/admin/listener.ora监听程序日志文件 /data/oracle/product/10.2/database/network/log/listener.log监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=racnode2)(PORT=1521)))
监听程序不支持服务
命令执行成功
$ srvctl stop listener -n racnode2
$ lsnrctl status

LSNRCTL for Solaris: Version 10.2.0.2.0 - Production on 29-3 -2007 10:33:00

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

正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER
STATUS
------------------------
别名
LISTENER版本 TNSLSNR for Solaris: Version 10.2.0.2.0 - Production启动日期 29-3 -2007 10:32:47正常运行时间 0 0 小时 0 12 跟踪级别 off安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件
/data/oracle/product/10.2/database/network/admin/listener.ora监听程序日志文件 /data/oracle/product/10.2/database/network/log/listener.log监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=racnode2)(PORT=1521)))
监听程序不支持服务
命令执行成功

如果用srvctl关闭监听后,再用lsnrctl start打开监听。这时srvctl仍然认为监听已经关闭。因此,再次使用srvctl关闭监听,似乎srvctl根本没有去执行。

如果希望srvctl可以关闭监听,那么需要先用srvctl启动监听,然后再关闭。

$ lsnrctl status

LSNRCTL for Solaris: Version 10.2.0.2.0 - Production on 29-3 -2007 10:50:47

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

正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER
STATUS
------------------------
别名
LISTENER版本 TNSLSNR for Solaris: Version 10.2.0.2.0 - Production启动日期 29-3 -2007 10:32:47正常运行时间 0 0 小时 18 0 跟踪级别 off安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件
/data/oracle/product/10.2/database/network/admin/listener.ora监听程序日志文件 /data/oracle/product/10.2/database/network/log/listener.log监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=racnode2)(PORT=1521)))
服务摘要
..服务 "+ASM" 包含 1 个例程。
例程 "+ASM2", 状态 BLOCKED, 包含此服务的 1 个处理程序...服务 "+ASM_XPT" 包含 1 个例程。
例程 "+ASM2", 状态 BLOCKED, 包含此服务的 1 个处理程序...服务 "testrac" 包含 2 个例程。
例程 "testrac1", 状态 READY, 包含此服务的 1 个处理程序...
例程 "testrac2", 状态 READY, 包含此服务的 2 个处理程序
...服务 "testracXDB" 包含 2 个例程。
例程 "testrac1", 状态 READY, 包含此服务的 1 个处理程序...
例程 "testrac2", 状态 READY, 包含此服务的 1 个处理程序
...服务 "testrac_XPT" 包含 2 个例程。
例程 "testrac1", 状态 READY, 包含此服务的 1 个处理程序...
例程 "testrac2", 状态 READY, 包含此服务的 2 个处理程序
...命令执行成功
$ srvctl start listener -n racnode2
$ srvctl stop listener -n racnode2
$ lsnrctl status

LSNRCTL for Solaris: Version 10.2.0.2.0 - Production on 29-3 -2007 10:51:28

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

正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12541: TNS:
无监听程序

TNS-12560: TNS:
协议适配器错误
TNS-00511:
无监听程序
Solaris Error: 146: Connection refused

搜索了一下metalink,没有发现关于这个问题的说明。

而且,这个问题只在关闭监听时出现,启动监听则没有问题:

$ srvctl start listener -n racnode2
$ lsnrctl status

LSNRCTL for Solaris: Version 10.2.0.2.0 - Production on 29-3 -2007 11:14:25

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

正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER
STATUS
------------------------
别名
LISTENER_RACNODE2版本 TNSLSNR for Solaris: Version 10.2.0.2.0 - Production启动日期 29-3 -2007 11:14:20正常运行时间 0 0 小时 0 4 跟踪级别 off安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件
/data/oracle/product/10.2/database/network/admin/listener.ora监听程序日志文件 /data/oracle/product/10.2/database/network/log/listener_racnode2.log监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.25.198.225)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.25.198.223)(PORT=1521)))
服务摘要
..服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...命令执行成功
$ lsnrctl stop

LSNRCTL for Solaris: Version 10.2.0.2.0 - Production on 29-3 -2007 11:14:29

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

正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))命令执行成功
$ srvctl start listener -n racnode2
$ lsnrctl status

LSNRCTL for Solaris: Version 10.2.0.2.0 - Production on 29-3 -2007 11:14:50

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

正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER
STATUS
------------------------
别名
LISTENER_RACNODE2版本 TNSLSNR for Solaris: Version 10.2.0.2.0 - Production启动日期 29-3 -2007 11:14:44正常运行时间 0 0 小时 0 5 跟踪级别 off安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件
/data/oracle/product/10.2/database/network/admin/listener.ora监听程序日志文件 /data/oracle/product/10.2/database/network/log/listener_racnode2.log监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.25.198.225)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.25.198.223)(PORT=1521)))
服务摘要
..服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...命令执行成功

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

上一篇: ORA-17447错误
请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10487847