IBM Support

[Db2] バッファー・プールに必要なメモリーが不足してデータベースを活動化できない場合の対処方法

Question & Answer


Question

バッファー・プールを新規に作成、もしくは既存のバッファー・プールのサイズを拡張したあと、変更を反映させるためにデータベースを再活動化したところ、メモリーが不足して活動化できませんでした。対応方法を教えてください。

Answer

Db2 はデータベースを活動化する際、定義されているバッファー・プールを指定されたサイズで確保しようとします。データベースに割り振ることができる仮想メモリーが不足していると、ごく小さなシステム・バッファー・プール (16ページ) だけが確保された状態でデータベースが活動化されます。
SQL1478W 定義されたバッファー・プールを開始できませんでした。代わりに、DB2 のサポートするページ・サイズごとに、小さいバッファー・プールを開始しました。

通常は、この状態でバッファー・プールのサイズを小さくする、あるいは不要なバッファー・プールを削除するなどしてバッファー・プールに必要なメモリー量を調整した上で、データベースの再活動化を試みます。
しかし、再活動化時に破損回復やロールフォワードが必要になる場合は、これらの作業がバッファー・プール・サイズ不足のために失敗することがあります。

DB2_OVERRIDE_BPF レジストリー変数を設定することで、一時的にバッファー・プール・サイズを上書きしてデータベースを活動化させることができます。
  • 実行例(すべてのユーザー定義バッファー・プールのサイズを 5000 ページに指定する例)
    db2set DB2_OVERRIDE_BPF=5000
このレジストリー変数が設定されていると、本来のバッファー・プール・サイズに関わらず、DB2_OVERRIDE_BPF で設定されたページ数でバッファー・プールを確保してデータベースを活動化します。いったん DB2_OVERRIDE_BPF を設定してデータベースを活動化し、バッファー・プール・サイズを調整したあと、DB2_OVERRIDE_BPF の設定を削除してデータベースの再活動化を試みてください。設定を削除するためには以下のコマンドを実行します。
  • db2set DB2_OVERRIDE_BPF=
なお、DB2_OVERRIDER_BPF レジストリー変数の設定を反映させるためには、インスタンスの再起動が必要です。

db2diag.log 出力例 (破損回復に失敗するケース):
2012-03-30-22.59.17.605226+480 I818298135E454     LEVEL: Warning
PID     : 32050                TID  : 47423317181088PROC : db2agent(SAMPLE) 0
INSTANCE: db2inst1             NODE : 000         DB   : SAMPLE
APPHDL  : 0-7                  APPID: *LOCAL.db2inst1.120330145913
AUTHID  : DB2INST1
FUNCTION: DB2 UDB, recovery manager, sqlpresr, probe:410
MESSAGE : Crash recovery started. LowtranLSN 00002E556C186C40 MinbuffLSN
          00002E4EE2DF26B7

 :

2012-03-30-22.59.17.795466+480 E818299485E501     LEVEL: Error
PID     : 32144                TID  : 47423317181088PROC : db2redow(SAMPLE) 0
INSTANCE: db2inst1             NODE : 000         DB   : SAMPLE
APPHDL  : 0-7                  APPID: *LOCAL.db2inst1.120330145913
AUTHID  : DB2INST1
FUNCTION: DB2 UDB, Common Trace API, sqlbFreeUpSlot, probe:122
MESSAGE : ADM6019E  All pages in buffer pool "IBMSYSTEMBP32K" (ID
"4099") are in use.  Refer to the documentation for SQLCODE -1218.

 :

2012-03-30-22.59.17.795946+480 I818300467E427     LEVEL: Severe
PID     : 32144                TID  : 47423317181088PROC : db2redow(SAMPLE) 0
INSTANCE: db2inst1             NODE : 000         DB   : SAMPLE
APPHDL  : 0-7                  APPID: *LOCAL.db2inst1.120330145913
AUTHID  : DB2INST1
FUNCTION: DB2 UDB, Common Trace API, sqlbFreeUpSlot, probe:0
DATA #1 : String, 44 bytes
Current size of bufferpool #4099: 16 slots.

2012-03-30-22.59.17.796062+480 I818300895E444     LEVEL: Severe
PID     : 32144                TID  : 47423317181088PROC : db2redow(SAMPLE) 0
INSTANCE: db2inst1             NODE : 000         DB   : SAMPLE
APPHDL  : 0-7                  APPID: *LOCAL.db2inst1.120330145913
AUTHID  : DB2INST1
FUNCTION: DB2 UDB, data management, sqldRedo, probe:6299
RETCODE : ZRC=0x8502002C=-2063466452=SQLB_BPFULL
          "no available buffer pool pages"

 :

2012-03-30-22.59.17.806984+480 E818314887E419     LEVEL: Error
PID     : 32050                TID  : 47423317181088PROC : db2agent(SAMPLE) 0
INSTANCE: db2inst1             NODE : 000         DB   : SAMPLE
APPHDL  : 0-7                  APPID: *LOCAL.db2inst1.120330145913
AUTHID  : DB2INST1
FUNCTION: DB2 UDB, base sys utilities, recover, probe:60
MESSAGE : ADM1532E  Crash recovery has failed with SQLCODE "-1042".

運用上の考慮点
DB2_OVERRIDE_BPF は、あくまで一時的な回避策として使用してください。常時設定したまま稼動させることは推奨されません。

関連情報
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"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":"a8m500000008PlPAAU","label":"Database Objects-\u003EBufferpools"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"All Version(s)"}]

Document Information

Modified date:
25 August 2023

UID

swg21594745