Mac OSX上的Oracle,从虚拟机访问

时间:2012-05-09 08:27:25

标签: macos oracle osx-snow-leopard virtualization virtual-machine

我已经在guide of Raimonds Simanovskis之后在Mac OSX Snowleopard上安装了Oracle,据我所知,这是Snowleopard唯一可用的安装指南。

只要我在MacOX本身的Mac上使用Oracle,它运行良好,没问题。

现在我在Mac上有一个虚拟机(Parallels Desktop 5),在这个VM中,Windows XP正在运行。我想从Windows下的VM访问在Mac OSX上运行的Oracle数据库。从逻辑上讲,它就像从不同的计算机访问。但总是当我尝试从XP访问时,例如使用sqlplus

sqlplus iwes/iwes@192.168.3.2:1521/dbname

(192.168.3.2它是使用'仅限主机网络'的MacOS地址。此地址在其他应用程序中运行良好。)

然后我收到错误信息

ERROR:
ORA-12541: TNS: Kein Listener    [German for: "no listener"]

(在Mac OSX上,Oracle和监听器都启动并正常工作)

我的Oracle安装有什么问题或缺失?

这是我的listener.ora

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = dbname)
      (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
      (GLOBAL_DBNAME = dbname)
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

和我的tnsnames.ora

dbname =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dbname)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

1 个答案:

答案 0 :(得分:2)

你的listener.ora应该指定192.168.3.2作为主机,而不是localhost。

你的tnsnames.ora应该指定192.168.3.2作为别名dbname的主机(如果你根本使用tnsnames.ora) 在您的示例中,您不使用tnsnames.ora,而是直接跳转到mac的ip-address。 还要检查mac上的防火墙。