Email: service@parnassusdata.com 7 x 24 online support!
Oracle 故障排除ORA-01116: 打开数据库文件 时出错
如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com
ORA-01116: 打开数据库文件 时出错
错误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 ^ 3~10 ^5之间(即在千位),那么你会遇到Bug 5257698TOO MANY“LX40030.NLB” FILES OPEN AFTER UPGRADE TO 10GR2
注意:上述错误/补丁表明,问题出现在升级到10G R2后。新安装若是使用10.2.0.2和10.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的第二个条目)的输出是同一类尺寸,那你就需要增加硬限制。
如果“软”限制(即的ulimit的n输出)与lsof | wc –l(即/tmp/lsofinfo.txt的第二个条目)的输出是同一类尺寸,那你就需要增加软限制
作为指导,对于电子业务环境中文件描述符的数目,推荐的硬性限制为65536(2 ^ 16),而在一些电子业务进行中,这一数目可能会更大,但或多或少都应该是这个数量级,即64K – 512K(2 ^ 16 – 2 ^19)
软限制要求会根据UNIX或Linux的不同特点而变化。但通常情况下是在硬限制和硬限制本身1/16之间。作为指导,查看适合你的特定平台的EBS安装和升级说明。
如果从Note 250262.1输出的健康检查诊断显示为 “190 ulimits OK?FAILED StackTooSmall”,那就是你的上限太低。
按照适用于你平台的Oracle数据库10g安装指南中说明的,ulimit(栈)应设置为最小值,例如在Solaris上最小值32768。
如果你不确定正确的值,或是不确定如何设置值,就联系DBA,O / S文件或O / S供应商。
改变文件描述符软硬限制的步骤会根据UNIX或Linux的不同特点,在两者之间变化。
如果上述有任何值是不对的,你的O / S供应商可能会提供给你一个补丁来进行纠正。
大多数情况下,64K以上的任何硬NOFILE值都可以解决这个问题
一旦文件描述符的数量增加,请‘反弹‘(重启)服务器,并重复步骤2-4,以验证更改已经生效。
加入我们的Oracle BI Publisher的社区,与其他Oracle BI Publisher的专家进一步讨论,向更多的同行学习。您可以访问Oracle BI Publisher Community ,提供My Oracle Support(MOS)的登录凭据。
有关BI Publisher的产品文档,公告,热点话题,社区,博客和培训的更多详细信息,请查看Oracle BI Publisher (BIP) Product Information Center (PIC) (Doc ID 1338762.1).。