昨天在做一个测试数据库用户数据导出时报了600错误,如下:
. exporting cluster definitions
EXP-00056: ORACLE error 600 encountered
ORA-00600: internal error code, arguments: [qmtInit1], [], [], [], [], [], [], []
EXP-00000: Export terminated unsuccessfully
alert日志还报出:
Errors in file /oracle/admin/ccictst2/udump/ccictst2_ora_2212070.trc:
ORA-00600: internal error code, arguments: [unable to load XDB library], [], [], [], [], [], [], []
无论使用expdp还是exp都报相同错误,在metalink上搜寻的结果:
https://support.oracle.com/CSP/ui/flash.html#tab=KBHome(page=KBHome&id=()),(page=KBNavigator&id=(from=BOOKMARK&bmDocTitle=Export%20Aborts%20with%20ORA-600%20%5BqmtInit1%5D%20or%20ORA-600%20%5Bunable%20to%20load%20XDB%20library%5D%20while%20Exporting%20Cluster%20Definitions&bmDocType=PROBLEM&viewingMode=1143&bmDocID=351650.1&bmDocDsrc=KB))
(节选)
Cause
These errors may be the result if the database was started and the environment variable LD_LIBRARY_PATH was not set, or was set to an incorrect version of $ORACLE_HOME/lib (e.g. to a different $ORACLE_HOME). If during the user level or full database export we are unable to locate the correct version of the libxdb.so / libxdb.sl library, the internal errors may occur.
Unpublished Bug 273085 was filed on the problem, but the errors are due to issues with configuration settings and not due to a problem with Export or Data Pump. The "fix" for the bug in 11.2.x is to generate a more descriptive error message when the configuration problem arises.
Solution
1. Stop the database and the listener.
2. Ensure that the first search referenced in the LD_LIBRARY_PATH is $ORACLE_HOME/lib. If not, correct it using the following example.
Example (replace $ORACLE_HOME with the full path of the Oracle home directory):
csh:
> setenv LD_LIBRARY_PATH=$ORACLE_HOME/lib
> setenv LIBPATH=$ORACLE_HOME/lib
ksh:
> export LD_LIBRARY_PATH=$ORACLE_HOME/lib
> export LIBPATH=$ORACLE_HOME/lib
For Oracle9i and higher on AIX: set environment variable LIBPATH and afterwards, run /usr/sbin/slibclean as root
For Oracle9i and higher on HP-UX, Linux, Solaris, and Tru64: set environment variable LD_LIBRARY_PATH
3. Re-start the database and the listener.
4. Re-run the export.
检查oracle用户的环境变量,发现:
LIBPATH=/oracle/product/db10gr2/lib32:/oracle/product/db10gr2/lib32:/oracle/product/db10gr2/ctx/lib
出现ora600的原因是oracle用户的环境变量设置有误,在64bitOS上$ORACLE下应该是
lib而非lib32。
按照metalink的solution处理
1.协调用户时间,停库停监听
2.修改oracle用户环境变量文件并重新加载
3.root用户下运行slibclean
#./ slibclean
4.重启数据库和监听
再次执行expdp,顺利完成。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21129591/viewspace-1058503/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21129591/viewspace-1058503/