首页 文章

无法从客户端计算机连接到Oracle 12c

提问于
浏览
0

我花了3天时间试图弄清楚为什么我无法从客户端计算机连接到我的Oracle 12数据库 . 我已经阅读了很多文章和谷歌搜索,但还没有找到解决方案 . 我已经尽了一切可能并且已经知道了 . 所以我希望有人能指出我正确的方向 .

以下是一些细节:

  • 安装了Oracle 12c的Win7 x64 .

  • Windows Server 2012 R2(客户端,是的,此设置并不理想 . 稍后将解释原因) .

  • Windows Server 2012 R2(域控制器)

  • 所有计算机都是VM,是域的一部分 .

  • 所有VM都在ESXI 6.0下运行

我可以做任何事情没有任何问题:

  • 登录oracle服务器 .

ORCL是我的oracle isntance(全局数据库标识符) .

6.1运行tnsping orcl

6.2 lsnrctl状态(启动和运行)

6.3从Windows服务管理单元停止并重新启动列表器服务 .

6.4 sqlplus system / xyz @ orcl

Connects w/o any problems.

6.5 Oracle SQL Developer可以连接到ORCL

6.6可以ping客户端机器 .

但是我不能做以下事情:

  • 登录到客户端计算机

7.1将oracle服务器上的tnsnames.ora复制到此客户端计算机并放在[ORACLE_HOME] \ network \ admin所在的位置 . 用oracle sserver IP替换“localhost” .

7.2使用sqlplus system / xyz @ orcl或Oracle SQL Developer进行连接

I get TNS: no listener found.

7.3可以ping oracle服务器 .

7.4 tnsping orcl(失败)

7.4已经禁用了oracle服务器上的所有防火墙(域,私有和公共) . 防火墙或端口应该没有任何问题 .

无论我做什么,我都无法从客户端机器连接 . 有人能告诉我我做错了什么吗?另外,我无法在Win2012R2上安装Oracle 12c . 所以我安装在Win7x64上 . 但最终所有VM都将在Windows Server 2012R2上运行 . 这个设置是我的家庭实验室 .

谢谢!

1 回答

  • 0

    用oracle sserver IP替换“localhost”

    看起来监听器只监听localhost(127.0.0.1);您可以使用 lsnrctl statusnetstat -an | find "1521" (或您未使用默认值时的实际端口号)确认 .

    它没有监听服务器的外部IP地址,因此当您尝试连接到该IP上的1521(或任何已配置的)时,没有任何内容可以监听 - 这就是为什么您会“找不到侦听器” .

    您需要将 listener.ora 修改为listen to both localhost and the server IP address,或仅侦听外部地址 . 但后者有副作用 - 您现有的连接和 tnsnames.ora 条目需要更改以引用该地址(或者,即使它是静态的,解析为该地址的DNS名称),并且您的数据库可能需要修改所以它通过 LOCAL_LISTENER 初始化参数知道要注册的侦听器地址 . 更改 listener.ora 后,您需要退回侦听器,然后可以再次检查 netstat .

相关问题