无法从其他计算机连接oracle数据库

无法从其他计算机连接oracle数据库,oracle,networking,oracle11g,oracle-sqldeveloper,database-administration,Oracle,Networking,Oracle11g,Oracle Sqldeveloper,Database Administration,我有两台计算机,计算机A有IP(10.11.11.2),其中包含oracle数据库11g R2,计算机B有IP(10.11.11.18)。我搜索了很多,在Tnsnames.ora和listener.ora文件中做了一些更改,但无法连接。但当我从客户机中输出10.11.11.2时,它会给出OK输出。这意味着数据库可以从客户端访问,但我无法使用Toad或Sqldeveloper连接数据库 错误信息如下: tns目前不知道请求的服务 我的电脑A(10.11.11.2)tnsname.ora和liste

我有两台计算机,计算机A有IP(10.11.11.2),其中包含oracle数据库11g R2,计算机B有IP(10.11.11.18)。我搜索了很多,在Tnsnames.ora和listener.ora文件中做了一些更改,但无法连接。但当我从客户机中输出10.11.11.2时,它会给出OK输出。这意味着数据库可以从客户端访问,但我无法使用Toad或Sqldeveloper连接数据库

错误信息如下: tns目前不知道请求的服务

我的电脑A(10.11.11.2)tnsname.ora和listener.ora文件粘贴到下面:

Tnsnames.ora文件

# tnsnames.ora Network Configuration File:     D:\app\Mobilityusr\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
# listener.ora Network Configuration File: D:\app\Mobilityusr\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

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

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.11.11.2)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = D:\app\Mobilityusr
# tnsnames.ora Network Configuration File: D:\app\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
listener.ora文件

# tnsnames.ora Network Configuration File:     D:\app\Mobilityusr\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
# listener.ora Network Configuration File: D:\app\Mobilityusr\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

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

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.11.11.2)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = D:\app\Mobilityusr
# tnsnames.ora Network Configuration File: D:\app\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
我的电脑B(10.11.11.18)tnsname.ora和listener.ora文件粘贴到下面:

tnsnames.ora文件

# tnsnames.ora Network Configuration File:     D:\app\Mobilityusr\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
# listener.ora Network Configuration File: D:\app\Mobilityusr\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

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

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.11.11.2)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = D:\app\Mobilityusr
# tnsnames.ora Network Configuration File: D:\app\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
listener.ora

# listener.ora Network Configuration File: D:\app\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

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

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = D:\app
# listener.ora Network Configuration File: D:\app\Mobilityusr\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

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


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.11.11.2)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = D:\app\Mobilityusr
从计算机B到oracle数据库(安装在Comupter A上)的tnsping图像也附于此:

错误图片也附上

在SQLDeveloper中,不要指定SID,而是选择服务名称。

经过大量研究,我解决了这个问题。我也必须与您共享它,以便任何有此问题的人都可以轻松解决它

Listener.ora文件用于侦听请求。若要从另一台计算机访问数据库,必须在listener.ora中添加两个条目(一个用于SID,另一个用于机器IP地址)

计算机A文件(listener.ora和tnsnames.ora)设置如下所示:

Listener.ora

# listener.ora Network Configuration File: D:\app\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

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

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = D:\app
# listener.ora Network Configuration File: D:\app\Mobilityusr\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

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


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.11.11.2)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = D:\app\Mobilityusr
SID_LIST_LISTENER包含两个条目第一个SID_DESC是默认条目,我们必须添加第二个SID_DESC以识别orcl SID,否则当从其他计算机连接数据库时,Sqldeveloper或toad或sqlplus将给出以下错误: 错误:sid当前不知道

现在Listener包含两个条目,一个默认为localhost,我们必须添加第二个条目,其中包含服务器机器IP。通过此项,服务器计算机上的数据库可以侦听包含此IP地址的连接,这些连接将连接到服务器数据库。否则,数据库将不会连接

注意:您可以使用这些配置,但不要忘记更改IP和oracle_主路径

tnsnames.ora文件用于定义任何数据库参数(SID、端口、主机)的别名。但并不强制更改tnsnames.ora以连接服务器和客户端,所以我不会修改位于服务器机器上的tnsnames.ora

计算机B tnsnames.ora与上述问题相同。 Computer B listener.ora与上述问题相同

总结: 您只需更改位于服务器计算机(Oracle_home/network/admin/)上的listener.ora文件,并添加两个条目,一个在SID_LIST_listener中添加SID详细信息,另一个在listener中添加机器IP描述

还要检查环境变量(ORACLE_UNQNAME、ORACLE_SID、ORACLE_HOME、TNS_ADMIN等)

还有一件更重要的事情,您必须检查侦听器服务是否已启动并正在运行 使用以下命令(打开CMD并键入):

**lsnrctl状态**

**lsnrctl启动**

**lsnrctl停止**


当您更改listener.ora文件时,您必须停止然后启动lsnrctl服务,以使更改生效。

我遇到了很多相同的问题,但Oracle 12C有很多问题。最终得到了几乎相似的解决方案

我的数据库服务器位于192.168.1.165上,端口为1526。 还必须在Windows服务器防火墙中打开端口1526

# listener.ora Network Configuration File: G:\app\db12\product\12.1.0\dbhome_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = G:\app\db12\product\12.1.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:G:\app\db12\product\12.1.0\dbhome_1\bin\oraclr12.dll") ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1526)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1526)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1526)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.165)(PORT = 1526)) ) ) #listener.ora网络配置文件:G:\app\db12\product\12.1.0\dbhome\u 1\Network\admin\listener.ora #由Oracle配置工具生成。 SID\u列表\u侦听器= (SID_列表)= (SID_DESC= (SID_NAME=CLRExtProc) (ORACLE\u HOME=G:\app\db12\product\12.1.0\dbhome\u 1) (PROGRAM=extproc) (ENVS=“EXTPROC\u DLLS=ONLY:G:\app\db12\product\12.1.0\dbhome\u 1\bin\oraclr12.dll”) ) ) 听众= (说明和清单= (说明= (地址=(协议=IPC)(键=EXTPROC1526)) (地址=(协议=TCP)(主机=本地主机)(端口=1526)) ) (说明= (地址=(协议=IPC)(键=EXTPROC1526)) (地址=(协议=TCP)(主机=192.168.1.165)(端口=1526)) ) )