我遇到了一个非常奇怪的oracle行为,也许有人可以帮助我,让我快速总结一下:
我选择的操作系统是debian linux,我使用的是Oracle XE 11.0.2.0。在linux启动时,我运行一个位于/etc/init.d/下的脚本文件。我添加了以下行以使oracle在系统启动时启动:
/etc/init.d/oracle-xe start
在这一行之后,我从脚本运行我的应用程序,我的应用程序很大程度上依赖于oracle db,因此一旦oracle启动,我肯定我的应用程序将运行正常。不幸的是我的假设似乎是错误的。这就是为什么:我在3台机器中设置了类似的设置,其中2台我看到了奇怪的行为,系统启动后oracle db没有响应连接请求,即使oracle-xe start命令完成执行。
我的观察如下,如果我在执行oracle-xe start后立即运行我的应用程序,我至少会在一分钟内收到ora-12505错误:“TNS监听器当前不知道SID”。一分钟后一切都稳定下来,我的应用程序开始正常工作。在系统启动时没有db的1分钟对我来说是不可接受的,因此我试图解决这个问题。
令人惊讶的是,它不会发生在我在这里的其他一个Linux机箱中,我不太确定该机箱有什么不同。我比较了ora文件,但找不到任何区别,看起来像是一只疯狂的追逐......
如果有人事先经历过并解决了这个问题并与我分享这个有价值的解决方案,我将非常感激。
答案 0 :(得分:0)
我想我发现了问题,看起来我在为网络接口分配IP地址之前启动oracle-xe实例,在这种情况下,oracle需要一些时间来接收连接,这需要我设置静态IP linux盒子,这是我不想要的东西。有没有解决方案,以便我以后仍可以分配IP地址?