ORACLE在HP_UX下的系列問題處理(1)
2024-08-29 13:39:51
供稿:網友
問題描述:
每次我啟動一個新的應用程序時(例如 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。
.........following with all English text ....PROBLEM
I get the following error each time I start a new application
(for example Oracle and Perf):
crt0: Error couldn't open dld.sl errno: 000000023
syslog.log also contains this error:
File table overflow
How do I resolve these errors?
CONFIGURATION
Operating System - HP-UX
Version - 11.0
Subsystem - Oracle 8.0.5
RESOLUTION
The two errors are related to the same problem. dld.sl can't load
any more files into memory.
Per the dld man page:
dld.sl - dynamic loader
DESCRipTION
The /usr/lib/dld.sl program is the dynamic loader. In programs
that use shared libraries, /usr/lib/dld.sl is automatically
invoked at startup time by the startup file crt0.o. Identical
copies of crt0.o are kept in both /opt/langtools/lib/ and
/usr/ccs/lib/ Directories. The dynamic loader is, itself, a
shared library, although it defines no symbols for use by user
programs.
The file table overflow error means that the system file table
is full. The system has reached the maximum amount of files that the
table can hold. This table keeps track of all open files. You can
increase this table by increasing the value of the 'nfile' kernel
parameter.
Per the nfile man page:
nfile
DESCRIPTION
nfile defines the maximum number of files that can be open
simultaneously, system-wide, at any given time.
Using SAM (System Administration Manager) to increase the nfile
value:
Note: This information applies to HP-UX 10.X and 11.X.
1. Start SAM.
2. Select the 'Kernel Configuration' subsystem.
3. Select the 'Configurable Parameters' subsystem.
4. Select the 'maxusers' kernel parameter.
5. Increase the 'maxusers' value.
Note: You usually double the 'maxusers' value. Increase this
value to meet your system needs.
6. Click 'OK'.
7. Verify that the nproc and nfile values were increased.
8. Select 'Action'.
9. Click 'Create New Kernel', and follow the instrUCtions.
Warning: The system will reboot after you successfully rebuild
the kernel. You also have the option to defer the reboot.
Make sure that you stop all applications, such as Oracle,
that need to be stopped before the system reboots.
If you cannot use SAM to modify and build a new kernel, you can use
the command line to accomplish the same results:
Note: This procedure applies to HP-UX 10.X:
1. cd /stand/build
2. Create a new system file:
/usr/lbin/sysadm/system_prep -v -s ./system
3. Modify the new system file by increasing the maxusers parameter:
maxusers
4. Build a new kernel:
mk_kernel -s ./system
5. Backup your old kernel and system files:
mv /stand/vmunix /stand/vmunix.prev
mv /stand/system /stand/system.prev
6. Move the new kernel and system files to the proper place:
mv /stand/build/vmunix_test /stand/vmunix
mv /stand/build/system /stand/system
7. Reboot the system:
shutdown -r -y 0 or reboot -r
Note: This procedure applies to HP-UX 11.X:
1. cd /stand/build
2. Create a new system file:
/usr/lbin/sysadm/system_prep -v -s ./system
3. Use kmtune to view and modify kernel parameter:
A. Display the current value:
kmtune -q maxuser
B. Increment maxusers:
kmtune -s maxuser+
4. Build a new kernel:
mk_kernel -s ./system
5. Use kmupdate to schedule the re-location and shutdown-reboot
of the new kernel.
6. right">(出處:清風軟件下載學院)