【问题标题】:Oracle 11g Express error: ORA-12505, TNS: listener does not currently know of SID given in connect descriptorOracle 11g Express 错误:ORA-12505,TNS:侦听器当前不知道连接描述符中给出的 SID
【发布时间】:2014-01-07 22:00:05
【问题描述】:

我遇到了托管在 Linux Centos 6.4 上的 Oracle 11g Express 的问题。这台服务器从一个地方迁移到另一个地方,这个迁移改变了服务器的IP。 我们更改了 tnsname.ora 和 listerner.ora 文件中的 IP。在我们尝试从服务器连接到数据库实例时进行这些更改后,我们收到错误“已连接到空闲实例”。如果我们尝试使用 SQL 开发人员从客户端连接,则会收到错误“状态:失败 - 测试失败:侦听器拒绝连接并出现以下错误:ORA-12505,TNS:侦听器当前不知道连接描述符中给出的 SID ”。

我们已多次重新启动此服务器和数据库(通过 Oracle 菜单下的启动和停止数据库选项)多次,但我们仍然收到相同的错误。

请求您帮助解决此问题。

【问题讨论】:

    标签: oracle11g oracle10g database-connection database-migration


    【解决方案1】:

    通过sqlplus user/passwd(相对于sqlplus user/passwd@TNSALIAS)的本地连接不受IP 地址或tnsnames.ora 内容的影响。它也根本不需要侦听器,侦听器可以在listener.ora 中停止或根本不定义。换句话说,你在这里做错了。

    我的猜测是你被误导以为你已经启动了数据库,而实际上它并没有启动。检查您是否有一个名为 ora_MYORACLE_pmon 的进程。

    文件tnsname.ora 也无关紧要; Oracle 只检查tnsnames.ora

    【讨论】:

      【解决方案2】:

      我们解决了这个问题,实际上我们在某些文件中缺少服务器地址,它仍然引用旧地址。

      initXE.ora 缺少本地侦听器参数,然后我们将这个参数添加到它并开始工作。

      这可能不是通用解决方案,但它适用于我们的案例。

      【讨论】:

        【解决方案3】:

        如果侦听器最初配置有ALTER SYSTEM 命令(如ALTER SYSTEM SET LOCAL_LISTENER='';)并且该命令指定了SCOPE=MEMORY option,或者如果SCOPE 保留为默认值并且使用pfile 启动数据库,则会出现此行为。

        要修复它,请从重新启动之前重新发出所有 ALTER SYSTEM 命令。或者至少一个标识LOCAL_LISTENER。并设置SCOPE=BOTH

        【讨论】:

          猜你喜欢
          • 2015-08-31
          • 2021-08-03
          • 2014-04-21
          • 2013-08-14
          • 2017-08-22
          • 2020-03-02
          相关资源
          最近更新 更多