标签:des blog ar io os 使用 sp for on
自从数据库服务器从redhat4.6升级到redhat5.5之后,在使用TSM备份的时候偶尔会出现SQL2043N[db2inst1@limt ~]$ db2 ? SQL2043N SQL2043N Unable to start a child process or thread. Explanation: Unable to start up the child processes or threads required during the processing of a database utility. There may not be enough available memory to create the new process or thread. The utility stops processing. User response: Ensure the system limit for number of processes or threads has not been reached (either increase the limit or reduce the number of processes or threads already running). Ensure that there is sufficient memory for the new process or thread. Resubmit the utility command
Problem(Abstract) ASLR or Address Space Layout Randomization is a feature that is activated by default on some of the newer linux distributions. It is designed to load shared memory objects in random addresses. In DB2, multiple processes map a shared memory object at the same address across the processes. It was found that DB2 cannot guarantee the availability of address for the shared memory object when ASLR is turned on. Important note: DB2 10.1 has been enhanced so that ASLR can be safely enabled. Symptom This conflict in the address space means that a process trying to attach a shared memory object to a specific address may not be able to do so, resulting in a failure in shmat subroutine. However, on subsequent retry (using a new process) the shared memory attachment may work. The result is a random set of failures. Some processes that have been known to see this error are: db2pd, db2egcf, and db2vend. Some of the behaviors seen include the following: For the db2pd command, it will report no data found even through the instance / database is active: Database SAMPLE not activated on database partition 0. For the db2egcf process, used for HA monitoring, the db2egcf may incorrectly determine the instance is down and initiate a failover. For the db2vend process, backup and log archive methods might fail with an error indicating a child process could not be started: SQL2043N Unable to start a child process or thread. Diagnosing the problem When this problem is suspected, check db2diag.log for the shmat failure like the following. Note that the same error message can also occur for a different cause. Hence, it's important to note the process that reported this error. FUNCTION: DB2 UDB, SQO Memory Management, sqlocshr, probe:180 MESSAGE : ZRC=0x850F0005=-2062614523=SQLO_NOSEG "No Storage Available for allocation" DIA8305C Memory allocation failure occurred. CALLED : OS, -, shmat OSERR: EINVAL (22) Resolving the problem 1) Disable ASLR temporarily (change is only effective until next boot): Run "sysctl -w kernel.randomize_va_space=0" as root. 2) Disable ASLR immediately and on all subsequent reboots: Add the following line to /etc/sysctl.conf: kernel.randomize_va_space=0 and then run "sysctl -p" as root to make the change take effect immediately.
为2则表示在1的基础上进一步打开堆地址随机化。在打开堆地址随机化之前,堆的起始位置是紧接着应用程序bss段之后的。
的监控数据,所以db2pd为轻量级工具,对数据库的性能影响比较少
SQL2043N 与 linux的randomize_va_space特性
标签:des blog ar io os 使用 sp for on
原文地址:http://blog.csdn.net/lmt818583/article/details/41986219