具体消息为:
ora-12514 tns listener does not currently know of service requested in connect descriptor环境
windows7 x64 oracle 11g问题起因:
大致是之前本机安装了一个oracle10g的client一个oracle11g的client,一个oracle11g的服务端本人卸载了其中的oracle10g的client,之后重新通过sqlplus连接本机oracle,提示上面的消息,但以上消息是否是由于卸载操作引起,尚未能证实,目前仅记录下,出现该问题时的解决方法。 处理问题步骤如下:一、此类问题首先检查windows服务中 OracleOraDb11g_home1TNSListener以及OracleServiceORCL是否已经正常启动如果已经正常启动,则表示当前出现的问题可能由于监听程序的配置不正确引起,最直接的方法为重新配置oracle监听程序步骤为:开始菜单 -> Oracle - OraDb11g_home1 -> 配置和移植工具 ->Net Configuration Assistant -> 监听程序配置
提示:配置监听程序过程中,将要求重启当前监听程序,建议在配置完成后,通过手动再次重启OracleOraDb11g_home1TNSListener以及OracleServiceORCL这两个windows 服务二、
完成第一步工作,首先通过sqlplus连接本地oracle,尝试用户scott/tiger(默认密码并未修改),此时系统报出如下错误:ERROR:ORA-01034: ORACLE not availableORA-27101: shared memory realm does not exist三、
根据网上查询资料,切换为sys用户登录,请输入用户名: sys as sysdba输入口令: change_on_install (默认密码并未修改)提示如下:
已连接到空闲例程。表示连接成功。
四、
此时输入startup命令启动oracle例程提示如下错误:ORA-00119: invalid specification for system parameter LOCAL_LISTENERora-00132 syntax error or unresolved network name 'listener_orcl'由此看仍然存在监听程序配置问题,
经由google查找oracle官方论坛,找到如下提问以及回答,与本人遇到情况相同https://community.oracle.com/message/10157153此处提取出其中解决方案:(本人环境为oracle11g)
步骤1:检查你的oracle安装目录%ORACLE_HOME%\network\admin下的 listener.ora和tnsnames.ora以及sqlnet.ora三个文件配置是否正确声明:若是之前提到的Net Configuration Assistant工具配置, listener.ora和tnsnames.ora这两个文件将由工具生成,默认情况下,此两个文件中的host地址为你的本机的网络ip,本人将其统一修改为127.0.0.1。执行如下命令
以如下用户以及身份在sqlplus中连接oracle:sys/change_on_install as sysdba执行如下命令:
(1)SQL> create pfile from spfile;File created(文件已创建)
(2)
此时在%ORACLE_HOME%\database目录下(有一些google的解决方案中,提到该文件被创建在%ORACLE_HOME%\dbs目录中,但本人oracle11g环境是建立在%ORACLE_HOME%\database中),创建了一个新文件,该文件名为INIT%ORACLE_SID.ORA。其中%ORACLE_SID为listener.ora文件中对应的sid名称(默认是orcl),(3)
此时打开INIT%ORACLE_SID.ORA文件,找到内容段local_listener='LISTENER_ORCL2',并将其删除(记得!是删除!)(4)
安装该提问中的解决方案,是接着执行startup nomount pfile='<your pfile here>',其中'<your pfile here>'表示刚才建立的INIT%ORACLE_SID.ORA路径,但本人执行该命令时并未成功,并提示 参数错误的情况,因此跳过了该步骤,尝试直接执行create spfile from pfile;
并提示文件创建成功(5)
最后执行SQL>startup 提示ORACLE 例程已经启动。以及数据库装载完毕。(6)
此时再次切换回scott用户connect scott/tiger提示连接成功。就此问题问题得以解决,总结问题的出现,大致与本机的oracle服务配置相关。出现类似问题需要按步骤排查。