我在来宾 VM(Windows 8 Hyper V)上安装了 oracle 服务器(标准版)。我已将主机条目映射为“brettvm”。我能够登录到虚拟机并使用 sqlplus 连接到默认实例。到目前为止,一切都很好。
编辑:这是服务器上的 listner.ora 文件。我开始怀疑问题可能出在此处:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = c:\oracle
服务器上的 tnsnames.ora 文件如下所示:
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
问题: 当我尝试从主机连接时,sqlplus 提示输入密码然后挂起。这是我在主机上的 tnsnames.ora:
orcl.brettvm =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = brettvm)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
我尝试过的一些事情:
- 已验证“brettvm”在我的主机中(可ping 且可浏览)
- 通过端口 80(浏览器/远程登录)验证主机和 VM 之间的连接
- 通过端口 1521 (telnet) 验证主机和 vm 之间的连接。请注意,我通过 Windows 防火墙在 VM 上打开了此端口。
- 通过主机上的 sqlplus 验证数据库已启动并正在运行(见上文)。
- 关闭虚拟机上的 Windows 防火墙
我将开始挖掘安装指南...
还有什么建议吗?谢谢。
最终,这归结为网络问题——使用静态 IP 配置来宾 VM 的网络适配器(内部交换机)(这是困难的部分),在主机和来宾机器中为该 IP 分配主机文件条目,以及然后更改 tnsnames.ora 文件(主机和来宾)和 listner.ora(来宾)以使用映射的主机名。
然后一切正常。
我在下面粘贴了主机和来宾以及侦听器和 tnsnames.ora 文件的内部交换机配置。
配置访客虚拟机/主机的步骤:
假设您已经创建了一个带有 Windows Server 操作系统的来宾 VM,以下是网络步骤...
4. 以下是我配置来宾 VM 的方式:
5. 我在主机和来宾上都为来宾虚拟机添加了主机文件别名:
6. 这是来宾 vm(数据库服务器)上的 listner.ora:
7. 这是来宾 VM 上的 tnsnames.ora:
8. 最后,这是客户端(主机)上的 tnsnames:
胃口大开!
——布雷特