ORA-28547:connection to server failed,probable Oracle Net admin error (DBD ERROR: OCISessionBegin)

The listener.ora file's SID_LIST section may INCORRECTLY contain a "PROGRAM" line and/or an "ENVS" line for all database instances.

For example, for a listener called LISTENER1 the following may be set for a "static" SID_LIST section:

 

SID_LIST_LISTENER1 =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = ORCL1)
      (ORACLE_HOME = E:\app\oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:E:\app\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = E:\app\oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:E:\app\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

In the example above, the first section contains the SID_NAME and ORACLE_HOME values for the Database instance required for connection to.
However, it also contains a PROGRAM and an ENVS value which will also attach to client connections through the SID_NAME Value.
This can result in Oracle*Net connection errors such as ORA-28547.

官方文档中提到只要去掉和实例名相关的那个SID_LIST中的PROGRAM和ENVS的条目。

解决方法:

      打开【listener.ora】文件,去除PROGRAM和ENVS,重启监听或者重启Windows

重启后如果仍然无法连接,说明是navicat自带的instantclient版本和要连接的数据库的版本不一致,解决方法如下:

1)下载对应的oracle instantclient安装包,11g可以直接用云盘里下载好的,地址如下:

/uploads/files_user30/article/5efc6558f01c6866766.png

    下载好后解压到navicat对应的目录下,例如我的目录:D:\Program Files (x86)\PremiumSoft\Navicat Premium 12, 然后在Navicat中配置一下,选择工具-选项:

然后选择左边选项卡中的环境-OCI环境:

/uploads/files_user30/article/5efc68102151d252019.png

    选择解压位置的oci.dll,确定后重启navicat软件即可正常连接到oracle:

/uploads/files_user30/article/5efc6868eaed4220862.png

/uploads/files_user30/article/5efc68ace9fad765605.png

0 个评论

要回复文章请先登录注册