在网上找了很多解决方法后还是没解决此问题
开启监听依然提示:
the listener supports no services
最终解决方法是在listener.ora文件中添加一行
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = globe)
(SID_NAME = globe)
)
)
globe为实例名
原因如下:
Oracle9i以后,后台进程PMON自动在监听器中注册在系统参数SERVICE_NAMES中定义的服务名,SERVICE_NAMES默认为DB_NAME+DOMAIN_NAME。监听配置文件listener.ora中可以不必指定监听的服务名。但是,当数据库处于关闭状态下PMON进程没有启动,也就不会自动注册监听的实例名,所以使用sqlplus
sys/his@orc0 as sysdba 会出现ORA-12514错误。
修改后的listener.ora文件如下:
# listener.ora Network Configuration File:
/ora/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 = 10.2.1.185)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = globe)
(SID_NAME = globe)
)
)
然后 lnsrtcl stop
lnsrtcl start
lnsrtcl status