连接到远程服务器时,ora 27101共享内存不存在

时间:2013-12-13 16:51:21

标签: oracle sqlplus

我遇到远程Oracle数据库服务器的问题,它在Windows中运行,我的客户端在linux上运行

如果我使用带有ORACLE_SID的sqlplus,它可以正常工作

sqlplus my_user/my_pass@REMOTEDB

但是,如果我通过使用ORACLE_SID环境变量执行相同操作,则会出现此错误:

export ORACLE_SID = REMOTEDB
sqlplus my_user/my_pass

ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist

这是我的tnsnames.ora文件

REMOTEDB =
    (DESCRIPTION =
        (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.150)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SID = REMOTEDB)
        (SERVER = DEDICATED)
    )
)

这是我的listener.ora文件

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
    (SID_NAME = CLRExtProc)
    (ORACLE_HOME = C:\oracle\product\11.2.0\dbhome)
    #      (PROGRAM = extproc)
    (ENVS = "EXTPROC_DLLS=ONLY:C:\oracle\product\11.2.0\dbhome\bin\oraclr11.dll")
)
(SID_DESC =
 (SID_NAME = REMOTEDB)
 (ORACLE_HOME = C:\oracle\product\11.2.0\dbhome)
  #     (PROGRAM = extproc)
 (ENVS = "EXTPROC_DLLS=ONLY:C:\oracle\product\11.2.0\dbhome\bin\oraclr11.dll")
)
)

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

我真的坚持这个,任何建议都会受到赞赏

1 个答案:

答案 0 :(得分:1)

ORACLE_SID仅适用于使用BEQ适配器的本地数据库(使用管道而不是网络套接字实现)。如果要连接到远程数据库,请使用TWO_TASK。 (并且不要质疑名称TWO_TASK,它有历史原因; - )

例如,请参阅http://ora-exp.blogspot.de/2007/06/oraclesid-and-twotask-environment_21.html(它有点陈旧但不过时)。