IBM Support

[Db2] 自動保守のコマンドラインによる構成方法

Question & Answer


Question

ヘルス・センターなどの GUI を使用せずに、自動保守の構成を行う方法を教えてください。

Cause

自動保守はデータベース構成パラメーター AUTO_MAINT および、その下層のパラメーターによって有効化されます。
 Automatic maintenance                      (AUTO_MAINT) = ON
   Automatic database backup            (AUTO_DB_BACKUP) = OFF
   Automatic table maintenance          (AUTO_TBL_MAINT) = ON
     Automatic runstats                  (AUTO_RUNSTATS) = ON
       Real-time statistics            (AUTO_STMT_STATS) = ON
       Statistical views              (AUTO_STATS_VIEWS) = OFF
       Automatic sampling                (AUTO_SAMPLING) = ON
       Automatic column group statistics (AUTO_CG_STATS) = OFF
     Automatic reorganization               (AUTO_REORG) = OFF
ただし、初期値では保守作業の「実行」は、「評価」の結果保守作業が必要と認められたすべての表に対して任意の時間に行われます。
自動保守のポリシーを構成することで、保守作業を「実行」する対象表や保守時間枠を指定できます。
注:自動保守の「評価」は自動保守のポリシーと無関係であり、ヘルス・インジケーターの評価間隔に基づいて定期的に行われます。各ヘルス・インジケーターの評価間隔は変更できませんが、以下の照会で確認できます。
db2 connect to <データベース名>
$ db2 "select char(name,20)name, refresh_interval from table(HEALTH_GET_IND_DEFINITION('en_US')) as t" | grep _req
db.tb_reorg_req                      7200
db.db_backup_req                     7200
db.tb_runstats_req                   7500
たとえば、再編成の必要性 (db.tb_reorg_req) を「評価」する間隔は 7200 秒 (120分) とわかります。

Answer

手順の概要は以下の通りです。
automaint_get_policyfile で現在の設定を xml ファイルに出力し、出力されたファイルを修正して automaint_set_policyfile で再設定します。
 
  1. 自動保守に関する構成パラメーターを設定します。
    データベース構成パラメーター AUTO_MAINT, AUTO_DB_BACKUP, AUTO_TBL_MAINT, AUTO_RUNSTATS, AUTO_REORG などを ON に設定します。
     
  2. 現在の自動保守のポリシーを確認します。
    以下コマンドを実行すると、インスタンス・ディレクトリー以下の tmp サブディレクトリーに指定したファイルが出力されます。
    db2 connect to <データベース名>
    db2 "call sysproc.automaint_get_policyfile('MAINTENANCE_WINDOW','policy_MAINTENANCE_WINDOW.xml')"
    db2 "call sysproc.automaint_get_policyfile('AUTO_BACKUP','policy_AUTO_BACKUP.xml')"
    db2 "call sysproc.automaint_get_policyfile('AUTO_RUNSTATS','policy_AUTO_RUNSTATS.xml')"
    db2 "call sysproc.automaint_get_policyfile('AUTO_REORG','policy_AUTO_REORG.xml')"
    • Linux/UNIX の場合
      $INST_HOME/sqllib/tmp
    • Windows の場合
      DB2INSTPROF レジストリー変数で設定されたインスタンス・プロファイル・ディレクトリー内に、DB2INSTANCE 環境変数で設定されたサブディレクトリー名が存在し、さらにその下の tmp ディレクトリー
      例: DB2INSTPROF=C:\DB2PROF、DB2INSTANCE=DB2 の場合、C:\DB2PROF\DB2\tmp
  3. 手順 2. で出力された xml ファイルを編集します。
    元の設定を保管したい場合、編集前にコピーを取っておきます。
    なお、参考に使えるサンプルが sqllib/samples/automaintcfg にあります。
    • DB2MaintenanceWindowPolicySample.xml : MAINTENANCE_WINDOW (保守時間枠設定用) のサンプル
    • DB2AutoBackupPolicySample.xm : AUTO_BACKUPのサンプル
    • DB2AutoReorgPolicySample.xml : AUTO_REORG のサンプル
    • DB2AutoRunstatsPolicySample.xml : AUTO_RUNSTATSのサンプル
       
  4. 手順 3. で修正した設定を保管したファイルを適用します。
    以下コマンドを実行すると、設定ファイルはインスタンス・ディレクトリーの下の tmp サブディレクトリーから探索されます。
    db2 connect to <データベース名>
    db2 "call sysproc.automaint_set_policyfile('MAINTENANCE_WINDOW','policy_MAINTENANCE_WINDOW.xml')"
    db2 "call sysproc.automaint_set_policyfile('AUTO_BACKUP','policy_AUTO_BACKUP.xml')"
    db2 "call sysproc.automaint_set_policyfile('AUTO_RUNSTATS','policy_AUTO_RUNSTATS.xml')"
    db2 "call sysproc.automaint_set_policyfile('AUTO_REORG','policy_AUTO_REORG.xml')"
【設定例】
 
  1. 保守時間枠の設定
    保守時間枠の指定は automaint_set_policyfile プロシージャーで MAINTENANCE_WINDOW を指定して設定します。
    例えば、毎週金曜日の 9 時から 8 時間 (つまり 17 時まで) をオンライン時間に設定する場合は、以下のように<DaysOfWeek>で曜日 (Fri) を指定し、<OnlineWindow> の startTime で 9 時を指定します。
    また、毎週木曜日の 22 時から 8 時間をオフライン時間に設定する場合は、以下のように <DaysOfWeek> で曜日 (Thu) を指定し、<OfflineWindow> の startTime で 22 時を指定します。

    例: policy_MAINTENANCE_WINDOW.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <DB2MaintenanceWindows
    xmlns="http://www.ibm.com/xmlns/prod/db2/autonomic/config" >
    
    <!-- Online Maintenance Window -->
     <OnlineWindow Occurrence="During" startTime="09:00:00" duration="08" >
      <DaysOfWeek>Fri</DaysOfWeek>
      <DaysOfMonth>All</DaysOfMonth>
      <MonthsOfYear>All</MonthsOfYear>
     </OnlineWindow>
    
    <!-- Offline Maintenance Window -->
     <OfflineWindow Occurrence="During" startTime="22:00:00" duration="08" >
      <DaysOfWeek>Thu</DaysOfWeek>
      <DaysOfMonth>All</DaysOfMonth>
      <MonthsOfYear>All</MonthsOfYear>
     </OfflineWindow>
    
    </DB2MaintenanceWindows>
    ※ 自動統計収集と自動プロファイル更新、オンライン索引再編成、およびオンライン・データベース・バックアップは、オンライン時間枠で実行されるアクティビティーです。
    ※ オフライン・データベース・バックアップおよび表と索引の再編成は、オフライン時間枠で実行されるアクティビティーです。
    ※ リアルタイムで統計情報を取得しない場合、AUTO_STMT_STATS を OFF にしてください。
     
  2. オンラインバックアップ
    オンラインバックアップの場合は <BackupOptions> の mode で "Online" を指定してください。また、バックアップ・イメージの出力先ディレクトリーは <DiskBackupTarget> の <PathName> でパスを指定してください。

    例: policy_AUTO_BACKUP.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <DB2AutoBackupPolicy
    xmlns="http://www.ibm.com/xmlns/prod/db2/autonomic/config" >
    
    <!-- Backup Options -->
     <BackupOptions mode="Online">
      <BackupTarget>
       <DiskBackupTarget>
        <PathName>C:\work\SHIMA\autobk</PathName>
       </DiskBackupTarget>
      </BackupTarget>
     </BackupOptions>
    
    <!-- Frequency of automatic backups -->
     <BackupCriteria numberOfFullBackups="1" timeSinceLastBackup="168" logSpaceConsumedSinceLastBackup="6400"/>
    
    </DB2AutoBackupPolicy>
  3. 再編成と統計収集
    再編成と統計収集の対象となる表を指定したい場合は、<ReorgTableScope> の <FilterClause> または <RunstatsTableScope> の <FilterCondition> で条件を設定してください。
    設定する内容は SYSCAT.TABLES 表に対する検索条件述部になります。この条件に合致する表が再編成と統計収集の対象になります。

    例:policy_AUTO_REORG.xml (特定のスキーマ 'APPL100' の表のみを対象にする場合)
    <?xml version="1.0" encoding="UTF-8"?>
    <DB2AutoReorgPolicy
    xmlns="http://www.ibm.com/xmlns/prod/db2/autonomic/config" >
    
     <ReorgOptions  dictionaryOption="Keep" indexReorgMode="Offline"  useSystemTempTableSpace="false" />
    
     <ReorgTableScope  maxOfflineReorgTableSize="0">
      <FilterClause>TABSCHEMA = 'APPL100'</FilterClause>
     </ReorgTableScope>
    </DB2AutoReorgPolicy>
    

関連情報
SYSPROC.AUTOMAINT_SET_POLICY または SYSPROC.AUTOMAINT_SET_POLICYFILE を使用した自動保守ポリシーの構成
パスポート・アドバンテージによく寄せられる質問

お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと 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":"a8m500000008PloAAE","label":"Administrative Tools-\u003EHealth monitor"},{"code":"a8m500000008Pl1AAE","label":"Compiler-\u003EStatistics and DDL"},{"code":"a8m500000008PlMAAU","label":"Data Movement-\u003EReorg"},{"code":"a8m500000008PmaAAE","label":"Recovery-\u003EBackup"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
23 August 2023

UID

swg21660787