gpt4 book ai didi

perl - 当我从反引号调用 sqlplus 时,为什么 ActivePerl 64 位会崩溃?

转载 作者:行者123 更新时间:2023-12-01 18:24:23 26 4
gpt4 key购买 nike

我们在将数据处理到 Oracle 数据库的 Perl 脚本中遇到错误。一些细节:

  • 服务器:Windows Server 2003 R2 64 位
  • 甲骨文:10.2.0.4
  • Perl:ActivePerl 5.10 64 位,版本 1005

因此,perl 脚本连接到 Oracle 数据库,并运行 SQL 从另一个数据库加载数据。它通过 sqlplus 命令行运行 SQL,如下所示:

$resultString = `sqlplus $connectString \@sqlScript.sql $var1 $var2`;

{名字被更改以保护无辜}

现在奇怪的是,昨晚perl脚本运行的数据库蓝屏并重新启动。今天早上再次运行 Perl 脚本时,同样的情况。我们追踪到上面的 perl 代码行,该行试图连接到周末关闭的数据库。

我可以在有问题的服务器上可靠地重现该错误,但不能在另一个 win2003 64 位服务器上重现该错误(相同的 perl 安装)。

有人知道为什么系统调用(当它收到 ORA-12500 错误时)会使服务器崩溃吗?我还没有机会寻找任何转储文件,但到目前为止,我无法在相同的基本环境下使其他任何东西崩溃。

更新:因此确定两台服务器(一台崩溃了,一台没有)没有修补到同一级别,也没有任何最近的更新。因此,两者都得到了修补,并再次运行了测试。之前没摔过的还是没摔。曾经做过的那个现在仍然如此。我想我会把它扔掉,以防有人在考虑补丁。

最佳答案

这是一个相当老的问题,但听起来崩溃的不仅仅是 Perl,而是整个机器。听起来 Perl 也与数据库在同一台机器上运行。

如果没有关于 sqlscript 内部内容的更多信息,最可能的原因是输出非常大并且耗尽了所有系统内存。尝试使用 system() 运行不带反引号的程序,看看是否有帮助。

关于perl - 当我从反引号调用 sqlplus 时,为什么 ActivePerl 64 位会崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2096583/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com