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

来源:互联网 发布:sql 将竖列字段拼接 编辑:程序博客网 时间:2024/06/02 04:21

一般情况下,orcale的监听可以分为以下2种情况进行配置

1. 服务器上有多个实例,多个实例共同使用1个监听程序(即同一个端口进行监听)

2. 服务器上有多个实例,每个实例分别使用独立的监听程序(既使用不同的监听端口)


step1.配置监听程序

默认情况下,数据库安装好后,会建立一个listener的监听程序,默认端口1521.

使用自带管理软件 net configuration assistant 进行监听程序的增加、删除、重命名等操作。添加监听程序成功后,会自动生成相关 “监听服务”


step2 配置“服务命名”

PS:(1)如果是 多实例使用一个监听端口,即在这里,把每一个服务命名的 监听端口设置一致即可。

         (2)如果是 多实例使用不同监听端口,即在这里,把每个服务命名的监听端口设置不一样即可。

如果出现:ORA-12514:TNS 错误,需要修改目录:C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN 下的listener.ora文件

把内容修改如下

# listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

#监听程序的描述-第一个默认的监听程序,使用1521端口
LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
  )

#新增加的监听程序,使用1522端口
LISTENER1 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-D3Z0VMU1JGC)(PORT = 1522))
    )
  )

# 服务命名的内容,如果需要2个监听程序,分别使用不同的端口,需要配备2个如下的参数
# 第一个服务命名,与第一个监听程序名称对应
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl2)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (SID_NAME = orcl2)
    )
  )
# 第二个服务命名,与第二个监听程序名称对应
SID_LIST_LISTENER1 =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl2)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (SID_NAME = orcl2)
    )
  )

完成之后,重启监听程序,即可





0 0
原创粉丝点击