DB2数据库建立nickname而导致CRASH是文章的主要内容,假如你在DB2数据库建立nickname而导致CRASH此方面遇到遇到不懂的地方,或许本文会为你解开疑惑,以下就是文章的主要内容讲述。

DB2 II V8.2 for Oracle 创建nickname时导致DB2 CRASH的解决方法(Linux)

(注:DB2 II 已经改名为Websphere II)

在使用 II4O时,创建Wrapper, user mapping都没问题,但是,当创建nickname时,DB2 crash。

在DB2diag.log 中,有如下信息:

    2005-03-13-14.22.36.412133+480E7747G606LEVEL:Severe PID:19883TID:3007177376PROC:db2agent (SAMPLE) INSTANCE:db2inst1NODE:000DB:SAMPLE APPHDL:0-14APPID:GAC80471.NE04.00F483062900 FUNCTION:DB2UDB,opersystemservices,sqloEDUCodeTrapHandler, probe:10 MESSAGE:ADM0503CAnunexpectedinternalprocessingerrorhasoccurred.ALL DB2PROCESSESASSOCIATEDWITHTHISINSTANCEHAVEBEENSHUTDOWN. Diagnosticinformationhasbeenrecorded.ContactIBMSupportfor furtherassistance. . . . 2005-03-13-14.22.36.421935+480I16005G624LEVEL:Severe PID:19883TID:3007177376PROC:db2agent (SAMPLE) INSTANCE:db2inst1NODE:000DB:SAMPLE APPHDL:0-14APPID:GAC80471.NE04.00F483062900 MESSAGE:RDSUCINTFC:pStatementText= DATA#1:Hexdump,59bytes 0xB33849E0:435245415445204E49434B4E414D4520CREATENICKNAME 0xB33849F0:444232494E5354312E4F52414C4F4341DB2INST1.ORALOCA 0xB3384A00:4C20464F5220545348312E444232494ELFORTSH1.DB2IN 0xB3384A10:5354312E224C4F43414C22ST1."LOCAL" . . . 2005-03-13-14.22.36.476913+480I39423G431LEVEL:Severe PID:19824TID:3007177376PROC:db2tcpcm INSTANCE:db2inst1NODE:000 FUNCTION:DB2UDB,opersystemservices,sqloEDUSIGCHLDHandler,probe:50 DATA#1:String,158bytes DetectedthedeathofanEDUwithprocessid19883 Thesignalnumberthatterminatedthisprocesswas11 Lookfortrapfiles(t19883.*)inthedumpdirectory

检查trap文件, t19883.000, 在 call stack,会发现:

    -FRAME----CODE----LOCATION-- BFFE8E7083C4286A0x0083+A_SHAFinalCommon (/opt/IBM/db2/V8.1/lib/libdb2e.so.1) BFFE8F008B55E48D0x00ae+A_X931RandomUpdate (/home/oracle/OraHome1/lib/libclntsh.so.9.0) BFFE8F6083C40CEB0x00d0+ztcrseed3 (/home/oracle/OraHome1/lib/libclntsh.so.9.0)

这是DB2数据库 II V8.2 和 Oracle 9i/10g 的一个兼容性问题.

如果是ORACLE 9i Workaround:

    1)Backupyour$ORACLE_HOME/lib/libclntsh.soand $ORACLE_HOME/bin/genclntsh 2)Add'-Wl,-Bsymbolic'tothelinklineof$ORACLE_HOME/bin/genclntsh: LD="gcc-shared-Wl,-relax-L${ORACLE_HOME}/lib-Wl,-Bsymbolic" #sharedlibrarylinkcommand 3)Rungenclntshtocreatelibclntsh.so 4)ExecutedjxlinkOracle 5)StopandStarttheinstance

如果是ORACLE 10g Workaround:

    1)backup$ORACLE_HOME/bin/genclntsh, $ORACLE_HOME/lib/libclntsh.so.10.1,$ORACLE_HOME/lib32/libclntsh.so.10.1 2)cd$ORACLE_HOME/lib;mvlibnnz10.solibnnz10.so.orig (solibnnz10.sonotexistinlib) 3)cd$ORACLE_HOME/bin;modifythescriptgenclntsh: a).Add"-Wl,-Bsymbolic"tolinkerline,....makesurethereisno spacesbetweenthecommaand-B. ex.LD="gcc-shared-Wl,-relax-L${ORACLE_HOME}/lib-Wl, -Bsymbolic"#sharedlibrarylinkcommand b)Changelibnnz10.so==>libnnz10.ainfollowingline *-r${OLIB}/libnnz10.so*&&LNZ="-lnnz10

以上的相关内容就是对DB2数据库建立nickname导致CRASH解决方法的介绍,望你能有所收获。

【编辑推荐】

    实现DB2HADRv8.2 EE实施的正确操作步骤DB2快照函数全解析经典版DB2:信息管理 尽在掌握DB2 9 XML 性能优势DB2 V7存储过程构建环境设置的正确操作步骤描述