IBM Support

[Db2] REORGペンディングの回復方法

Question & Answer


Question

表が REORG ペンディング状態になっているため、SQL0668N 理由コード 7 が発生し、作業が継続できません。 どのように REORG ペンディング状態を回復すればよいでしょうか?

Cause

列のドロップ、列タイプの変更、または列の NULL 可能性プロパティーの変更などの一部の ALTER TABLE 操作によって、表が REORG ペンディング状態になる場合があります。
REORG ペンディングのトリガーとなる REORG 推奨操作については表の変更を参照してください。

Answer

REORG TABLE コマンドを実行し該当の表をオフライン再編成して回復できます。
  • 実行例
    $ db2 reorg table tab1
※表が REORG ペンディング状態の場合、以下の節は表の再編成で許可されないことに注意してください。
  • INPLACE REORG TABLE 節 (オンライン再編成)
  • 表に非パーティション索引が定義されている場合のパーティション表の ON DATA PARTITION 節

参考:REORG ペンディングになっている表は、ADMINTABINFO管理ビューで確認できます。
  • $ db2 "SELECT VARCHAR(TABSCHEMA,30) TABSCHEMA,VARCHAR(TABNAME,30) TABNAME, REORG_PENDING, NUM_REORG_REC_ALTERS FROM SYSIBMADM.ADMINTABINFO WHERE REORG_PENDING = 'Y'"
    
    TABSCHEMA   TABNAME    REORG_PENDING NUM_REORG_REC_ALTERS
    ----------- ---------- ------------- --------------------
    DB2INST1    TAB1       Y                                1
    
      1 レコードが選択されました。
  • REORG 推奨操作は、ALTER TABLE ステートメントに起因する変更がデータの行フォーマットに影響する場合です。この操作が行われた場合、その後の表に対する操作はほとんど、表再編成操作が正しく完了するまで制限されます。 このタイプの ALTER TABLE ステートメントは、再編成が必要になるまでに最高で 3 つまで表に対して実行できます。
    すでに行われた REORG 推奨操作の回数は ADMINTABINFO管理ビューの NUM_REORG_REC_ALTERS 列に表示されます。
 
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと 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":"a8m500000008PlMAAU","label":"Data Movement-\u003EReorg"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
25 August 2023

UID

swg21575039