oracle 11g ORA-12514问题

用sqlplus登陆数据库时,会出现12514的问题。sqlplussys@testassysdba输入密码后出现ORA-12514:TNS:listenerdoesno... 用sqlplus登陆数据库时,会出现12514的问题。
sqlplus sys@test as sysdba输入密码后出现ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor,上网查询许多未果。希望有经验的朋友指教
查看listener.ora内容为:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = HUAANserv)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = /opt/oracle

查看status信息为:
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=HUAANserv)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Solaris: Version 11.2.0.1.0 - Production
Start Date 31-MAR-2010 10:58:28
Uptime 0 days 0 hr. 8 min. 22 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/11.2/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/HUAANserv/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=HUAANserv)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
用"/ as sysdba"进去会提示Connected to an idle instance
什么都做不了啊。

谢谢 linuxocp。不过我用的是solaris 10,不是windows
展开
 我来答
linuxocp
2010-04-01 · TA获得超过267个赞
知道答主
回答量:82
采纳率:0%
帮助的人:120万
展开全部
Connected to an idle instance

证明你实例未启动,先:
在cmd中输入net start|find "Ora"
一般有下面的两行:
OracleOraDb10g_home1TNSListener 监听器
OracleServiceORCL 数据库服务

如果没有的话,在运行里面输入
services.msc 找到相关实例服务,启动之

然后在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:\oracle\product\10.2.0\db_1) db_home
(SID_NAME = ORCL) ##这个是你要添加的服务
)
(SID_DESC =
(PROGRAM = extproc)
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_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)

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

以上都是自己写的,绝无CTL+c,ctl+v.

监听器的配置跟所用平台无关,主要问题是这两个脚本文件;unix我没用过,不过linux我倒是用过的。
网易云信
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同... 点击进入详情页
本回答由网易云信提供
sgy5621871
2010-04-01 · TA获得超过116个赞
知道小有建树答主
回答量:285
采纳率:0%
帮助的人:165万
展开全部
你语句sqlplus sys@test as sysdba 中的@后面的test是什么意思??如果是实例名的话。。。你可以先set oracle_sid=test后再 sqlplus sys/密码 as sysdba登陆。

用"/ as sysdba"进去会提示Connected to an idle instance
什么都做不了啊。
如果像你说的这样。。那么你的数据库就没有完全启动。。你可以执行alter database open;来启动它
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhuzhudon
2010-04-01 · TA获得超过480个赞
知道答主
回答量:295
采纳率:0%
帮助的人:0
展开全部
BEN =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(sid = ben )
(SERVER = dedicated)
(SERVICE_NAME = bEn)
)
)
贴一个我本机的连接串,你发现你少了什么东西没
注:(SERVER = dedicated) 这个不是必要的,有默认

Connected to an idle instance
数据库没有被MOUNT
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ora_jungle
2010-03-31
知道答主
回答量:12
采纳率:0%
帮助的人:1.3万
展开全部
配置tnsnames.ora,里面加入要监听的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式