IBM Support

[Db2] /dev/null に不適切なパーミッションを設定すると Db2 インスタンスが起動しない

Question & Answer


Question

db2start によるインスタンス起動でしばらく時間がかかった後に SQL1042C で失敗します。原因と対応策を教えてください。 ※ db2stop で時間がかかる場合もあります。

Cause

/dev/null のパーミッションで others への Read、Write 許可がない場合、以下のような問題が発生します。

【端末上のエラー】
例1)
$ db2start
SQL1042C  予期しないシステム・エラーが発生しました。  SQLSTATE=58004
例2)
$ db2start
09/20/2012 20:22:11     0   0   SQL1042C  予期しないシステム・エラーが発生しました。
SQL1032N  start database manager コマンドが発行されていません。  SQLSTATE=57019
【db2diag.log 出力】
例) V9.5, V9.7 db2start 時
2012-09-20-20.51.15.430791+540 E2233A456          LEVEL: Error (OS)
PID     : 19398784             TID  : 1           PROC : db2start
INSTANCE: db2inst1             NODE : 000
EDUID   : 1
FUNCTION: DB2 UDB, oper system services, sqlodque, probe:2
MESSAGE : ZRC=0x870F003E=-2029060034=SQLO_QUE_BAD_HANDLE "Bad Queue Handle"
          DIA8555C An invalid message queue handle was encountered.
CALLED  : OS, -, msgctl
OSERR   : EINVAL (22) "Invalid argument"

2012-09-20-20.51.15.432053+540 I2690A346          LEVEL: Severe
PID     : 19398784             TID  : 1           PROC : db2start
INSTANCE: db2inst1             NODE : 000
EDUID   : 1
FUNCTION: DB2 UDB, base sys utilities, sqlestrt.C::main, probe:32
DATA #1 : Hexdump, 4 bytes
0x0FFFFFFFFFFFB29C : FFFF FBEE                                  ....
例) V9.5, V9.7 db2stop 時
2012-09-20-20.50.56.630280+540 E1432A455          LEVEL: Error (OS)
PID     : 19070986             TID  : 1           PROC : db2stop
INSTANCE: db2inst1             NODE : 000
EDUID   : 1
FUNCTION: DB2 UDB, oper system services, sqlodque, probe:2
MESSAGE : ZRC=0x870F003E=-2029060034=SQLO_QUE_BAD_HANDLE "Bad Queue Handle"
          DIA8555C An invalid message queue handle was encountered.
CALLED  : OS, -, msgctl
OSERR   : EINVAL (22) "Invalid argument"

2012-09-20-20.50.56.649575+540 I1888A344          LEVEL: Severe
PID     : 19070986             TID  : 1           PROC : db2stop
INSTANCE: db2inst1             NODE : 000
EDUID   : 1
FUNCTION: DB2 UDB, base sys utilities, sqlestp.C::main, probe:32
DATA #1 : Hexdump, 4 bytes
0x0FFFFFFFFFFFB22C : FFFF FBEE                                  ....

例) V10.1 db2start 時
2012-09-20-19.58.55.372601+540 E3975A1320           LEVEL: Severe (OS)
PID     : 20447314             TID : 1              PROC : db2star2
INSTANCE: db2inst1             NODE : 000
HOSTNAME: host1
EDUID   : 1
FUNCTION: DB2 UDB, oper system services, sqloWaitIPCWaitPost, probe:100
MESSAGE : ZRC=0x83000023=-2097151965

CALLED  : OS, -, msgrcv
OSERR   : ENOMSG (35) "No message of desired type"
DATA #1 : timeout value, 4 bytes
0
DATA #2 : String, 223 bytes
{
   postcode  = 0x0
   cs        = {
   lock          = { 0x10000000 [ locked ] }
   identity      = sqlo_waitpost::cs (6)
}

   state     = 0x2 ((Empty))
   guard     = initialized
   initflags = 0x2
   numWaiters  = 1
}
DATA #3 : ipc waitpost, PD_TYPE_SQLO_IPCWAITPOST, 28 bytes
0x07800000003E0168 : 0000 0000 1000 0000 0006 0000 0000 0002    ................
0x07800000003E0178 : 0000 ABFE 0002 0000 0000 0001              ............
DATA #4 : system V message queue identifier., PD_TYPE_SYSV_QUEUE_ID, 4 bytes
0x05100044
DATA #5 : Bitmask, 8 bytes
0x0000000000000000
CALLSTCK: (Static functions may not be resolved correctly, as they are resolved to the nearest symbol)
  [0] 0x090000003C630AB0 sqloWaitIPCWaitPost + 0x67C
  [1] 0x0000000100007BF4 DB2StartMain + 0x71D4
  [2] 0x0000000100011790 main + 0x10
  [3] 0x00000001000002F8 __start + 0x70

2012-09-20-19.58.55.376693+540 I5296A488            LEVEL: Error
PID     : 20447314             TID : 1              PROC : db2star2
INSTANCE: db2inst1             NODE : 000
HOSTNAME: host1
EDUID   : 1
FUNCTION: DB2 UDB, base sys utilities, DB2StartMain, probe:6252
MESSAGE : ZRC=0x83000023=-2097151965
​​​​​​​

Answer

/dev/null が存在し、パーミッションが下記の通り rw-rw-rw であることをご確認ください。

例1) AIX の場合
$ ls -l /dev/null
crw-rw-rw-    1 root     system        2,  2 Oct 02 14:53 /dev/null
例2) Linux の場合
# ls -l /dev/null
crw-rw-rw-  1 root root 1, 3 2005-11-18 03:47 /dev/null

上記 ls -l 出力で先頭文字が "c" ではなく "-" の場合は、通常のファイルです。
ご利用の OS のマニュアルなどを参照の上、必要に応じて再作成してください。
(/dev/null が通常のファイルであっても、others に Read、Write 許可があれば動作する場合もあります)

AIX と Linux の場合は以下のコマンドで再作成します。

例1) AIX の場合
# mknod -m 666 /dev/null c 2 2
# chmod 666 /dev/null
例2) Linux の場合
# mknod -m 666 /dev/null c 1 3
 
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m3p000000GnsdAAC","label":"Process Model"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"}],"Version":"All Versions"}]

Document Information

Modified date:
23 August 2023

UID

swg21617451