Oracle 11g Express错误:ORA-12505,TNS:侦听器当前不知道连接描述符中给出的SID

时间:2013-12-19 11:00:04

标签: oracle11g oracle10g database-connection database-migration

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

我们多次重启此服务器和数据库(通过Oracle菜单下的选项Start和Stop数据库)多次,但我们仍然遇到同样的错误。

请求您帮助解决此问题。

3 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

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

可能这不是一般化的解决方案,但它适用于我们的情况。

答案 2 :(得分:0)

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

要解决此问题,请在重新启动之前重新发出所有ALTER SYSTEM命令。或者至少有一个标识LOCAL_LISTENER。并设置SCOPE=BOTH