今天安装的11g运行
lsnrctl start
提示:
The listener supports no services
The command completed successfully
将配置listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.1.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rycdb)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
tnsnames.ora
JRTDB2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rycdb)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = jrtdb2)
)
)
看了网上的方法
--登录数据库
$sqlplus / as sysdba
--显示服务名
SQL>show parameter service_names
--强制注册服务
SQL>alter system register;
--查看监听状态
$lsnrctl status
这种方法不行,解决方法:在listener.ora后面加入
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = jrtdb2)
(SID_NAME = jrtdb2)
)
)
lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-APR-2012 14:36:58
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rycdb)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 25-APR-2012 14:29:19
Uptime 0 days 0 hr. 7 min. 39 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.1.0/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/rycdb/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rycdb)(PORT=1521)))
Services Summary...
Service "jrtdb2" has 2 instance(s).
Instance "jrtdb2", status UNKNOWN, has 1 handler(s) for this service...
Instance "jrtdb2", status READY, has 1 handler(s) for this service...
Service "jrtdb2XDB" has 1 instance(s).
Instance "jrtdb2", status READY, has 1 handler(s) for this service...
The command completed successfully
问题解决,其中UNKNOWN表示静态注册
oracle监听 动态注册与静态注册
动态注册:在instance启动的时候PMON进程根据init.ora中的instance_name,service_names两个参数将实例和服务动态注册到listener中。
可以在sqlplus下通过
show parameter service_names 和show parameter instance_name 来查看
动态注册默认只注册到默认的监听器上(名称是LISTENER、端口是1521、协议是TCP)
静态注册:实例启动时读取listener.ora文件的配置,将实例和服务注册到监听程序。无论何时启动一个数据库,默认地都有两条信息注册到监听器中:数据库服务器对应的实例和服务。
lsnrctl status
实例状态为UNKNOWN值时表明此服务是静态注册的设置