0

我在使用 oracle 时遇到了一个非常奇怪的行为,也许有人可以帮助我,让我快速总结一下:

我选择的操作系统是 debian linux,我使用的是 Oracle XE 11.0.2.0。在 linux 启动时,我运行一个位于 /etc/init.d/ 下的脚本文件。我添加了以下行以使 oracle 在系统启动时启动:

/etc/init.d/oracle-xe start

在这一行之后,我从脚本运行我的应用程序,我的应用程序严重依赖于 oracle 数据库,因此一旦 oracle 启动,我肯定我的应用程序将运行正常。不幸的是我的假设似乎是错误的。原因如下:我在 3 台机器上设置了类似的设置,其中 2 台我看到奇怪的行为,系统启动后 oracle db 没有响应连接请求,即使 oracle-xe start 命令完成执行。

我的观察如下,如果我在执行 oracle-xe start 后立即运行我的应用程序,我至少会收到 oracle-12505 错误一分钟: "TNS listener does not current know of SID" 。一分钟后,一切都稳定下来,我的应用程序开始正常工作。在系统启动时没有 db 的 1 分钟在性能方面对我来说是不可接受的,因此我正在尝试解决这个问题。

令人惊讶的是,它并没有发生在我在这里拥有的其他 linux 盒子中,我不太确定那个盒子有什么不同。我比较了ora文件,但没有发现任何区别,这似乎是一场大雁追逐......

如果有人以前经历过并解决过这个问题并与我分享这个有价值的解决方案,我将不胜感激。

4

1 回答 1

0

我想我发现了问题,看起来我在为网络接口分配 IP 地址之前启动了 oracle-xe 实例,在这种情况下,oracle 需要一些时间来接收连接,这需要我在 linux 机器上设置静态 ip,这是我不想要的。有没有解决方案,以便我以后仍然可以分配 IP 地址?

于 2013-08-29T08:18:01.107 回答