Oracle 故障排除ORA-01116:打开错误…错误24打开的文件太多

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com

 

错误24经常出现在提交并发请求,如日常商务智能(DBI)初始或增量加载时。然而在执行各种操作时,随时都可能出错24。在这份说明中,我们假设问题是可重复的,以提交DBI请求集为例。

这问题只有两个已知原因。本说明的目的是提供一套清晰的说明,以确定问题的原因是什么,以便采取适当行动。

这是Oracle遇到的一个操作系统(OS)错误,Oracle会将其报告给应用/用户。

故障排除步骤

1.确保你的数据库服务器上有UNIX工具lsof的副本。如果没有,下面的信息提供了如何获得副本的详细信息。

lsof的最新分配是通过从主机lsof.itap.purdue.edu匿名FTP。你会发现在酒吧/工具/ UNIX/ lsof的目录中lsof的分布。

你也可以使用这个网址:

ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof

LSOF在别处也有镜像。当您访问lsof.itap.purdue.edu并改变其pub/tools/unix/lsof的目录,你会得到一些镜像站点的列表。

这个pub/tools/unix/lsof的目录下,在其镜像文件中包含更加完整的列表。谨慎使用镜像不是所有的镜像都拥有最新版本的lsof

一些预编译的可执行文件lsof可在lsof.itap.pur-due.edu找到,但不支持使用最好能从源代码构建自己的文件。如果你觉得必须使用一个预编译的可执行文件,请阅读在pub/tools/unix/lsof/二进制子目录中的README文件中以及分配的00*文件中出现的注意事项。

2.以拥有Oracle进程的telnet/ ssh身份连接到RDBMS服务器。


3.
UNIX提示符处发出以下命令

whoami > /tmp/orainfo.txt
ulimit -n >> /tmp/orainfo.txt
ulimit -Hn >> /tmp/orainfo.txt
ps -ef | grep -i oracle >> /tmp/orainfo.txt

4.发出以下命令,以root身份连接

su –

5.  发出以下命令 ( root身份)

whoami > /tmp/rootinfo.txt
ulimit -n >> /tmp/rootinfo.txt
ulimit -Hn >> /tmp/rootinfo.txt

6.不要离开Telnet / SSH会话。返回到电子商务套件(或应用程序),并重现该错误。

如果在提交电子商务套件的要求设置,如DBI负载过程中出现问题,你会得到一个形式错误对话框,包含错误消息。不要单击确定按钮确认此错误对话,直到你完成下面的步骤。

7.一旦错误发生24,返回到Telnet / SSH会话,而且仍应该以root身份登录并发出以下命令。

lsof | grep -i LX40030.NLB | wc -l > /tmp/lsofinfo.txt
lsof | wc -l >> /tmp/lsofinfo.txt
lsof >> /tmp/lsofinfo.txt

8.查看创建的/tmp/lsofinfo.txt文件。

应该包含两个数字,随后打开实际文件列表。如果这两个数字都很大,幅度顺序相同,通常在~10 ^ 310 ^5之间(即在千位),那么你会遇到Bug 5257698 TOO MANY“LX40030.NLB” FILES OPEN AFTER UPGRADE TO 10GR2

注意:上述错误/补丁表明,问题出现在升级到10G R2后。新安装若是使用10.2.0.210.2.0.3版本也可能会出现这些问题。

如果Bug 5257698已在lsof输出的许多LX40030.NLB文件中得到确认,您将需要应用Patch 5257698 TOO MANY“LX40030.NLB” FILES OPEN AFTER UPGRADE TO 10GR2

重要提示:如果您遇到这个错误,用Patch 5257698不能修复损坏的LX40030.NLB文件,就有必要重新生成NLS/data/9idata目录,记录在Note 431529.1

patch 5257698应用于EBS系统

9.检查/tmp/orainfo.txt/tmp/rootinfo.txt。确认WHOAMI在每种情况下都能返回到预期的用户名。

10.检查两个/tmp/orainfo.txt/tmp/rootinfo.txt使用ulimit命令的输出:

如果限制(即ulimit-Hn的输出)与lsof | WC-1(即/ tmp / lsofinfo.txt的第二个条目)的输出是同一类尺寸,那你就需要增加硬限制。

如果限制(即的ulimitn输出)与lsof | wc –l(即/tmp/lsofinfo.txt的第二个条目)的输出是同一类尺寸,那你就需要增加软限制

作为指导,对于电子业务环境中文件描述符的数目,推荐的硬性限制为655362 ^ 16),而在一些电子业务进行中,这一数目可能会更大,但或多或少都应该是这个数量级,即64K – 512K2 ^ 16 – 2 ^19

软限制要求会根据UNIXLinux的不同特点而变化。但通常情况下是在硬限制和硬限制本身1/16之间。作为指导,查看适合你的特定平台的EBS安装和升级说明。

如果从Note 250262.1输出的健康检查诊断显示为 “190 ulimits OKFAILED StackTooSmall”,那就是你的上限太低。

按照适用于你平台的Oracle数据库10g安装指南中说明的,ulimit(栈)应设置为最小值,例如在Solaris上最小值32768

如果你不确定正确的值,或是不确定如何设置值,就联系DBAO / S文件或O / S供应商。

改变文件描述符软硬限制的步骤会根据UNIXLinux的不同特点,在两者之间变化。

如果上述有任何值是不对的,你的O / S供应商可能会提供给你一个补丁来进行纠正。

大多数情况下,64K以上的任何硬NOFILE值都可以解决这个问题

一旦文件描述符的数量增加,请反弹(重启)服务器,并重复步骤2-4,以验证更改已经生效。

加入我们的Oracle BI Publisher的社区,与其他Oracle BI Publisher的专家进一步讨论,向更多的同行学习。您可以访问Oracle BI Publisher Community ,提供My Oracle SupportMOS)的登录凭据。

有关BI Publisher的产品文档,公告,热点话题,社区,博客和培训的更多详细信息,请查看Oracle BI Publisher (BIP) Product Information Center (PIC) (Doc ID 1338762.1).

Comment

*

沪ICP备14014813号

沪公网安备 31010802001379号