DB2 データベースの保守

DB® データベースが正常に機能するようにするために、データを定期的にバックアップし、保守アクションを実行する必要があります。

このタスクについて

DB2 の構成はパフォーマンスに大きな影響を与えます。データベースを正しく管理するには、いくつかの標準のアクションを実行する必要があります。DB2 Administration Professional がある場合は、DB2 の正常性とパフォーマンスをモニターできます。それ以外の場合は、このトピックに記載されている手順に従って、データベースの正常性を維持する必要があります。

定期的なバックアップの実行

データベースに保管されているデータを定期的にバックアップします。

障害発生時に簡単にリカバリーできるように、サーバーのアップグレード前にデータベースをバックアップしておくことをお勧めします。

手順

  1. データベースに保管されているデータを定期的にバックアップします。障害発生時に簡単にリカバリーできるように、サーバーのアップグレード前にデータベースをバックアップしておくことをお勧めします。
    1. サーバーを停止します。
    2. DB2 コマンド行インターフェースで、以下のコマンドを実行します。db2 backup database TEMADB.
      注: TEMADB is the default database name. If you are unsure whether it applies to your database, see: Checking the database name.
    3. サーバーを開始します。

      バックアップが現行作業ディレクトリーに作成され、ファイル名にはバックアップ手順のインスタンス名およびタイム・スタンプが含まれます (例: TLMA.0.db2inst1.NODE0000.CATN0000.20101105000715.001)。

      データベース・バックアップの計画について詳しくは、次を参照してください。「バックアップおよびリカバリー計画の作成」。

DB2 の保守: テーブルの再編成と索引の統計の最新表示
  1. 索引に一致させ、スペースを再利用するために、テーブルを再編成します。
    1. BigFix Inventory サーバーを停止します。
    2. DB2® コマンド行インターフェースで、以下のコマンドを実行します。
      • db2 connect to TEMADB
      • db2 -x "select 'reorg table',substr(rtrim(tabschema)||'.'||rtrim(tabname),1,50),' allow no access;'from syscat.tables where type = 'T' and tabschema in ('ADM','SAM','DBO') order by tabschema,tabname " > reorgs.sql
      • db2 -tvf reorgs.sql
      • db2 terminate
    3. BigFix Inventory サーバーを始動します。
  2. 統計を最新の状態に維持します。デフォルトでは、DB2® の統計は自動的に実行されます。このオプションが使用不可の場合は、以下のコマンドを手動で実行する必要があります。
    1. BigFix Inventory サーバーを停止します。
    2. DB2® コマンド行インターフェースで、以下のコマンドを実行します。
      • db2 connect to TEMADB
      • db2 -x "select 'runstats on table',substr(rtrim(tabschema)||'.'||rtrim(tabname),1,50),' and indexes all;'from syscat.tables where type = 'T' and tabschema in ('DBO','SAM','ADM') order by tabschema,tabname " > runstats.sql
      • db2 -tvf runstats.sql
      • db2 terminate
    3. サーバーを開始します。
    ストレージの再利用/データベース・サイズの削減

    テーブルスペースのサイズを小さくし、巨大な .LRG ファイルを避けるには、以下の手順に従ってください。

    • 表領域で使用されているページを識別する方法
      • db2 inspect check tablespace name USERSPACE1 results keep inspect.log
        • これにより、インスタンスの診断ディレクトリー (通常は <instance directory>/sqllib/db2dump) にファイル inspect.log が生成されます。マルチノードの場合、ノード番号をファイル名の末尾に追加して、ノードごとにファイルを生成します。例: inspect.log.000、inspect.log.001 など。または、ノードに対して別々のフォルダーを生成します。例: DIAG000、DIAG0001 など。
    • 出力の形式を指定するには、出力ファイルが置かれている場所に移動して実行する必要があります。
      • db2inspf inspect.log inspect.out
        • これにより、現在のディレクトリーに inspect.out が生成されます。

    以下のコマンドが実行されるまでしばらく待つ必要がありますので、これらのコマンドは数分間離して実行してください

    • スペースを回復するには、次を実行してください。
      • db2 "ALTER TABLESPACE USERSPACE1 LOWER HIGH WATER MARK "
    • USERSPACE1 のサイズを小さくするには、以下を実行してください。
      • db2 "ALTER TABLESPACE USERSPACE1 REDUCE MAX
    • 「上限基準点 (ページ)」の変更を確認するには
    • db2 "LIST TABLESPACES SHOW DETAIL"
    個々のテーブルが占有するスペースのチェック
    • temadb のテーブルのサイズを取得するには、以下を実行してください。
      • db2 “select char(date(TAB.STATS_TIME))||'-'||char(time(TAB.STATS_TIME))
                            as STATSTIME, substr(TAB.TABSCHEMA,1,3) as TABSCHEMA, substr(TAB.TABNAME,1,35)
                            as TABNAME, CARD as ROWS, (COL_OBJECT_P_SIZE + DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE
                            + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE) as TAB_ALLOC_KB, 
                            (COL_OBJECT_L_SIZE + DATA_OBJECT_L_SIZE + INDEX_OBJECT_L_SIZE + LONG_OBJECT_L_SIZE
                            + LOB_OBJECT_L_SIZE + XML_OBJECT_L_SIZE) as TAB_USED_KB, DICTIONARY_SIZE AS DICT_P_SIZE,
                            DATA_OBJECT_P_SIZE AS DATA_P_SIZE, INDEX_OBJECT_P_SIZE AS INDEX_P_SIZE, 
                            LOB_OBJECT_P_SIZE AS LOB_P_SIZE, LONG_OBJECT_P_SIZE AS LONG_P_SIZE, 
                            XML_OBJECT_P_SIZE AS XML_P_SIZE, DATA_OBJECT_L_SIZE AS DATA_L_SIZE, INDEX_OBJECT_L_SIZE AS INDEX_L_SIZE,
                            LOB_OBJECT_L_SIZE AS LOB_L_SIZE, LONG_OBJECT_L_SIZE AS LONG_L_SIZE, XML_OBJECT_L_SIZE AS XML_L_SIZE 
                            from syscat.tables TAB join sysibmadm.admintabinfo ADMTI on TAB.tabname=ADMTI.tabname and 
                            TAB.tabschema=ADMTI.tabschema where TAB.TABSCHEMA IN ('DBO','SAM','ADM') order by TABSCHEMA,
                            TABNAME with ur"

次のタスク

BigFix Inventory サーバーで使用される照会をさらに詳しく調査する場合は、DB2 設計アドバイザー・コマンド (db2advis) を使用する必要があります。このコマンドは、データベースのパフォーマンスを向上させる可能性がある新しい索引の検出に役立ちます。設計アドバイザーは DB2 モニターからの出力を使用して、新しい索引を作成するように提案します。この提案は、モニターで検出される照会に基づいて行われます。設計アドバイザーについて詳しくは、DB2 の資料を参照してください。
DB2 11.5