我在使用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 listener当前不知道SID“。一分钟后,一切都稳定下来,我的应用程序开始正常工作。在系统启动时1分钟没有数据库对我来说是不能接受的,因此我正在尝试解决这个问题。
令人惊讶的是,它不会发生在我这里的其他linux机器中,我不太确定那个机器有什么不同。我比较了ora文件,但找不到任何区别,这似乎是徒劳无功的……
如果有人之前经历过并解决了这个问题,并与我分享了这个有价值的解决方案,我将非常感激。
发布于 2013-08-29 16:18:01
我想我找到了问题所在,在为网络接口分配IP地址之前,我似乎正在启动oracle-xe实例,在这种情况下,oracle需要一些时间才能接收连接,这就要求我在linux机器上设置静态ip,这是我不想要的。是否有解决方案可以让我以后仍然可以分配IP地址?
https://stackoverflow.com/questions/18503945
复制相似问题