ORA-12505, TNS:listener does not currently know of SID given in connect descriptor 解决方案

ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

一、产生原因

安装oracle11g后出现过一次这个问题,解决后,重启了一次电脑又出现了这个问题, oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
原因在于:
ORA-01078: failure in processing system parameters & LRM-00109: could not open parameter file
打不开initORCL.ora。
第一次的解决方案是参考这篇博客解决的
当时的问题还有ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
正因为这个解决方案为电脑重启复现问题埋下了隐患

startup pfile='F:\myoracle\oracle\admin\orcl\pfile\init.ora.482016225850'

启动oracle时指定了initorcl.ora文件件,正常启动的话自然不会携带这个参数
第二次遇到这个问题参考了两篇博客找到了根源,排产问题原因博文
解决办法博文

二、解决办法

  1. 首先,让我们确认数据库已关闭:
    sqlplus / as sysdba
    连接到空闲实例。
    这Connected to an idle instance是告诉我们数据库已关闭的文本。
  2. 现在让我们断开连接并尝试以普通用户的身份重新连接,该用户无权启动/关闭数据库,也没有在数据库关闭时连接到它的权限
sqlplus -L user/pw@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=orcl)))
  1. 以正常用户身份连接会报错ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的 SID
  2. sqlplus / as sysdba再次连接,startup启动oracle发现报错
  3. 参考解决办法博文,错误路径下product\11.2.0\dbhome_1\database路径下查看initorcl.ora文件,发现果然并不存在,前往\admin\orcl\pfile路径下将init.ora 复制到启动读取路径下,并重命名
  4. 再次启动问题解决。

在这里插入图片描述

おすすめ

転載: blog.csdn.net/weixin_43288999/article/details/121147117