【问题标题】:ORA-24408: could not generate unique server group nameORA-24408: 无法生成唯一的服务器组名称
【发布时间】:2012-05-16 02:06:26
【问题描述】:

系统:

Linux web 2.6.27.21-0.1-pae #1 SMP 2009-03-31 14:50:44 +0200 i686 i686 i386 GNU/Linux

PHP Version 5.3.8
Apache Version  Apache/2.2.21 (Linux/SUSE)
OCI8 Support    enabled
Version     1.4.7
Revision    $Revision: 321634 $
Active Persistent Connections   0
Active Connections  0
Oracle Run-time Client Library Version  11.2.0.3.0
Oracle Instant Client Version   11.2

打电话时oci_connect - 收到

ORA-24408: 无法生成唯一的服务器组名

无法理解这是什么类型的错误以及如何修复它。

【问题讨论】:

标签: php oracle


【解决方案1】:

如果你愿意,你可以降级到 10g(它显然不关心这个)但这不是必需的......

11g 即时客户端需要一个 /etc/hosts 文件条目,以便您的主机名指向 127.0.0.1。普通的“localhost”条目本身是不够的。

假设您的主机名是foomachine,您需要检查两个地方:

/etc/hosts 中,确保您有任何类似的条目 - 如果不存在则添加:

127.0.0.1   foomachine

还要确保/etc/sysconfig/network 文件也有HOSTNAME=foomachine

这应该可以解决问题。

【讨论】:

  • 太棒了,你拯救了我的一天。非常感谢。
  • 我可以确认这解决了我的设置问题(Mac OS X 10.8.4)。在 Mac OS X 上,我只需将条目添加到 /etc/hosts 文件,然后重试该命令,它就可以工作了。奇怪的是,在这个问题出现之前,我已经使用相同的代码几个星期没有问题了,但我很高兴它只需要一个简单的修复。感谢您的提示!
  • 它也适用于真实网络接口 IP 之一,不需要 127.0.0.1。
  • 我的主机名好像变了。我通过在终端中运行“主机名”找到了它。然后我通过更新 127.0.0.1 行将新主机名添加到我当前的主机文件中。
  • 脚本:echo "127.0.0.1 $(hostname)" >> /etc/hosts 作为超级用户。
【解决方案2】:

有点老问题,但我只是在将我的 Mac 升级到 Sierra 后偶然发现了这个问题。在那之前我没有遇到过问题。

诀窍肯定是将您的主机名添加到 /etc/hosts,但您必须拥有正确的主机名。这在 linux 上很容易,它在 /etc/sysconfig/network 中。在 Mac 上,在系统偏好设置 > 共享中找到它。在它说计算机名称的位置将类似于computer-name.local。在 /etc/hosts 中放置

   127.0.0.1 computer-name.local

当然用您的计算机名称替换计算机名称 :)。 无论数据库是远程数据库还是本地数据库,它都需要这个。

我有很多其他 127.0.0.1 的别名,但不是那个。一旦我添加了那个,我的应用程序就又开始工作了。

【讨论】:

    【解决方案3】:

    在我的情况下,我尝试连接的 OracleDB 服务器是远程服务器,而不是本地服务器,因此上述 127.0.0.1 localhost 技巧不起作用。

    以前,我通过将我的 Oracle DB 服务器的条目添加到我的 hosts 文件中来临时修复 DNS 问题。 我的主机文件中的这个 IP仍然是正确的 - 它仍然指向正确的 OracleDB 服务器 IP。

    通过从我的 hosts 文件中删除该条目,问题就消失了。

    我不知道为什么这对 OracleDB 来说是个问题,或者为什么错误消息如此迟钝,但我希望这对其他人有所帮助。

    (这是在 MacOS v10.11.5 上使用 InstantClient v12.1.0.2)

    【讨论】:

      【解决方案4】:

      我遇到了完全相同的问题。我修复了我的 /etc/hosts 和 /etc/sysconfig/network 文件并重新启动了网络,现在它工作正常。以下是一些快速而肮脏的说明:

      http://ahmadzainuddinzakaria.blogspot.com/2012/06/warning-ociconnect-functionoci-connect.html

      【讨论】:

        【解决方案5】:

        在 CentOS 6.5 中我更改了文件的值:/etc/sysconfig/network

        原值:

        HOSTNAME=localhost.localdomain
        

        新值:

        HOSTNAME=127.0.0.1
        

        【讨论】:

          【解决方案6】:

          你实际上不需要/etc/hosts中使用127.0.0.1类似的东西

          echo -e "127.0.0.1\t$HOSTNAME" >> /etc/hosts
          

          这违反常识(从 2013 年 2 月起正式反对 RFC 6761 ?)。

          幸运的是,如果你只注册了你的真实 IP 地址,它也可以工作——比如

          192.0.2.5 mymachine.example.net
          

          顺便说一句,在使用 DHCP 创建的虚拟机中经常缺少这一点。

          或者 - 最后的方案 - 使用来自 127.0.0.0/8 的其他 IP 地址

          127.0.1.1 mymachine.example.net
          

          使用 Oracle Instant Client 11.2 测试。

          处理诸如 Legato Backup 之类的奇怪事情的系统管理员会感谢您没有弄乱/etc/hosts

          【讨论】:

            【解决方案7】:

            将此添加到 /etc/hosts 解决了问题。

            127.0.0.1 someHostName
            

            要查找您计算机的主机名,只需在终端中键入主机名。使用 vim 等文本编辑器来编辑主机。

            ~ hostname
            someHostName
            ~ cd /etc
            /etc sudo vim hosts
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2016-09-08
              • 1970-01-01
              • 1970-01-01
              • 2010-09-17
              • 2019-11-11
              • 1970-01-01
              • 2017-05-26
              • 1970-01-01
              相关资源
              最近更新 更多