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值时表明此服务是静态注册的设置