用sqlplus登陆数据库时,oracle 11g出现ORA-12514问题

转自:http://zhidao.baidu.com/question/144648216.html

启动服务

然后在sqlplus / as sysdba;
执行启动startup nomount;
alter database mount;
alter database open;
如果上面的三条语句顺利执行,数据库就能打开了,不行的话,查看alert_sid.ora文件中的错误信息。

然后The listener supports no services,这个信息显示,你的监听器还未配置服务,如果要添加服务可以在listener.ora这个文件中输入下面信息:

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test) 服务名
(ORACLE_HOME = E:oracleproduct10.2.0db_1) db_home
(SID_NAME = ORCL) ##这个是你要添加的服务
)
(SID_DESC =
(PROGRAM = extproc)
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:oracleproduct10.2.0db_1) ##这个服务保证你可以使用外部过程,如C程序
)
)

然后再配置tnsnames.ora文件,加入下面的内容:

ZHANGYU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test) 与上面的服务名对应
)
)

在连接时你就可以这样测试下:
tnsping zhangyu;
最后几行出现下面类似的文本信息就表明服务配置成功:

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = test)))
OK (110 msec)

还有监听器的动态注册特征,感兴趣的可以参见一些资料,由于篇幅有限,就介绍这么多。

监听器的配置跟所用平台无关,主要问题是这两个脚本文件;unix我没用过,不过linux我倒是用过的。
原文地址:https://www.cnblogs.com/x_wukong/p/3330947.html