ORACLE在HP_UX下的系列问题处理之一
作者:网络 佚名
2005-11-29 00:00
评论
分享
【IT168 服务器学院】 问题描述:
每次我启动一个新的应用程序时(例如 Oracle 和 Perf),总是得到下面的错误信息:
crt0: Error couldn''t open dld.sl errno: 000000023
同时syslog.log中也包含了这个错误信息:
File table overflow
该如何解决这个问题?
配置信息:CONFIGURATION
操作系统Operating System - HP-UX
版本Version - 11.0
子系统Subsystem - Oracle 8.0.5
解决方法:ESOLUTION
这两个问题与同一个问题有关,既dld.sl不能将任何文件装进内存。
从dld的人工页中看到:
dld.sl - 动态加载程序
说明:
/usr/lib/dld.sl 程序是一个动态加载程序。在使用共享程序库的程序中,/usr/lib/dld.sl在启动时被启动文件crt0.o自动调用。在/opt/langtools/lib/和
/usr/ccs/lib/目录中保存有的同样的crt0.o复制文件。该动态加载程序其实也是一个共享的程序库,只是它没有定义供用户使用的符号罢了。
文件表溢出错误说明系统文件表已经满了。系统已经达到表所能容纳的最大文件数。文件表时刻跟踪所有打开的文件。你可以通过提高内核程序参数的值来增加表容量 。
从nfile的人工页中看到:
nfile
说明:
nfile定义了能同时被打开的最大文件数,在任何时候它都处于系统开放状态。
使用SAM (System Administration Manager)去提高nfile的值。
注:这个方法应用于HP-UX 10.X和11.X。 N
1. 启动 SAM.
2. 选择''Kernel Configuration ''子系统.
3. 选择''Configurable Parameters'' 子系统.
4. 选择''maxusers''此内核程序参数.
5. 提高''maxusers''的值.
注:通常将''maxusers''的值增加两倍。增加此参数的值直到满足系统的需要。
6. 点击''OK''.
7. 证实已增加了nproc和 nfile的值。
8. 选择''Action''.
9. 点击''Create New Kernel'', 同时按照提示信息向下执行。
警告:在你成功重建内核程序后,系统将会重新启动。你也可以选择推迟重新启动。在重新启动前必须关闭所有的应用程序,例如Oracle等。
如果你不能利用SAM去修改或建立一个新的内核程序,你也可以利用下面的命令行实现同样的结果:
注:此过程应用于HP-UX 10.X:
1. cd /stand/build
2. 创建一个新的系统文件:
/usr/lbin/sysadm/system_prep -v -s ./system
3. 通过增加maxusers参数值修改新系统文件:
maxusers
4. 构造一个新的内核程序:
mk_kernel -s ./system
5. 备份你的老内核程序和系统文件
mv /stand/vmunix /stand/vmunix.prev
mv /stand/system /stand/system.prev
6. 将新内核程序和系统文件移到正确位置:
mv /stand/build/vmunix_test /stand/vmunix
mv /stand/build/system /stand/system
7.重新启动系统:
shutdown -r -y 0 or reboot -r
注:此过程应用于HP-UX 11.X:
1. cd /stand/build
2. 创建一个新的系统文件:
/usr/lbin/sysadm/system_prep -v -s ./system
3.利用kmtune查看和修改内核程序参数:
A. 显示当前值:
kmtune -q maxuser
B. 递增 maxusers:
kmtune -s maxuser+
4. 建立一个新的内核程序:
mk_kernel -s ./system
5.利用kmupdate编排新内核程序的重定位和关闭后重新启动。
6. 重启动系统:
shutdown -r -y 0 or reboot -r
提供给你的信息:
maxusers
描述
maxusers 根据可能的系统资源访问系统的并发用户分配
为什么只增加maxusers的值? 增加maxusers将对其他同类型核心参数产生影响.
一些受影响的参数为nfile, nflocks, nproc, unlocable_mem 及bufpages。
0