千家信息网

Linux监听开启后无服务怎么办

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"Linux监听开启后无服务怎么办",在日常操作中,相信很多人在Linux监听开启后无服务怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Linux
千家信息网最后更新 2026年11月01日Linux监听开启后无服务怎么办

这篇文章主要介绍"Linux监听开启后无服务怎么办",在日常操作中,相信很多人在Linux监听开启后无服务怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Linux监听开启后无服务怎么办"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

报错信息:
[oracle@hp2 ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 18-OCT-2017 00:21:31

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.8.12)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 17-OCT-2017 19:45:26
Uptime 0 days 4 hr. 36 min. 5 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /app1/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /app1/oracle/diag/tnslsnr/hp2/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.8.12)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully


2种方法解决:

一、手工注册,每次重启监听都需要手工注册:

SQL> alter system register;

System altered.

二、修改 listener.ora,一劳永逸解决问题

在LISTENER里添加内容:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = orcl)

(SID_NAME = orcl)

)

)

另,感觉这是个bug,google下·看到:http://www.askmaclean.com/archives/11gr2-rac-add-listener-static-register.html

原来在11gr2新建和修改监听后,不会自动静态注册,需要退出netca 界面,启动netmgr界面,为监听加入静态注册的信息:

点选方才创建的监听器,选择Database Services菜单

填入Global Database Name和本地实例的SID信息,并确认ORACLE HOME Directory(应是Grid Infrastructure的Home目录)正确后点选Save Network Configuration。

重启监听即可
重新启动后状态:
[oracle@hp admin]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 18-OCT-2017 00:04:50

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

Starting /app1/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.4.0 - Production
System parameter file is /app1/oracle/product/11.2.0/db_1/network/admin/listener.ora
Log messages written to /app1/oracle/diag/tnslsnr/hp/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.8.11)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.8.11)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 18-OCT-2017 00:04:50
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /app1/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /app1/oracle/diag/tnslsnr/hp/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.8.11)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "SUNTX" has 1 instance(s).
Instance "SUNTX", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully


监听状态解析
在运行lsnrctl命令的status时,常会看到如下返回值:

服务"test"包含1个例程。

例程"mydata",状态 UNKOWN,包含此服务的一个处理程序。。。

服务"a"包含1个例程。

例程"mydata",状态 READY,包含此服务的一个处理程序。。。

这里的,状态UNKOWN即表明为静态注册(手动填写参数);

状态为READY的记录,表明为动态注册(listener.ora参数由PMON进程自动从参数文件获取);

一、静态注册

监听配置中,数据库服务中的全局数据库名,可以写任意内容,与数据库无关,只要保证SID正确即可连上数据库。

由于静态注册,参数是手动静态添加,与数据库无关。数据库无法确认监听是否正确配置。因此,lsnrctl中的status显示状态为unkown。即不保证能连通数据库。

注意:静态注册监听,客户端在配置tnsnames.ora服务命名时,"(Oracle 8i或更高版本)服务名"里填写内容要与服务端静态注册监听器时的全局数据库名一致。否则,无法连通。

lsnrctl中显示如下

服务"test"包含1个例程。

例程"mydata",状态UNKOWN,包含此服务的一个处理程序。。。

test即从监听配置过程,数据库服务中的"全局数据库名"读到的值(即配置文件中GLOBAL_DBNAME的值),"mydata"是从监听配置中,数据库服务中SID读到的值(即SID_NAME的值)。

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = test)

(ORACLE_HOME = /orahome/oracle/product/10.2.0/db_1)

(SID_NAME = mydata)

)

)

客户端在配置tnsname时,服务名(SERVICE_NAME)即为test。否则,连接不到数据库。

ABC =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.23)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME =
test)

)

)

这里的ABC,为服务命名。可以为任意值,在客户端连接服务器时,填写的主机字符串,即为此服务命名ABC。

二、动态注册

1、缺省的动态注册

pmon在数据库启动到mount或open时,动态从参数文件中读取service_names值。service_names可以为多个值。

service_names缺省为dbca建立数据库时的全局数据库名。

设置参数service_names为'a,b,c',命令如下:

alter system set service_names='a,b,c';

则:

lsnrctl状态如下:

服务"test"包含1个例程。

例程"mydata",状态 UNKOWN,包含此服务的一个处理程序。。。

服务"a"包含1个例程。

例程"mydata",状态 READY,包含此服务的一个处理程序。。。

服务"b"包含1个例程。

例程"mydata",状态 READY,包含此服务的一个处理程序。。。

服务"c"包含1个例程。

例程"mydata",状态 READY,包含此服务的一个处理程序。。。

服务 "mydata.ccddt.cn" 包含一个例程。

例程"mydata",状态 READY, 包含此服务的一个处理程序。。。

以上服务名a, b, c, mydata.ccddt.cn都为READY,为动态注册。

这里多了最后一条"mydata.ccddt.cn",是PMON缺省动态注册到监听器内的。

注意:不管参数service_names为何值,pmon都会自动以全局数据库名(这里为mydata.ccddt.cn)为服务名,动态注册一个监听。

缺省情况下,若启用动态注册监听,端口号必须为1521。若启用其他端口的动态监听注册,必须要做相关配置。

通过查看v$session,状态为SYS$USERS的连接为通过静态注册监听连接到服务器。

2、自定义端口的动态监听注册

若要启用非默认端口1521的动态监听注册,缺省状态,Oracle不会进行动态注册。要启用动态注册,必须设置local_listener参数。并在服务端配置tnsnames.ora指定监听参数,或者直接通过修改local_listener指定监听参数。步骤如下:

1)服务端

netmgr,配置监听程序,监听端口为1525(非默认端口)


保存配置

2)、指定监听参数

(1)法1:直接通过修改local_listener参数指定

SQL>alter system set LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.23)(PORT=1525))';
System altered

SQL>alter system register

System altered

(2)法2:

在Oracle服务器端建立$ORACLE_HOME/network/admin/tnsnames.ora。解析文件,位置并填入如下内容

mytest =

(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=TCP)(HOST = 192.168.1.23)(PORT = 1525))
)
)


这里的mytest也可以根据自己需要,修改为其他字符串。如a或b等。

设置参数,指定通过tnsnames.ora内的信息指定监听参数

SQL>alter system set local_listener=mytest;

System altered

SQL>alter system register;

3、查看监听器状态

LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.23)(PORT=1525)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 15-MAR-2011 10:43:47
Uptime 0 days 0 hr. 0 min. 56 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /orahome/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /orahome/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraserver)(PORT=1525)))
Services Summary...
Service "a" has 1 instance(s).
Instance "mydata", status READY, has 1 handler(s) for this service...
Service "b" has 1 instance(s).
Instance "mydata", status READY, has 1 handler(s) for this service...
Service "c" has 1 instance(s).
Instance "mydata", status READY, has 1 handler(s) for this service...
Service "mydata" has 1 instance(s).
Instance "mydata", status READY, has 1 handler(s) for this service...
Service "mydataXDB" has 1 instance(s).
Instance "mydata", status READY, has 1 handler(s) for this service...
Service "mydata_XPT" has 1 instance(s).
Instance "mydata", status READY, has 1 handler(s) for this service...
The command completed successfully

到此,关于"Linux监听开启后无服务怎么办"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

服务 监听 状态 数据 数据库 参数 动态 配置 程序 静态 处理 个例 全局 端口 怎么办 信息 内容 文件 监听器 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会 湖南永感互联网科技有限公司 为想互联网科技怎么样 广州百单互联网科技有限公司 网络科技有限互联网 中国 科技 互联网 远拓互联网科技 银优互联网科技有限公司 互联网金融和金融科技 哈尔滨新华互联网科技 福州新华互联网科技学校 知乎 北京华百购互联网科技有限公司 洛阳昕诺飞互联网科技有限公司 民营互联网公司国防科技 华中科技大学互联网的牛人 山东星卡互联网科技有限公司官网 互联网领先科技宣传片 富国互联网科技002692 福州德业互联网科技 广州全民伙伴互联网科技有限公司 哈尔滨大商圈互联网科技有限公司 北京禾田雨橡互联网科技 互联网科技实习生岗位职责 互联网企业和科技型企业 贵州叶脉互联网科技有限公司所属行业 互联网科技与管理 广州市恰铎互联网科技有限公司 华夏恒生互联网科技013171 中和天地互联网科技有限公司 艺电能源互联网科技有限公司招聘
0