Oracle 11g ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务

2. 在lisener.ora文件中找到

    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )

    将下面的一段内容copy进去,并适当修改。(红字部分为你的SID,其中GLOBAL_DBNAME为全局数据库名,可以与SID不同)

   (SID_DESC = 
      (GLOBAL_DBNAME = ORAC11
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1) 
      (SID_NAME = ORAC11
    )

修改后的内容如下:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\003\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\003\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
    (SID_DESC =
    (GLOBAL_DBNAME = ORCL)
    (ORACLE_HOME = D:\app\003\product\11.2.0\dbhome_1)
    (SID_NAME = ORCL)
        )
  )


3. 保存listener.ora文件,关闭并重新启动监听程序。

    lsnrctl stop   // 关闭

    lsnrctl start  // 启动

4. 此时,用正常的用户去连接双出现新的错误。

   

  ORA-27101: shared memory realm does not exist

5. 启动打开目录:D:\app\Administrator\admin\orac11\pfile,会发现里面有一个文件:init.ora.1052011103553,这是Oracle最后一次成功启动时备份的启动文件。

6. >sqlplus /nolog

    >conn / as sysdba

    >create spfile from pfile='D:\app\Administrator\admin\orac11\pfile\init.ora.1052011103553'

    >startup  // 启动数据库。

7. 一切恢复正常。


你可能感兴趣的:(Oracle 11g ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务)