ora-12514(12514错误轻松解决你的数据库问题)
一、oracle 11g ORA-12514问题
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我倒是用过的。
二、...Developer却无法正确登录oracle,提示错ora-12514
sqlplus可以连接,plsql不行说明监听服务没有起来。
如果是安装在自己机器上的oracle,试试以下步骤
1.在命令行里输入sqlplus/ as sysdba
如果没有显示成功连接的信息,说明是ORACLE没有开,
在windows服务中打开ORACLE<你的SID>这样命名的服务。
2.在命令行中尝试tnsping orcl,
如果显示错误,在windows服务中打开ORACLELISTENER这样命名的服务。
重复以上1,2步骤,应该就可以了
三、求助:数据库ORA-12514:TNS:listener does not.错误
是数据库监听没有启动。
造成ORA-12560: TNS:协议适配器错误的问题的原因有三个:
1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,
启动oraclehome92TNSlistener服务。
2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务
面板,启动oracleserviceXXXX,XXXX就是你的database SID.
3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SI
D设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建
,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下
输set oracle_sid=XXXX,XXXX就是你的database SID.
经过以上步骤,就可以解决问题。