Posted 8/15/2009 9:18:32 AM
|
|
|
|
| After Server reboot, the users were getting the following ora error when running sqlldr on AIX platform on oracle 8.1.7 (i know this is pretty old version and people are still on it): /home/:prodsrv128>sqlldr exec(): 0509-036 Cannot load program sqlldr because of the following errors: 0509-130 Symbol resolution failed for sqlldr because: 0509-136 Symbol pw_post (number 265) is not exported from dependent module /unix. 0509-136 Symbol pw_wait (number 266) is not exported from dependent module /unix. 0509-136 Symbol pw_config (number 267) is not exported from dependent module /unix. 0509-136 Symbol aix_ora_pw_version3_required (number 268) is not exported from dependent module /unix. 0509-192 Examine .loader section symbols with the 'dump -Tv' command. I had them check everything: ORACLE_HOME, ORACLE_SID, PATH, LD_LIBRARY_PATH etc... They were all set properly and also I had them check the permission settings on the files etc.. .and everything was fine. I also did a relink all to relink the binaries and still no good. Then i did search on google and still no good. Finally i checked metalink and found an article: 1006649.6 Problem Description: ==================== You receive the following undefined symbol errors starting Oracle on an IBM RS/6000 AIX operating system:
Could not load program oracleSID Symbol pw_wait in oracle is undefined Symbol pw_post in oracle is undefined Symbol pw_config in oracle is undefined Error was: Exec format error
Problem Explanation: ====================
Oracle executables (such as SVRMGR, oracle, etc.) on AIX are built with the assumption that the post-wait extension is running in the UNIX kernel. If the extention does not exist, the above errors will occur.
Search Words: =============
post wait, pw-syscall, driver, pwpost, pwconfig, pwwait
The solution was simple: I had the UNIX SA run the following command: cd /etc ./loadext -l pw-syscall That fixed the problem. Here is what oracle document states: Solution Description: =====================
On most UNIX platforms, Oracle uses semaphores to synchronize shadow processes and background processes. But with RS/6000 AIX, the post/wait drive is used instead to increase the performance.
The most common solution is to re-install the kernel extension. The best way to do this is to apply Patch 2896876 . This patch is designed to clean-up existing kernel extension, re-install them, and update /etc/inittab to automatically load the proper extension at boot time. Please review the patch installation output to determine if a reboot is required
This may be required if rootpre.sh was run more than once. When rootpre.sh is run, it issues the command: ' /etc/loadext /etc/pw-syscall '
The second time this command is issued, the one that is currently running will be deactivated, thus giving the error above when database is brought up. Rebooting the machine will clean out the deactivated drive in kernel and rerun the system call.
In the 'Tuning Hints and Suggestions', there is a section called the 'Proper startup of the post/wait driver' which also suggests that rebooting the machine to resolve the error.
You can also refer to the PW_README file in $ORACLE_HOME/orainst for more information.
Also, you may want to do the following before rebooting:
1. Login as "root"
2. Change locations to the "etc" directory
# cd /etc
3. Verify that the "loadext" and "pw-syscall<version>" files exist
# ls -l loadext # ls -l pw-syscall*
4. Query whether kernel extension is loaded or not:
# ./loadext -q pw-syscall If a kernel extension is already loaded, check the version
# ./loadext -r pw-syscall
If the kernel extension version is older the the reqested version, unload the version before loading the new version
# ./loadext -u pw-syscall 5. Mannually load the kernel extensions
# ./loadext -l pw-syscall<version>
6. Invoke Server Manager to see if you still get the error Additional Information: ----------------------- From AIX 7.2 Installation and Configuration Guide (Appendix A-34), there is one kernel extension built in to the Oracle kernel for AIX: - Oracle Post-Wait Kernel Extension. Note that starting with Oracle v7.1.6, the Oracle Protected Shared Memory Kernel Extension of prior releases has been removed. The Oracle Post-Wait Kernel Extension implements an optimized mechanism of inter-process communications without the overhead of signal handlers or semaphores. During the installation, the following files are placed in the /etc directory:
/etc/pw-syscall /etc/loadext These files are normally executed automatically at system startup. This loads the extension into the kernel and it will remain loaded as long as the system is running.
In the second case, reboot your machine. If your "/etc/inittab" file contains the line: orapw:2:wait:/etc/loadext /etc/pw-syscall
then the post/wait driver will be loaded when the system is rebooted. Otherwise, you will have to carry out the above steps to manually load the driver.
Thanks, Hope this helps.
|
|
|
|