oracle 11 无法解析连接描述符中指定的sid,Oracle 11g ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务...

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

解决过程:

1. 找到listener.ora监听文件,具体位置:D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora

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)

)

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,

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

startup  // 启动数据库。

7. 一切恢复正常。

ora-12514的错误的原因有很多。但无外乎这几种:

1)、 ORA-12541: TNS: 没有监听器

显而易见,服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。启动监听器:

$ lsnrctl start或

C:lsnrctl start

2)、 ORA-12154: TNS: 无法处理服务名

检查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件(Windows下如D:oracleora92networkadmin tnsnames.ora,Linux/Unix下/network/admin/tnsnames.ora)里每项服务的首 行服务名称前不能有空格。

3)、 ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的SERVICE_NAME

打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。同时检查sqlnet.ora,例如如果想要采用简便连接方式连接就需要在NAMES.DIRECTORY_PATH参数中添加EZCONNECT。

4)、Ora-12514:TNS:监听程序当前无法识别链接描述符中请求的服务

该问题是由于缺少监听器的SID_LIST描述项引起的,采用netca进行配置的时候经常会遇到该问题,listener.ora示例如下

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /opt/oracle/product/9.2.0.4)

(PROGRAM = extproc))

(SID_DESC =

(GLOBAL_DBNAME = SAMPLE.COM)

(ORACLE_HOME = /opt/oracle/product/9.2.0.4)

(SID_NAME = SAMPLE)))LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = tcy.com)(PORT = 1521)))

// 解决办法

1.cmd  进入 sqlplus / as sysdba

2.增加 process 和session 重启服务

3.修改LISTENER.OAR   文件添加

(SID_DESC =

(GLOBAL_DBNAME = orcl)

(ORACLE_HOME = f:\app\MY\product\11.2.0\dbhome_1)

(SID_NAME = orcl)

)

4.修改tnsnames.ora

(CONNECT_DATA =

(SERVER = dedicate)

(SERVICE_NAME = orcl)

)

dedicate

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值