SlideShare a Scribd company logo
1 of 40
Download to read offline
CLUB DB2 #122



CLUB DB2 第122回

DB2管理本の著者が教える
簡単運用管理入門


2011/04/22
日本アイ・ビー・エム
下佐粉 昭 (しもさこ あきら)                                                            rev. 1.2

                この資料は下記URLでダウンロード可能です
                http://ibm.com/developerworks/wikis/display/clubdb2/materials
                                                                    © 2011 IBM Corporation
自己紹介
下佐粉 昭 ( しもさこ あきら )
    和歌山県生まれ
    2001年 IBMに中途入社
    以来、DB2関連の仕事多し
    現在はビジネスパートナー様向け技術支援
■書籍
    「即戦力のDB2管理術」
    「XML-DB開発 実技コース」(共著)
    「DB2 逆引きリファレンス」(共著)


■オンライン
    Twitter - @simosako             内容は全てWEBで公開しています!
    – http://twitter.com/simosako
                                       http://db2watch.com/
    Unofficial DB2 Blog
    – http://db2.jugem.cc/

                                                          © 2011 IBM Corporation
2
今日の目的
    データベースの設計・運用管理はシステムによって色々事情が異なります


    でも小・中規模環境であれば「割り切った」運用管理で省力化が可能です
     –専任の担当者が置けない小規模システムでは「割り切り」が重要


    小・中規模向けのデータベース作成~運用のコツを把握しましょう


    【宣伝】基礎から詳しく学習したい方は、ぜひ自著をご参照ください!
            即戦力のDB2管理術~仕組みからわかる効率的管理のノウハウ
            2011年4月8日発売 (技術評論社)
            下佐粉昭 著
            A5判/432ページ
            ISBN 978-4-7741-4597-6
            http://db2.jugem.cc/?eid=2341 (書籍紹介)
                                                   © 2011 IBM Corporation
3
目次

    ①本番用途のデータベースを簡単に作る
    –文字コードに注意
    –最低限必要な設定
    –自動ストレージ


    ②簡単運用パターン
     –バックアップ(BACKUP)
     –データの再編成(REORG)
     –統計情報の更新(RUNSTATS)


    ③簡単に監視する
     –MMC
     –モニター表関数・ビュー


                          © 2011 IBM Corporation
4
①本番用途のデータベースを簡単に作る




               © 2011 IBM Corporation
データベースを作る
    CREATE DATABASEで簡単に作れるが、文字コードだけは注意!
    文字コード
     –データベースをディスクに記録する際の文字コードを指定
       • 文字コードによってディスク使用量が異なる
     –クライアントと文字コードが異なる場合、DB2によって自動的に変換
                     SJIS→Unicode変換   DB2サーバ
         SJISアプリ
                   DB2ク
                   ライア
                   ント
                                         Unicode
                   Unicode→SJIS変換
                                        データベース


簡単な文字コードの選択方法
  –クライアントに合わせる
     •例)Visual Basicクライアントの場合→ IBM-943(SJIS)を選択
  –クライアントが複数の文字コードの場合→ UTF-8(Unicode)を選択
  –よく分からない場合→ UTF-8(Unicode)を選択
                                                   © 2011 IBM Corporation
6
DB2の内部構造
                   DB2クライアント

                      SQL
    インスタンス

      データベース
                               更新処理情報
             エージェント                       ロガー

     バッファープール                             ログバッファー

         I/Oサーバー
                               I/Oクリーナー

                                          ログパス
      表は表ス         表スペース
      ペース上に     コンテナー コンテナー
      作成される


                                                 © 2011 IBM Corporation
7
本番環境に最低限必要な設定
    ログ領域
     – (できるだけ)表スペースとは別ディスクにする
        • 更新処理が重要な場合は高速なディスクを用意する
        • DB CFGのNEWLOGPATHで後から変更可能
    – サイズを増やす
       • DB CFGのLOGPRIMARY(数)を増やす
       • DB CFGのLOGFILSZ(サイズ)を増やす

    – アーカイブロギングモードに変更する
       • DB CFGのLOGARCHMETH1でディレクトリを指定する
     循環ロギング                           アーカイブロギング
              1         2次ログ            1    2         3     4         5
                        (LOGSECOND)
                                                 データベース・ログ・パス
      n             2      1    2                (LOGPATH)


                                            アーカイブ・ログ・パス          LOGARCHMETH1で
              3                                                  指定したディレクトリ
     1次ログ                                   (LOGARCHMETH1)
                                                                 へコピー。
     (LOGPRIMARY)
            データベース・ログ・パス                                         リストア時に利用可
                                                                 能にする。
            (LOGPATH)
                                                                     © 2011 IBM Corporation
8
表スペース
表スペースの管理
                              コンテナー   コンテナー   コンテナー
    DB2は柔軟に表スペースを作成可能
     –表スペース:表を置くための領域。1つ~複数のコンテナで構成
     –コンテナ:表を置くディスク領域そのもの
     –DMSとSMS:2つのタイプから選択可能
       • Large DMS : 高速。一般表用途
       • SMS : 表の作成、削除が速く、一時表用途
     –キャッシュするバッファープールを表スペース毎に設定可能
                            Large
CREATE LARGE TABLESPACE MYTS1               結構面倒...
                            DMSで作成
  MANAGED BY DATABASE USING
    (FILE 'D:¥db2data¥container1' 200M, 2つのコンテナをファイル
     FILE 'E:¥db2data¥container2' 200M) で定義
  AUTORESIZE YES
  INCREASESIZE 100M       自動拡張を設定。サイズが不足した場合は
  MAXSIZE 10G             100MBずつ増加し、最大10GBまで拡張する
  BUFFERPOOL MYBP1          バッファープールを指定
                                                © 2011 IBM Corporation
9
表スペース管理を簡単にする
 自動ストレージ機能を使って表スペース管理を簡単にする
  – CREATE DATABASEで「ストレージパス」を指定するだけ

 > db2 "CREATE DB MYDB ON 'D:¥db2data','E:¥db2data¥' DBPATH ON 'C:'

     – 表スペース作成が劇的に簡単に!
        • DB2が自動的にストレージパス上にコンテナを作成し、適切な表スペースタイプ
          を選択してくれる

 > db2 "CREATE TABLESPACE MYTS2" (Large DMSで作成される)
 > db2 "CREATE USER TEMPORARY TABLESPACE USERTEMP1" (SMSで作成される)

     – ストレージパスに複数のデバイスを設定すると自動的にストライピング

     – ストレージパスがRAIDデバイスの場合、以下を設定するだけで並列アクセスに
        • db2set DB2_PARALLEL_IO=*


                                                                © 2011 IBM Corporation
10
(参考)自動ストレージの指定方法:サンプル

• ユーザ表スペースの初期サイズを300MB、100MB単位で増加、最大10GBを指定
> db2 "CREATE DATABASE MYDB ON 'D:¥db2data','E:¥db2data¥' DBPATH ON 'C:'
  USER TABLESPACE MANAGED BY AUTOMATIC STORAGE
  INITIALSIZE 300 M INCREASESIZE 100 M MAXSIZE 10 G"    ※サイズの指定は数字と単位
                                                        の間に空白が必用です(300M
                                                        ではなく、300 M)

 初期サイズと増加サイズ、最大サイズを指定して表スペースを追加
> db2 "CREATE TABLESPACE MYTS2 INITIALSIZE 100 M INCREASESIZE 10 M MAXSIZE 1 G"

                                                        ※サイズを指定しなかった場合、
                                                        初期サイズ30MB,自動増加
                                                        100MB、最大10GBで作成




                                                                           © 2011 IBM Corporation
11
ここまでのまとめ
 自動ストレージを有効にしてUTF-8(もしくはIBM-943)でデータベースを作る
 db2set DB2_PARALLEL_IO=*   (※ストレージパスがRAIDデバイスの場合のみ)

 db2 "CREATE DATABASE MYDB ON D:¥db2data1,E:¥db2data2 DBPATH ON C:
      USING CODESET UTF-8 TERRITORY JP"

 ログのディレクトリとサイズ調整

 db2 "UPDATE DB CFG FOR MYDB USING LOGPRIMARY 10"
 db2 "UPDATE DB CFG FOR MYDB USING LOGFILSZ 10000"
 db2 "UPDATE DB CFG FOR MYDB USING NEWLOGPATH F:¥db2log"
 アーカイブログモードに変更して一度フルバックアップ
 db2 "UPDATE DB CFG FOR MYDB USING LOGARCMETH1 DISK:G:¥db2arclog"
 db2 "BACKUP DB mydb TO G:¥db2backup"



                                                                © 2011 IBM Corporation
12
②簡単運用パターン




            © 2011 IBM Corporation
最低限必要な運用管理

 バックアップ
  –BACKUPコマンド
  –最も大切。必須の作業


 表の再編成
  –REORGコマンド
                         日常的に必要となる管理作業
  –更新が多い表には必要
                         =最低限必要な作業

 統計情報の更新
  –RUNSTATSコマンド
  –アクセスプラン(実行計画)を良いものに
   維持するために必要



                                 © 2011 IBM Corporation
14
DB2のバックアップ
表領域、ログの両方をバックアップする事が重要
                          オンライン・オフライン
                          どちらでも実行可能
表領域- CREATE TABLESPACE
                                        Backupコマンドで指定した領域
                            Backup
     コンテナ   コンテナ   コンテナ     コマンド            Backupファイル

     表データそのものが入っている
                            INCLUDE LOGSでバックアップファイル
                            内に最低限必要なLOGを含める

ログ領域- LOGPATHで指定
                                        LOGARCHMETH1で指定した領域
                            logmgr
        アクティブLOG            プロセス            アーカイブLOGファ
                                             アーカイブLOGファ
                                               アーカイブLOGファ
                                                イル
          ファイル                                   イル
                                                   イル


 トランザクションを記録したログ               logmgrはアクティブLOGが一定のサイズに達すると
                               DB2より自動的に起動され、LOGARCHMETH1で指
                               定された先にLOGをコピーする


                                                        © 2011 IBM Corporation
15
BACKUP
 DB2のバックアップは、BACKUP DATABASEコマンドで行うのが基本
 BACKUP DATABASE MYDB TO dir [ONLINE]
     [INCREMENTAL [DELTA]] [COMPRESS] [INCLUDE LOGS]

 – 機能
   • 差分バックアップ可能 (INCREMENTAL [DELTA]キーワード)
   • オンラインバックアップ可能(ONLINEキーワード)
   • イメージの圧縮可能(COMPRESSキーワード)
   • 必要なログファイルをバックアップイメージに含める(INCLUDE LOGSキーワード)

 – データだけでなく、構成パラメタやコンテナ(表領域のディスク)の物理位置等もバック
   アップされる

 – 差分やオンライン・オフラインを自由に組み合わせる事が可能
   • ファイル名は自動的に付けられるので、定期的に実行するのも簡単

              ※差分バックアップを利用するにはDB CFGのTRACKMODをYESに設定する必要がある
              >db2 "UPDATE DB CFG FOR MYDB USING TRACKMOD YES"
                                                                 © 2011 IBM Corporation
16
BACKUPを簡単にする
 BACKUPの面倒なところ①
  Q:差分とか、オンラインとかオフラインとかどのオプションを使えば良いの?
  A:小・中規模DB向けに割り切れば...
     • 小さいデータベースは毎回全体バックアップでOK
     • 停止時間中にオフライン もしくは ONLINE+INCLUDE LOGS

     > db2 "BACKUP DB MYDB TO /db2backup"
     > db2 "BACKUP DB MYDB TO /db2backup ONLINE INCLUDE LOGS"


 BACKUPの面倒なところ② – いつ消すのか?
  – 古いバックアップ・イメージ(バックアップ・ディレクトリ)
  – 古いアーカイブ・ログ(アーカイブ・ログ・パス)
     • 間違ったファイルを消すと一大事に...

     そこでリカバリー履歴ファイルを活用して簡単に運用

                                                                © 2011 IBM Corporation
17
リカバリー履歴ファイルとAUTO_DEL_REC_OBJ
 リカバリー履歴ファイル
  – BACKUPやLOADコマンドの履歴を記録している
  – LIST HISTORYコマンドやSYSIBMADM.DB_HISTORY表で閲覧可能
      >db2 "LIST HISTORY BACKUP ALL FOR MYDB"
  – PRUNE HISTORYコマンドで古い履歴を削除可能


 AUTO_DEL_REC_OBJ
  – ONにすると、PRUNE HISTORY時に関連するオブジェクトが削除可能に
    > db2 "UPDATE DB CFG FOR MYDB USING AUTO_DEL_REC_OBJ ON"


 以下のように簡単運用が可能
  – 自動実行シェルなどで、毎日定期的にBACKUPコマンドを実行
  – 一ヶ月に一回などのタイミングでPRUNE HISTORY ... AND DELETEを実行して
    履歴とともに古いデータを消す
     例)
     > db2 "PRUNE HISTORY 20110219223044 AND DELETE"

                                                               © 2011 IBM Corporation
18
REORG
      更新処理によってデータはじょじょに”ばらばら”になる
     – DB2ではREORG コマンドでデータを並べなおす
 REORG TABLE テーブル名 [INPLACE] [ALLOW {READ|WRITE|NO} ACCESS]
 REORG INDEXES ALL FOR TABLE テーブル名 [ALLOW {READ|WRITE|NO} ACCESS]

     REORGCHKコマンドでREORGの必要性を確認
      > REORGCHK CURRENT STATISTICS [ON TABLE テーブル名]
      REORGのオプション:シャドーコピーかインプレースか?
     – REORG中に表に書き込みたいなら、INPLACEで(ログあふれに注意)

              メリット                     デメリット
 シャドーコピー       高速                       テンポラリ領域が必要
               インデックスのREORGが可能          REORG中は書き込み不可
 インプレース        テンポラリ領域が不要               インデックスを別にREROGする必要
               REORG中の更新アクセス可能          同一表領域に10-20%の空きが必要
               一時停止、再開が可能               ログが増える
                                                            © 2011 IBM Corporation
19
REORGを簡単にする:REORGの回数を減らす①
   ①PCTFREE=0のケース(デフォルト):ページサイズギリギリまで行を
   詰めこむように配置。行が長くなるとオーバーフローしやすい                              ページ

                               行1           行2               行3

                               行4        行1(更新後)※オーバーフロー行

   ②PCTFREE=20のケース:ページサイズに20%の余白を残して配置さ
   れる。この例では行3が入らなくなり、次のページに格納されている
                                                            20%の余白
ALTER TABLE tab1 PCTFREE 20;
REORG TABLE tab1;
                               行1           行2

                               行3   行4

   ③PCTFREE=20のケースで行1が長いデータで更新された状態。余
   白があるため、行1がオーバーフローせずに済んでいる
                               行1(更新後)           行2

                               行3   行4                      © 2011 IBM Corporation
 20
REORGを簡単にする:REORGの回数を減らす②
 クラスターインデックスを作成することで、データの並び崩れにくくなる
           通常のインデックス                           クラスターインデックス
     CREATE INDEX idx1 ON tab(c)       CREATE INDEX idx2 ON tab(c) CLUSTER




     D        E         F          C              C D E F



         インデックスの順序とデータの                    インデックスの順序とデータの
         配置順が無関係なので散ら                      配置順が一致するように配置さ
         ばって配置されている                        れている

                                                                 © 2011 IBM Corporation
21
統計情報の更新:なぜ統計情報の更新が必要なのか
     より良い「アクセスプラン(実行計画)」作成のため
     データが変更されたら統計情報を更新する必要がある


          DB2クライアント

              SQL
                      ①SQLの書き換え
     エージェント
                      ②複数のアクセス
                      プラン候補を作成

                                  統計情報
                      ③コストの見積もり


                      ④アクセスプランの
                      決定           © 2011 IBM Corporation
22
RUNSTATS
                                                                  多くの場合、この
 RUNSTATSコマンドにて統計情報を更新する                                          基本形でOK

       RUNSTATS ON TABLE スキーマ名.表名 [ON ALL COLUMNS]


                                             データに「偏り」がある場合、
 もう少し進んだ使い方                                  分散統計を試してください
 – 例①分散統計付で収集する
     • RUNSTATS ON TABLE ... WITH DISTRIBUTION AND INDEXES ALL
 – 例②すべての列について統計を収集し、c1列についてLIKE統計を収集する
     • RUNSTATS ON TABLE ... ON ALL COLUMNS AND COLUMNS (c1 LIKE
       STATISTICS)

 – 例③約10%のデータをサンプルとして使用して統計を収集する
   • RUNSTATS ON TABLE ... ON ALL COLUMNS TABLESAMPLE SYSTEM(10)
   • RUNSTATS ON TABLE ... ON ALL COLUMNS TABLESAMPLE BERNOULLI(10)
         ■参考文献
         「DB2 UDBバージョン8.2のRUNSTATS」(サンプル多数で分かりやすい)
         http://ibm.com/jp/domino01/mkt/dminfo.nsf/doc/002B4A0C         © 2011 IBM Corporation
23
RUNSTATSを簡単にする:統計プロファイル
     表の特性に合わせて毎回RUNSTATSのオプションを変えるのが大変
     – SET PROFILEでRUNSTATSのオプションが記憶される
       • SYSCAT.TABLESのSTATISTICS_PROFILE列で確認可能
>db2 "RUNSTATS ON TABLE SIM.EMPLOYEE WITH DISTRIBUTION AND INDEXES ALL SET PROFILE"
>db2 "SELECT VARCHAR(TABNAME,10),VARCHAR(STATISTICS_PROFILE,100) FROM SYSCAT.TABLES WHERE TABNAME = 'EMPLOYEE'
AND TABSCHEMA='SIM'"
1          2
---------- ----------------------------------------------------------------------------------------------------
EMPLOYEE   RUNSTATS ON TABLE "SIM"."EMPLOYEE" ON ALL COLUMNS WITH DISTRIBUTION ON ALL COLUMNS AND INDEXES ALL




     USE PROFILEを付けて実行すると、セットしたオプションで実行される
     > db2 "RUNSTATS ON TABLE SIM.EMPLOYEE USE PROFILE"
     NONE PROFILEを付けて実行すると、プロファイルを削除
     > db2 "RUNSTATS ON TABLE SIM.EMPLOYEE UNSET PROFILE"



                                                                                                  © 2011 IBM Corporation
24
RUNSTATSを簡単にする:自動化
 RUNSTATSを自動的に行う
  – 自動RUNSTATS
     • 2時間おきの非同期RUNSTATSがスケジュールされる
                                                                   v9.7からデフォ
  – 自動ステートメント統計(リアルタイム統計収集)
                                                                   ルトでON
     • SQLを実行しようとした瞬間に、必要なら統計情報を更新

     自動保守                                 (AUTO_MAINT) = ON
      データベース自動バックアップ                      (AUTO_DB_BACKUP) = OFF     自動化全体の
      表自動保守                               (AUTO_TBL_MAINT) = ON      親パラメータ
       自動 RUNSTATS                        (AUTO_RUNSTATS) = ON
        自動ステートメント統計                       (AUTO_STMT_STATS) = ON     (DB CFG)
       自動再編成                              (AUTO_REORG) = OFF


 簡単運用の方法
  – 小・中規模のシステムでは自動RUNSTATSがONで問題ない
     • データを入れた最初だけは手動で実行し、あとは自動に任せる
     • 基本形以外のRUNSTATSが必要な表には統計プロファイルを作成しておく
     • (オプション)バックアップのタイミングでdb2look -m で統計情報も保存する
       > db2look -m -d MYDB -z SIM -o stat.sql
                                                                       © 2011 IBM Corporation
25
③簡単に監視する




           © 2011 IBM Corporation
監視はなぜ必要?


 定常監視が重要。
 継続的に記録し続けることで、
 システムに起こっている変化が
 定量的に把握出来るようになります。




                時間



                     © 2011 IBM Corporation
27
監視ポイント
     小・中規模のシステムでは、DB2の内部情報を詳細に把握するより外部を含めた全体
     のトラブルを把握することがより大切
     – とはいえ、DB2内部もある程度は取っておきたい..
                           DB2サーバー

              DB2関連プロセ            •バッファープールヒット率
              スの死活監視              •デッドロック数        DB2内部の動
 ping等による                  DB2
                          DB2     •ソート時間
                          DB2                     作を監視
 ネットワーク導                          •トランザクション数
 通確認                                    :
             NIC




                   CPU               CPUやメモリ
                                     使用率の監視
                   メモリ


     ストレージ全体の使
     用率の監視                                        DB2やOSロ
                                     OSのログ
                         DB2の表ス                   グファイルの
       DB2表スペースの         ペース                      監視
                                     DB2の診断情報
       使用率の監視
                                                  © 2011 IBM Corporation
28
Windows環境ではMMCが便利
     – OSの情報とDB2内部情報を一括して取得できる
     – 低負荷・リモートから取得可能
     – グラフを右クリック⇒カウンタの追加
       • DB2 Databases(DBレベルの情報)                   DBが活性化
       ロックウェイト、ソートオーバーフロー 等多数                  (Activate)されていな
      • DB2 Applications (アプリケーションレベルの情報)       いと表示されません
      • DB2 Database Manager(インスタンスレベルの情報)


                                                インスタンスが開始
                                               (db2start)していない
                                                 と表示されません




                                             ローカル、もしくはリモート
                                             のコンピュータからカウン
                                             タデータを収集できます




                                                     © 2011 IBM Corporation
29
DB2のモニタリング機能

                                      MONREPORTモジュール
     モニター表関数・ビュー
                                      (テキスト出力)
     (メトリック)

                                         モニタービュー
                                         (MON_*から始まる
                  モニター表関数
                                         ビュー。モニター表関
                  (MON_*で始ま
                                         数を組み合わせて作
                  る表関数)
                                         られている)

モニターエレ
メント(監視項
目)
                   スナップショット表              スナップショット管理
                   関数                     ビュー(スナップショッ
                                          ト表関数を組み合わ
                                          せて作られている)


                       GET SNAPSHOTコマンド
 スナップショット              (テキスト出力)

      ※スナップショットの使い方については以下を参照
      http://www.ibm.com/developerworks/jp/data/library/dataserver/techdoc/kantandb2.html   © 2011 IBM Corporation
30
モニター表関数(メトリック)
     DB2 9.7から追加された低負荷・高機能の新しいインターフェース
     DB CFGパラメーターでメトリックのモニタリングを設定
     – デフォルトで有効なので準備不要!
     スナップショットと異なり、全てのカウンタはリセットできません
     – DEACTIVATEで消えます
                   Request metrics          (MON_REQ_METRICS) = BASE
                   Activity metrics         (MON_ACT_METRICS) = BASE
                   Object metrics           (MON_OBJ_METRICS) = BASE


     MON_REQ_METRICS
     MON_REQ_METRICS             MON_ACT_METRICS
                                 MON_ACT_METRICS               MON_OBJ_METRICS
                                                               MON_OBJ_METRICS



     システム レベル                   パッケージ・キャッシュ・ステートメ            データ・オブジェクト レベル
                                ント レベル                       MON_GET_TABLE
     MON_GET_SERVICE_SUBCLASS
                                MON_GET_PKG_CACHE_STMT       MON_GET_INDEX
     MON_GET_WORKLOAD
                                                             MON_GET_BUFFERPOOL
     MON_GET_CONNECTION         アクティビティー レベル                 MON_GET_TABLESPACE
     MON_GET_UNIT_OF_WORK       MON_GET_ACTIVITY_DETAILS     MON_GET_CONTAINER
                                                             MON_GET_EXTENT_MOVEMENT_STATUS




                                                                                       © 2011 IBM Corporation
31
モニター表関数のメリット
 データオブジェクトレベルの便利なビューや表関数が揃っている
  – MON_GET_BUFFERPOOL : バッファープールヒット率など
  – MON_GET_TABLE : 表スキャンの数など
  – MON_GET_INDEX :インデックススキャンの数など


 接続毎の情報、サブクラス毎の情報など、取得範囲が調整できる
  例)ABPの動作を除いたデータを取得できる
  – DB2 非同期バックグラウンドプロセス (ABP) エージェント
     • 自動管理(自動RUNSTATSなど)の確認&実行作業を行う
     • クラス:SYSDEFAULTMAINTENANCECLASS で実行されている

     > db2 "SELECT VARCHAR(SERVICE_SUPERCLASS_NAME,30) AS SERVICE_SPARCLASS,
     TOTAL_APP_COMMITS FROM TABLE(MON_GET_SERVICE_SUBCLASS('','',-2)) AS t"


     SERVICE_SPARCLASS             TOTAL_APP_COMMITS
     ------------------------------ --------------------
     SYSDEFAULTSYSTEMCLASS                             0
     SYSDEFAULTMAINTENANCECLASS                    1856
     SYSDEFAULTUSERCLASS                          31272
      3 レコードが選択されました。
                                                                               © 2011 IBM Corporation
32
大まかなデータでも、日々取ってい
簡単な定常監視①                     るといないとでは大違いです

 方針:出来るだけ簡単に、他のソフトを使わずに取得する

 方法① OSの自動実行機能でモニター表関数実行スクリプトを実行する
  => サマリーのモニタービュー(MON_*_SUMMARY)がお勧め
     • 例)MON_DB_SUMMARY - DB全体のサマリ情報
            CONNECT TO MYDB;                          EXPORTコマンド
            VALUES CURRENT TIMESTAMP;                 でCSVに書き出す
            SELECT * FROM SYSIBMADM.MON_DB_SUMMARY;   方法もあります
            CONNECT RESET;
 ※これをsu - db2inst1 -c 'db2 -z today.log -tvf monitor.sql' などで定期的に呼び出す


     MON_DB_SUMMARYビューに含まれる情報(一部)
       • TOTAL_APP_COMMITS (コミット数≒トランザクション数)
       • AVG_RQST_CPU_TIME (平均CPU使用時間[ms])
       • IO_WAIT_TIME_PERCENT (待機時間のうちIOウェイトの比率[%])
       • TOTAL_BP_HIT_RATIO_PERCENT(バッファープールヒット率[%])
       など
                                                             © 2011 IBM Corporation
33
簡単な定常監視②                                       ※なぜかDB2 Express-C 9.7
                                               FP3では使用できません

 方法② MONREPORTモジュール (DB2 9.7 FP1新機能)
  –人が読みやすいレポートを生成する
  例)MONREPORT.DBSUMMARYプロシージャ
    > db2 "CALL MONREPORT.DBSUMMARY(300)" > today.log
    • 指定された秒数の間データをモニタし、レポートを作成する
          あくまで実行していた間の情報しか出力しない




※MONREPORTモジュール
http://publib.boulder.ibm.com/infocenter/d
b2luw/v9r7/topic/com.ibm.db2.luw.sql.rtn.d
oc/doc/r0056368.html
                                                          © 2011 IBM Corporation
34
まとめ

 DB2の運用管理は意外と簡単!
  –自動ストレージで、表領域を簡単に
  –バックアップは、ヒストリー機能を使って簡単に
  –モニター表関数の便利なビューで、簡単定常監視

 次のステップ
  –以下に技術情報が集められています
      • http://www.ibm.com/developerworks/jp/data/products/db2/db2_97.html

     –お勧め資料
      • DB2 V9.7 運用管理ガイド: データベース・モニタリング
         http://www.ibm.com/developerworks/jp/data/products/db2/operation-management-
           guide/v97_database-monitor.html



      • DB2 V9.5 運用管理ガイド:DB2 for LUW V9.5 データベース・メンテナンス
         http://ibm.com/jp/domino01/mkt/dminfo.nsf/doc/0013DB49



                                                                               © 2011 IBM Corporation
35
参考資料
 CLUB DB2の過去セミナー資料公開中
 – http://ibm.com/developerworks/wikis/display/clubdb2/materials

 カンタン!DB2テクテク第1歩 基本機能編
 – 若干古い資料ですが、各種基本コマンドの使い方がやさしく解説されています
 – http://ibm.com/jp/software/data/developer/library/techdoc/kantandb2.html

 db2pd利用ガイド DB2 v9対応版
 – 問題判別や監視に大変有用なdb2pdの使い方解説
 – http://ibm.com/jp/domino01/mkt/dminfo.nsf/doc/00217BBA


 DB2 Express-Cの導入方法解説(無料のDB2で試しましょう!)
 – http://ibm.com/developerworks/jp/data/library/db2/j_d-db2v97wininstall/ (Windows用
   v9.7)
 – http://ibm.com/developerworks/jp/offers/db2express-c/installwin_v95/ (Windows用 v9.5)
 – http://ibm.com/developerworks/jp/offers/db2express-c/installlin_v95/ (Linux用 v9.5)




                                                                              © 2011 IBM Corporation
36
参考資料(マニュアル)
 DB2のオンラインドキュメント:インフォメーションセンター
 常に最新の情報が閲覧できます。検索機能付き
 – DB2 9.7版
     • http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp
 – DB2 9.5版
     • http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp
 – DB2 9.1版
     • http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp

 – ネットワークに繋がっていなくても閲覧できる「オフライン版」
   • http://db2.jugem.cc/?eid=1933

 DB2のPDF版マニュアル
 日本語、英語など各国語版がダウンロード可能です
 – DB2 9.7版
     • http://ibm.com/support/docview.wss?rs=71&uid=swg27015149
 – DB2 9.5版
     • http://ibm.com/support/docview.wss?rs=71&uid=swg27009728
 – DB2 9.1版
     • http://ibm.com/support/docview.wss?rs=71&uid=swg27009553
                    DB2の日本語ドキュメント一覧は以下の短縮URLからも辿れます
                    http://j.mp/db2docsja
                                                                        © 2011 IBM Corporation
37
CREATE DATABASEのオプション
     db2 "CREATE DATABASE データベース名
           ON ストレージパス DBPATH ON データベースパス
           USING CODESET コードセット TERRITORY JP
           COLLATE USING ソート種別
           PAGESIZE 4 K"

     データベース名            作成するDBの名前(8バイトまで)
     ストレージパス            コンテナを作成するディレクトリ。カンマで複数指定可能
     データベースパス           DBの構成情報を格納するディレクトリ
     コードセット             どの文字コードで保存するのかを決める。SJIS(IBM-943),Unicode(UTF-8)など
     ソート種別              文字の並び順序の指定
                        UTF-8の場合:SYSTEM_943_JP が推奨
                        SJISやEUCの場合: IDENTITY が推奨

     ページサイズ             4 Kが推奨。ただしデータウェアハウス用途やXMLを格納する場合は32 Kが推奨


      注)以前はWindows版にはDBPATHをドライブ名でしか指定できないという制限がありました。現在はその
      制限は撤廃されていますが、レジストリー変数DB2_CREATE_DB_ON_PATH を「ON」に設定しないと
      ディレクトリが指定できません。(デフォルトではOFF)
      > db2set DB2_CREATE_DB_ON_PATH=ON                           © 2011 IBM Corporation
38
インスタンスとデータベース
     DB2 システム構成概略

                                             インスタンス1(50000番)
                    DB2インスタンス1の待
                    ち受けポート(50000番)             データベース
                                                DB_A    データベース
                                                         DB_B
                 DB_Aに接続



・インスタンスは起動/停止の単位                                     インスタンス2(50010番)
                                     起動/停止
       db2start (開始), db2stop(停止)
                                              DB情報
・複数のインスタンスを作成可能です
                                               収集          データベース
・インスタンス内に複数のデータベースを作成可能               管理サーバ                 DB_C
                                       (523番)
・1インスタンスにつき、1つのTCP/IPポートを使用



                                                                © 2011 IBM Corporation
39
構成パラメータ
     DB2の構成パラメータは3種類              システム(レジストリ)
     – それぞれ影響範囲が異なる               インスタンス (DBM CFG)
     – 調整は、DB CFGが中心
                                    データベース (DB CFG)


           影響範囲     取得                   更新
レジストリ変     システム全体   db2set [-all]        db2set REG1=VAL1
数          もしくはイン
           スタンス内
データベース インスタンス       GET DBM CFG          UPDATE DBM CFG USING
マネージャ     内                              cfg1 val1 [cfg2
(DBM)構成パラ                                val2 ...]
メーター
データベース     データベース   GET DB CFG FOR db名   UPDATE DB CFG FOR db名
(DB)構成パラ                                 USING cfg1 val1 [cfg2
メーター                                     val2 ..]
                                                       © 2011 IBM Corporation
40

More Related Content

What's hot

ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装infinite_loop
 
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)Takanori Sejima
 
binary log と 2PC と Group Commit
binary log と 2PC と Group Commitbinary log と 2PC と Group Commit
binary log と 2PC と Group CommitTakanori Sejima
 
Db2 & Db2 Warehouse v11.5.4 最新情報アップデート2020年8月25日
Db2 & Db2 Warehouse v11.5.4 最新情報アップデート2020年8月25日Db2 & Db2 Warehouse v11.5.4 最新情報アップデート2020年8月25日
Db2 & Db2 Warehouse v11.5.4 最新情報アップデート2020年8月25日IBM Analytics Japan
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)Hironobu Suzuki
 
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
C34 Always On 可用性グループ 構築時のポイント by 小澤真之C34 Always On 可用性グループ 構築時のポイント by 小澤真之
C34 Always On 可用性グループ 構築時のポイント by 小澤真之Insight Technology, Inc.
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説Masahiko Sawada
 
Amazon RDSを参考にしたとりまチューニング
Amazon RDSを参考にしたとりまチューニングAmazon RDSを参考にしたとりまチューニング
Amazon RDSを参考にしたとりまチューニングShunsuke Mihara
 
MariaDB Columnstore 使いこなそう
MariaDB Columnstore 使いこなそうMariaDB Columnstore 使いこなそう
MariaDB Columnstore 使いこなそうKAWANO KAZUYUKI
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングKosuke Kida
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較Shinya Sugiyama
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)NTT DATA Technology & Innovation
 

What's hot (20)

ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
 
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
 
DataGuard体験記
DataGuard体験記DataGuard体験記
DataGuard体験記
 
binary log と 2PC と Group Commit
binary log と 2PC と Group Commitbinary log と 2PC と Group Commit
binary log と 2PC と Group Commit
 
Oracle GoldenGate Veridata概要
Oracle GoldenGate Veridata概要Oracle GoldenGate Veridata概要
Oracle GoldenGate Veridata概要
 
Db2 & Db2 Warehouse v11.5.4 最新情報アップデート2020年8月25日
Db2 & Db2 Warehouse v11.5.4 最新情報アップデート2020年8月25日Db2 & Db2 Warehouse v11.5.4 最新情報アップデート2020年8月25日
Db2 & Db2 Warehouse v11.5.4 最新情報アップデート2020年8月25日
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
C34 Always On 可用性グループ 構築時のポイント by 小澤真之C34 Always On 可用性グループ 構築時のポイント by 小澤真之
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
Amazon RDSを参考にしたとりまチューニング
Amazon RDSを参考にしたとりまチューニングAmazon RDSを参考にしたとりまチューニング
Amazon RDSを参考にしたとりまチューニング
 
MariaDB Columnstore 使いこなそう
MariaDB Columnstore 使いこなそうMariaDB Columnstore 使いこなそう
MariaDB Columnstore 使いこなそう
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLバックアップの基本
PostgreSQLバックアップの基本PostgreSQLバックアップの基本
PostgreSQLバックアップの基本
 
Oracle Data Guard による高可用性
Oracle Data Guard による高可用性Oracle Data Guard による高可用性
Oracle Data Guard による高可用性
 
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
 

Similar to CLUB DB2 第122回 DB2管理本の著者が教える 簡単運用管理入門

[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...
[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...
[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...Insight Technology, Inc.
 
Db2 Warehouse セッション資料 db tech showcase
Db2 Warehouse セッション資料 db tech showcase Db2 Warehouse セッション資料 db tech showcase
Db2 Warehouse セッション資料 db tech showcase IBM Analytics Japan
 
Db2リブランディングと製品動向 201707
Db2リブランディングと製品動向 201707Db2リブランディングと製品動向 201707
Db2リブランディングと製品動向 201707IBM Analytics Japan
 
データベースMeetup~Vol.1 HANA概要からOLAPアプリの進化
データベースMeetup~Vol.1 HANA概要からOLAPアプリの進化データベースMeetup~Vol.1 HANA概要からOLAPアプリの進化
データベースMeetup~Vol.1 HANA概要からOLAPアプリの進化Toshihisa Hanaki
 
[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)
[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)
[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)Insight Technology, Inc.
 
Windows Server 2012 のストレージ強化とエンタープライズへの活用
Windows Server 2012 のストレージ強化とエンタープライズへの活用Windows Server 2012 のストレージ強化とエンタープライズへの活用
Windows Server 2012 のストレージ強化とエンタープライズへの活用Daichi Ogawa
 
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史Insight Technology, Inc.
 
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するdb tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するMasayuki Ozawa
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~じゅん なかざ
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努Insight Technology, Inc.
 
Ibm クラウドデータベースの使いどころ
Ibm クラウドデータベースの使いどころIbm クラウドデータベースの使いどころ
Ibm クラウドデータベースの使いどころjapan_db2
 
IBMクラウドデータベースの使いどころ
IBMクラウドデータベースの使いどころIBMクラウドデータベースの使いどころ
IBMクラウドデータベースの使いどころmtanaka0111
 
Hybrid configurations db2_for_slideshare
Hybrid configurations db2_for_slideshareHybrid configurations db2_for_slideshare
Hybrid configurations db2_for_slidesharejapan_db2
 
Hybrid configurations
Hybrid configurationsHybrid configurations
Hybrid configurationsmtanaka0111
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
MySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMikiya Okuno
 
SQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP OverviewSQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP OverviewMasayuki Ozawa
 
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB Amazon Web Services Japan
 
Db2をAWS上に構築する際のヒント&TIPS 2020年6月版
Db2をAWS上に構築する際のヒント&TIPS 2020年6月版Db2をAWS上に構築する際のヒント&TIPS 2020年6月版
Db2をAWS上に構築する際のヒント&TIPS 2020年6月版Akira Shimosako
 
Amazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DR
Amazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DRAmazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DR
Amazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DR株式会社クライム
 

Similar to CLUB DB2 第122回 DB2管理本の著者が教える 簡単運用管理入門 (20)

[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...
[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...
[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...
 
Db2 Warehouse セッション資料 db tech showcase
Db2 Warehouse セッション資料 db tech showcase Db2 Warehouse セッション資料 db tech showcase
Db2 Warehouse セッション資料 db tech showcase
 
Db2リブランディングと製品動向 201707
Db2リブランディングと製品動向 201707Db2リブランディングと製品動向 201707
Db2リブランディングと製品動向 201707
 
データベースMeetup~Vol.1 HANA概要からOLAPアプリの進化
データベースMeetup~Vol.1 HANA概要からOLAPアプリの進化データベースMeetup~Vol.1 HANA概要からOLAPアプリの進化
データベースMeetup~Vol.1 HANA概要からOLAPアプリの進化
 
[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)
[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)
[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)
 
Windows Server 2012 のストレージ強化とエンタープライズへの活用
Windows Server 2012 のストレージ強化とエンタープライズへの活用Windows Server 2012 のストレージ強化とエンタープライズへの活用
Windows Server 2012 のストレージ強化とエンタープライズへの活用
 
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
 
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するdb tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
 
Ibm クラウドデータベースの使いどころ
Ibm クラウドデータベースの使いどころIbm クラウドデータベースの使いどころ
Ibm クラウドデータベースの使いどころ
 
IBMクラウドデータベースの使いどころ
IBMクラウドデータベースの使いどころIBMクラウドデータベースの使いどころ
IBMクラウドデータベースの使いどころ
 
Hybrid configurations db2_for_slideshare
Hybrid configurations db2_for_slideshareHybrid configurations db2_for_slideshare
Hybrid configurations db2_for_slideshare
 
Hybrid configurations
Hybrid configurationsHybrid configurations
Hybrid configurations
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
MySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMySQL 5.5 Update #denatech
MySQL 5.5 Update #denatech
 
SQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP OverviewSQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP Overview
 
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
 
Db2をAWS上に構築する際のヒント&TIPS 2020年6月版
Db2をAWS上に構築する際のヒント&TIPS 2020年6月版Db2をAWS上に構築する際のヒント&TIPS 2020年6月版
Db2をAWS上に構築する際のヒント&TIPS 2020年6月版
 
Amazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DR
Amazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DRAmazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DR
Amazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DR
 

More from Akira Shimosako

Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版Akira Shimosako
 
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版Akira Shimosako
 
DB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPSDB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPSAkira Shimosako
 
Java用O/Rマッピングソフトについて私が知っている二、三の事柄
Java用O/Rマッピングソフトについて私が知っている二、三の事柄Java用O/Rマッピングソフトについて私が知っている二、三の事柄
Java用O/Rマッピングソフトについて私が知っている二、三の事柄Akira Shimosako
 
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)Akira Shimosako
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようAkira Shimosako
 

More from Akira Shimosako (6)

Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
 
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
 
DB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPSDB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPS
 
Java用O/Rマッピングソフトについて私が知っている二、三の事柄
Java用O/Rマッピングソフトについて私が知っている二、三の事柄Java用O/Rマッピングソフトについて私が知っている二、三の事柄
Java用O/Rマッピングソフトについて私が知っている二、三の事柄
 
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
 

CLUB DB2 第122回 DB2管理本の著者が教える 簡単運用管理入門

  • 1. CLUB DB2 #122 CLUB DB2 第122回 DB2管理本の著者が教える 簡単運用管理入門 2011/04/22 日本アイ・ビー・エム 下佐粉 昭 (しもさこ あきら) rev. 1.2 この資料は下記URLでダウンロード可能です http://ibm.com/developerworks/wikis/display/clubdb2/materials © 2011 IBM Corporation
  • 2. 自己紹介 下佐粉 昭 ( しもさこ あきら ) 和歌山県生まれ 2001年 IBMに中途入社 以来、DB2関連の仕事多し 現在はビジネスパートナー様向け技術支援 ■書籍 「即戦力のDB2管理術」 「XML-DB開発 実技コース」(共著) 「DB2 逆引きリファレンス」(共著) ■オンライン Twitter - @simosako 内容は全てWEBで公開しています! – http://twitter.com/simosako http://db2watch.com/ Unofficial DB2 Blog – http://db2.jugem.cc/ © 2011 IBM Corporation 2
  • 3. 今日の目的 データベースの設計・運用管理はシステムによって色々事情が異なります でも小・中規模環境であれば「割り切った」運用管理で省力化が可能です –専任の担当者が置けない小規模システムでは「割り切り」が重要 小・中規模向けのデータベース作成~運用のコツを把握しましょう 【宣伝】基礎から詳しく学習したい方は、ぜひ自著をご参照ください! 即戦力のDB2管理術~仕組みからわかる効率的管理のノウハウ 2011年4月8日発売 (技術評論社) 下佐粉昭 著 A5判/432ページ ISBN 978-4-7741-4597-6 http://db2.jugem.cc/?eid=2341 (書籍紹介) © 2011 IBM Corporation 3
  • 4. 目次 ①本番用途のデータベースを簡単に作る –文字コードに注意 –最低限必要な設定 –自動ストレージ ②簡単運用パターン –バックアップ(BACKUP) –データの再編成(REORG) –統計情報の更新(RUNSTATS) ③簡単に監視する –MMC –モニター表関数・ビュー © 2011 IBM Corporation 4
  • 6. データベースを作る CREATE DATABASEで簡単に作れるが、文字コードだけは注意! 文字コード –データベースをディスクに記録する際の文字コードを指定 • 文字コードによってディスク使用量が異なる –クライアントと文字コードが異なる場合、DB2によって自動的に変換 SJIS→Unicode変換 DB2サーバ SJISアプリ DB2ク ライア ント Unicode Unicode→SJIS変換 データベース 簡単な文字コードの選択方法 –クライアントに合わせる •例)Visual Basicクライアントの場合→ IBM-943(SJIS)を選択 –クライアントが複数の文字コードの場合→ UTF-8(Unicode)を選択 –よく分からない場合→ UTF-8(Unicode)を選択 © 2011 IBM Corporation 6
  • 7. DB2の内部構造 DB2クライアント SQL インスタンス データベース 更新処理情報 エージェント ロガー バッファープール ログバッファー I/Oサーバー I/Oクリーナー ログパス 表は表ス 表スペース ペース上に コンテナー コンテナー 作成される © 2011 IBM Corporation 7
  • 8. 本番環境に最低限必要な設定 ログ領域 – (できるだけ)表スペースとは別ディスクにする • 更新処理が重要な場合は高速なディスクを用意する • DB CFGのNEWLOGPATHで後から変更可能 – サイズを増やす • DB CFGのLOGPRIMARY(数)を増やす • DB CFGのLOGFILSZ(サイズ)を増やす – アーカイブロギングモードに変更する • DB CFGのLOGARCHMETH1でディレクトリを指定する 循環ロギング アーカイブロギング 1 2次ログ 1 2 3 4 5 (LOGSECOND) データベース・ログ・パス n 2 1 2 (LOGPATH) アーカイブ・ログ・パス LOGARCHMETH1で 3 指定したディレクトリ 1次ログ (LOGARCHMETH1) へコピー。 (LOGPRIMARY) データベース・ログ・パス リストア時に利用可 能にする。 (LOGPATH) © 2011 IBM Corporation 8
  • 9. 表スペース 表スペースの管理 コンテナー コンテナー コンテナー DB2は柔軟に表スペースを作成可能 –表スペース:表を置くための領域。1つ~複数のコンテナで構成 –コンテナ:表を置くディスク領域そのもの –DMSとSMS:2つのタイプから選択可能 • Large DMS : 高速。一般表用途 • SMS : 表の作成、削除が速く、一時表用途 –キャッシュするバッファープールを表スペース毎に設定可能 Large CREATE LARGE TABLESPACE MYTS1 結構面倒... DMSで作成 MANAGED BY DATABASE USING (FILE 'D:¥db2data¥container1' 200M, 2つのコンテナをファイル FILE 'E:¥db2data¥container2' 200M) で定義 AUTORESIZE YES INCREASESIZE 100M 自動拡張を設定。サイズが不足した場合は MAXSIZE 10G 100MBずつ増加し、最大10GBまで拡張する BUFFERPOOL MYBP1 バッファープールを指定 © 2011 IBM Corporation 9
  • 10. 表スペース管理を簡単にする 自動ストレージ機能を使って表スペース管理を簡単にする – CREATE DATABASEで「ストレージパス」を指定するだけ > db2 "CREATE DB MYDB ON 'D:¥db2data','E:¥db2data¥' DBPATH ON 'C:' – 表スペース作成が劇的に簡単に! • DB2が自動的にストレージパス上にコンテナを作成し、適切な表スペースタイプ を選択してくれる > db2 "CREATE TABLESPACE MYTS2" (Large DMSで作成される) > db2 "CREATE USER TEMPORARY TABLESPACE USERTEMP1" (SMSで作成される) – ストレージパスに複数のデバイスを設定すると自動的にストライピング – ストレージパスがRAIDデバイスの場合、以下を設定するだけで並列アクセスに • db2set DB2_PARALLEL_IO=* © 2011 IBM Corporation 10
  • 11. (参考)自動ストレージの指定方法:サンプル • ユーザ表スペースの初期サイズを300MB、100MB単位で増加、最大10GBを指定 > db2 "CREATE DATABASE MYDB ON 'D:¥db2data','E:¥db2data¥' DBPATH ON 'C:' USER TABLESPACE MANAGED BY AUTOMATIC STORAGE INITIALSIZE 300 M INCREASESIZE 100 M MAXSIZE 10 G" ※サイズの指定は数字と単位 の間に空白が必用です(300M ではなく、300 M) 初期サイズと増加サイズ、最大サイズを指定して表スペースを追加 > db2 "CREATE TABLESPACE MYTS2 INITIALSIZE 100 M INCREASESIZE 10 M MAXSIZE 1 G" ※サイズを指定しなかった場合、 初期サイズ30MB,自動増加 100MB、最大10GBで作成 © 2011 IBM Corporation 11
  • 12. ここまでのまとめ 自動ストレージを有効にしてUTF-8(もしくはIBM-943)でデータベースを作る db2set DB2_PARALLEL_IO=* (※ストレージパスがRAIDデバイスの場合のみ) db2 "CREATE DATABASE MYDB ON D:¥db2data1,E:¥db2data2 DBPATH ON C: USING CODESET UTF-8 TERRITORY JP" ログのディレクトリとサイズ調整 db2 "UPDATE DB CFG FOR MYDB USING LOGPRIMARY 10" db2 "UPDATE DB CFG FOR MYDB USING LOGFILSZ 10000" db2 "UPDATE DB CFG FOR MYDB USING NEWLOGPATH F:¥db2log" アーカイブログモードに変更して一度フルバックアップ db2 "UPDATE DB CFG FOR MYDB USING LOGARCMETH1 DISK:G:¥db2arclog" db2 "BACKUP DB mydb TO G:¥db2backup" © 2011 IBM Corporation 12
  • 13. ②簡単運用パターン © 2011 IBM Corporation
  • 14. 最低限必要な運用管理 バックアップ –BACKUPコマンド –最も大切。必須の作業 表の再編成 –REORGコマンド 日常的に必要となる管理作業 –更新が多い表には必要 =最低限必要な作業 統計情報の更新 –RUNSTATSコマンド –アクセスプラン(実行計画)を良いものに 維持するために必要 © 2011 IBM Corporation 14
  • 15. DB2のバックアップ 表領域、ログの両方をバックアップする事が重要 オンライン・オフライン どちらでも実行可能 表領域- CREATE TABLESPACE Backupコマンドで指定した領域 Backup コンテナ コンテナ コンテナ コマンド Backupファイル 表データそのものが入っている INCLUDE LOGSでバックアップファイル 内に最低限必要なLOGを含める ログ領域- LOGPATHで指定 LOGARCHMETH1で指定した領域 logmgr アクティブLOG プロセス アーカイブLOGファ アーカイブLOGファ アーカイブLOGファ イル ファイル イル イル トランザクションを記録したログ logmgrはアクティブLOGが一定のサイズに達すると DB2より自動的に起動され、LOGARCHMETH1で指 定された先にLOGをコピーする © 2011 IBM Corporation 15
  • 16. BACKUP DB2のバックアップは、BACKUP DATABASEコマンドで行うのが基本 BACKUP DATABASE MYDB TO dir [ONLINE] [INCREMENTAL [DELTA]] [COMPRESS] [INCLUDE LOGS] – 機能 • 差分バックアップ可能 (INCREMENTAL [DELTA]キーワード) • オンラインバックアップ可能(ONLINEキーワード) • イメージの圧縮可能(COMPRESSキーワード) • 必要なログファイルをバックアップイメージに含める(INCLUDE LOGSキーワード) – データだけでなく、構成パラメタやコンテナ(表領域のディスク)の物理位置等もバック アップされる – 差分やオンライン・オフラインを自由に組み合わせる事が可能 • ファイル名は自動的に付けられるので、定期的に実行するのも簡単 ※差分バックアップを利用するにはDB CFGのTRACKMODをYESに設定する必要がある >db2 "UPDATE DB CFG FOR MYDB USING TRACKMOD YES" © 2011 IBM Corporation 16
  • 17. BACKUPを簡単にする BACKUPの面倒なところ① Q:差分とか、オンラインとかオフラインとかどのオプションを使えば良いの? A:小・中規模DB向けに割り切れば... • 小さいデータベースは毎回全体バックアップでOK • 停止時間中にオフライン もしくは ONLINE+INCLUDE LOGS > db2 "BACKUP DB MYDB TO /db2backup" > db2 "BACKUP DB MYDB TO /db2backup ONLINE INCLUDE LOGS" BACKUPの面倒なところ② – いつ消すのか? – 古いバックアップ・イメージ(バックアップ・ディレクトリ) – 古いアーカイブ・ログ(アーカイブ・ログ・パス) • 間違ったファイルを消すと一大事に... そこでリカバリー履歴ファイルを活用して簡単に運用 © 2011 IBM Corporation 17
  • 18. リカバリー履歴ファイルとAUTO_DEL_REC_OBJ リカバリー履歴ファイル – BACKUPやLOADコマンドの履歴を記録している – LIST HISTORYコマンドやSYSIBMADM.DB_HISTORY表で閲覧可能 >db2 "LIST HISTORY BACKUP ALL FOR MYDB" – PRUNE HISTORYコマンドで古い履歴を削除可能 AUTO_DEL_REC_OBJ – ONにすると、PRUNE HISTORY時に関連するオブジェクトが削除可能に > db2 "UPDATE DB CFG FOR MYDB USING AUTO_DEL_REC_OBJ ON" 以下のように簡単運用が可能 – 自動実行シェルなどで、毎日定期的にBACKUPコマンドを実行 – 一ヶ月に一回などのタイミングでPRUNE HISTORY ... AND DELETEを実行して 履歴とともに古いデータを消す 例) > db2 "PRUNE HISTORY 20110219223044 AND DELETE" © 2011 IBM Corporation 18
  • 19. REORG 更新処理によってデータはじょじょに”ばらばら”になる – DB2ではREORG コマンドでデータを並べなおす REORG TABLE テーブル名 [INPLACE] [ALLOW {READ|WRITE|NO} ACCESS] REORG INDEXES ALL FOR TABLE テーブル名 [ALLOW {READ|WRITE|NO} ACCESS] REORGCHKコマンドでREORGの必要性を確認 > REORGCHK CURRENT STATISTICS [ON TABLE テーブル名] REORGのオプション:シャドーコピーかインプレースか? – REORG中に表に書き込みたいなら、INPLACEで(ログあふれに注意) メリット デメリット シャドーコピー 高速 テンポラリ領域が必要 インデックスのREORGが可能 REORG中は書き込み不可 インプレース テンポラリ領域が不要 インデックスを別にREROGする必要 REORG中の更新アクセス可能 同一表領域に10-20%の空きが必要 一時停止、再開が可能 ログが増える © 2011 IBM Corporation 19
  • 20. REORGを簡単にする:REORGの回数を減らす① ①PCTFREE=0のケース(デフォルト):ページサイズギリギリまで行を 詰めこむように配置。行が長くなるとオーバーフローしやすい ページ 行1 行2 行3 行4 行1(更新後)※オーバーフロー行 ②PCTFREE=20のケース:ページサイズに20%の余白を残して配置さ れる。この例では行3が入らなくなり、次のページに格納されている 20%の余白 ALTER TABLE tab1 PCTFREE 20; REORG TABLE tab1; 行1 行2 行3 行4 ③PCTFREE=20のケースで行1が長いデータで更新された状態。余 白があるため、行1がオーバーフローせずに済んでいる 行1(更新後) 行2 行3 行4 © 2011 IBM Corporation 20
  • 21. REORGを簡単にする:REORGの回数を減らす② クラスターインデックスを作成することで、データの並び崩れにくくなる 通常のインデックス クラスターインデックス CREATE INDEX idx1 ON tab(c) CREATE INDEX idx2 ON tab(c) CLUSTER D E F C C D E F インデックスの順序とデータの インデックスの順序とデータの 配置順が無関係なので散ら 配置順が一致するように配置さ ばって配置されている れている © 2011 IBM Corporation 21
  • 22. 統計情報の更新:なぜ統計情報の更新が必要なのか より良い「アクセスプラン(実行計画)」作成のため データが変更されたら統計情報を更新する必要がある DB2クライアント SQL ①SQLの書き換え エージェント ②複数のアクセス プラン候補を作成 統計情報 ③コストの見積もり ④アクセスプランの 決定 © 2011 IBM Corporation 22
  • 23. RUNSTATS 多くの場合、この RUNSTATSコマンドにて統計情報を更新する 基本形でOK RUNSTATS ON TABLE スキーマ名.表名 [ON ALL COLUMNS] データに「偏り」がある場合、 もう少し進んだ使い方 分散統計を試してください – 例①分散統計付で収集する • RUNSTATS ON TABLE ... WITH DISTRIBUTION AND INDEXES ALL – 例②すべての列について統計を収集し、c1列についてLIKE統計を収集する • RUNSTATS ON TABLE ... ON ALL COLUMNS AND COLUMNS (c1 LIKE STATISTICS) – 例③約10%のデータをサンプルとして使用して統計を収集する • RUNSTATS ON TABLE ... ON ALL COLUMNS TABLESAMPLE SYSTEM(10) • RUNSTATS ON TABLE ... ON ALL COLUMNS TABLESAMPLE BERNOULLI(10) ■参考文献 「DB2 UDBバージョン8.2のRUNSTATS」(サンプル多数で分かりやすい) http://ibm.com/jp/domino01/mkt/dminfo.nsf/doc/002B4A0C © 2011 IBM Corporation 23
  • 24. RUNSTATSを簡単にする:統計プロファイル 表の特性に合わせて毎回RUNSTATSのオプションを変えるのが大変 – SET PROFILEでRUNSTATSのオプションが記憶される • SYSCAT.TABLESのSTATISTICS_PROFILE列で確認可能 >db2 "RUNSTATS ON TABLE SIM.EMPLOYEE WITH DISTRIBUTION AND INDEXES ALL SET PROFILE" >db2 "SELECT VARCHAR(TABNAME,10),VARCHAR(STATISTICS_PROFILE,100) FROM SYSCAT.TABLES WHERE TABNAME = 'EMPLOYEE' AND TABSCHEMA='SIM'" 1 2 ---------- ---------------------------------------------------------------------------------------------------- EMPLOYEE RUNSTATS ON TABLE "SIM"."EMPLOYEE" ON ALL COLUMNS WITH DISTRIBUTION ON ALL COLUMNS AND INDEXES ALL USE PROFILEを付けて実行すると、セットしたオプションで実行される > db2 "RUNSTATS ON TABLE SIM.EMPLOYEE USE PROFILE" NONE PROFILEを付けて実行すると、プロファイルを削除 > db2 "RUNSTATS ON TABLE SIM.EMPLOYEE UNSET PROFILE" © 2011 IBM Corporation 24
  • 25. RUNSTATSを簡単にする:自動化 RUNSTATSを自動的に行う – 自動RUNSTATS • 2時間おきの非同期RUNSTATSがスケジュールされる v9.7からデフォ – 自動ステートメント統計(リアルタイム統計収集) ルトでON • SQLを実行しようとした瞬間に、必要なら統計情報を更新 自動保守 (AUTO_MAINT) = ON データベース自動バックアップ (AUTO_DB_BACKUP) = OFF 自動化全体の 表自動保守 (AUTO_TBL_MAINT) = ON 親パラメータ 自動 RUNSTATS (AUTO_RUNSTATS) = ON 自動ステートメント統計 (AUTO_STMT_STATS) = ON (DB CFG) 自動再編成 (AUTO_REORG) = OFF 簡単運用の方法 – 小・中規模のシステムでは自動RUNSTATSがONで問題ない • データを入れた最初だけは手動で実行し、あとは自動に任せる • 基本形以外のRUNSTATSが必要な表には統計プロファイルを作成しておく • (オプション)バックアップのタイミングでdb2look -m で統計情報も保存する > db2look -m -d MYDB -z SIM -o stat.sql © 2011 IBM Corporation 25
  • 26. ③簡単に監視する © 2011 IBM Corporation
  • 27. 監視はなぜ必要? 定常監視が重要。 継続的に記録し続けることで、 システムに起こっている変化が 定量的に把握出来るようになります。 時間 © 2011 IBM Corporation 27
  • 28. 監視ポイント 小・中規模のシステムでは、DB2の内部情報を詳細に把握するより外部を含めた全体 のトラブルを把握することがより大切 – とはいえ、DB2内部もある程度は取っておきたい.. DB2サーバー DB2関連プロセ •バッファープールヒット率 スの死活監視 •デッドロック数 DB2内部の動 ping等による DB2 DB2 •ソート時間 DB2 作を監視 ネットワーク導 •トランザクション数 通確認 : NIC CPU CPUやメモリ 使用率の監視 メモリ ストレージ全体の使 用率の監視 DB2やOSロ OSのログ DB2の表ス グファイルの DB2表スペースの ペース 監視 DB2の診断情報 使用率の監視 © 2011 IBM Corporation 28
  • 29. Windows環境ではMMCが便利 – OSの情報とDB2内部情報を一括して取得できる – 低負荷・リモートから取得可能 – グラフを右クリック⇒カウンタの追加 • DB2 Databases(DBレベルの情報) DBが活性化 ロックウェイト、ソートオーバーフロー 等多数 (Activate)されていな • DB2 Applications (アプリケーションレベルの情報) いと表示されません • DB2 Database Manager(インスタンスレベルの情報) インスタンスが開始 (db2start)していない と表示されません ローカル、もしくはリモート のコンピュータからカウン タデータを収集できます © 2011 IBM Corporation 29
  • 30. DB2のモニタリング機能 MONREPORTモジュール モニター表関数・ビュー (テキスト出力) (メトリック) モニタービュー (MON_*から始まる モニター表関数 ビュー。モニター表関 (MON_*で始ま 数を組み合わせて作 る表関数) られている) モニターエレ メント(監視項 目) スナップショット表 スナップショット管理 関数 ビュー(スナップショッ ト表関数を組み合わ せて作られている) GET SNAPSHOTコマンド スナップショット (テキスト出力) ※スナップショットの使い方については以下を参照 http://www.ibm.com/developerworks/jp/data/library/dataserver/techdoc/kantandb2.html © 2011 IBM Corporation 30
  • 31. モニター表関数(メトリック) DB2 9.7から追加された低負荷・高機能の新しいインターフェース DB CFGパラメーターでメトリックのモニタリングを設定 – デフォルトで有効なので準備不要! スナップショットと異なり、全てのカウンタはリセットできません – DEACTIVATEで消えます Request metrics (MON_REQ_METRICS) = BASE Activity metrics (MON_ACT_METRICS) = BASE Object metrics (MON_OBJ_METRICS) = BASE MON_REQ_METRICS MON_REQ_METRICS MON_ACT_METRICS MON_ACT_METRICS MON_OBJ_METRICS MON_OBJ_METRICS システム レベル パッケージ・キャッシュ・ステートメ データ・オブジェクト レベル ント レベル MON_GET_TABLE MON_GET_SERVICE_SUBCLASS MON_GET_PKG_CACHE_STMT MON_GET_INDEX MON_GET_WORKLOAD MON_GET_BUFFERPOOL MON_GET_CONNECTION アクティビティー レベル MON_GET_TABLESPACE MON_GET_UNIT_OF_WORK MON_GET_ACTIVITY_DETAILS MON_GET_CONTAINER MON_GET_EXTENT_MOVEMENT_STATUS © 2011 IBM Corporation 31
  • 32. モニター表関数のメリット データオブジェクトレベルの便利なビューや表関数が揃っている – MON_GET_BUFFERPOOL : バッファープールヒット率など – MON_GET_TABLE : 表スキャンの数など – MON_GET_INDEX :インデックススキャンの数など 接続毎の情報、サブクラス毎の情報など、取得範囲が調整できる 例)ABPの動作を除いたデータを取得できる – DB2 非同期バックグラウンドプロセス (ABP) エージェント • 自動管理(自動RUNSTATSなど)の確認&実行作業を行う • クラス:SYSDEFAULTMAINTENANCECLASS で実行されている > db2 "SELECT VARCHAR(SERVICE_SUPERCLASS_NAME,30) AS SERVICE_SPARCLASS, TOTAL_APP_COMMITS FROM TABLE(MON_GET_SERVICE_SUBCLASS('','',-2)) AS t" SERVICE_SPARCLASS TOTAL_APP_COMMITS ------------------------------ -------------------- SYSDEFAULTSYSTEMCLASS 0 SYSDEFAULTMAINTENANCECLASS 1856 SYSDEFAULTUSERCLASS 31272 3 レコードが選択されました。 © 2011 IBM Corporation 32
  • 33. 大まかなデータでも、日々取ってい 簡単な定常監視① るといないとでは大違いです 方針:出来るだけ簡単に、他のソフトを使わずに取得する 方法① OSの自動実行機能でモニター表関数実行スクリプトを実行する => サマリーのモニタービュー(MON_*_SUMMARY)がお勧め • 例)MON_DB_SUMMARY - DB全体のサマリ情報 CONNECT TO MYDB; EXPORTコマンド VALUES CURRENT TIMESTAMP; でCSVに書き出す SELECT * FROM SYSIBMADM.MON_DB_SUMMARY; 方法もあります CONNECT RESET; ※これをsu - db2inst1 -c 'db2 -z today.log -tvf monitor.sql' などで定期的に呼び出す MON_DB_SUMMARYビューに含まれる情報(一部) • TOTAL_APP_COMMITS (コミット数≒トランザクション数) • AVG_RQST_CPU_TIME (平均CPU使用時間[ms]) • IO_WAIT_TIME_PERCENT (待機時間のうちIOウェイトの比率[%]) • TOTAL_BP_HIT_RATIO_PERCENT(バッファープールヒット率[%]) など © 2011 IBM Corporation 33
  • 34. 簡単な定常監視② ※なぜかDB2 Express-C 9.7 FP3では使用できません 方法② MONREPORTモジュール (DB2 9.7 FP1新機能) –人が読みやすいレポートを生成する 例)MONREPORT.DBSUMMARYプロシージャ > db2 "CALL MONREPORT.DBSUMMARY(300)" > today.log • 指定された秒数の間データをモニタし、レポートを作成する あくまで実行していた間の情報しか出力しない ※MONREPORTモジュール http://publib.boulder.ibm.com/infocenter/d b2luw/v9r7/topic/com.ibm.db2.luw.sql.rtn.d oc/doc/r0056368.html © 2011 IBM Corporation 34
  • 35. まとめ DB2の運用管理は意外と簡単! –自動ストレージで、表領域を簡単に –バックアップは、ヒストリー機能を使って簡単に –モニター表関数の便利なビューで、簡単定常監視 次のステップ –以下に技術情報が集められています • http://www.ibm.com/developerworks/jp/data/products/db2/db2_97.html –お勧め資料 • DB2 V9.7 運用管理ガイド: データベース・モニタリング http://www.ibm.com/developerworks/jp/data/products/db2/operation-management- guide/v97_database-monitor.html • DB2 V9.5 運用管理ガイド:DB2 for LUW V9.5 データベース・メンテナンス http://ibm.com/jp/domino01/mkt/dminfo.nsf/doc/0013DB49 © 2011 IBM Corporation 35
  • 36. 参考資料 CLUB DB2の過去セミナー資料公開中 – http://ibm.com/developerworks/wikis/display/clubdb2/materials カンタン!DB2テクテク第1歩 基本機能編 – 若干古い資料ですが、各種基本コマンドの使い方がやさしく解説されています – http://ibm.com/jp/software/data/developer/library/techdoc/kantandb2.html db2pd利用ガイド DB2 v9対応版 – 問題判別や監視に大変有用なdb2pdの使い方解説 – http://ibm.com/jp/domino01/mkt/dminfo.nsf/doc/00217BBA DB2 Express-Cの導入方法解説(無料のDB2で試しましょう!) – http://ibm.com/developerworks/jp/data/library/db2/j_d-db2v97wininstall/ (Windows用 v9.7) – http://ibm.com/developerworks/jp/offers/db2express-c/installwin_v95/ (Windows用 v9.5) – http://ibm.com/developerworks/jp/offers/db2express-c/installlin_v95/ (Linux用 v9.5) © 2011 IBM Corporation 36
  • 37. 参考資料(マニュアル) DB2のオンラインドキュメント:インフォメーションセンター 常に最新の情報が閲覧できます。検索機能付き – DB2 9.7版 • http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp – DB2 9.5版 • http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp – DB2 9.1版 • http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp – ネットワークに繋がっていなくても閲覧できる「オフライン版」 • http://db2.jugem.cc/?eid=1933 DB2のPDF版マニュアル 日本語、英語など各国語版がダウンロード可能です – DB2 9.7版 • http://ibm.com/support/docview.wss?rs=71&uid=swg27015149 – DB2 9.5版 • http://ibm.com/support/docview.wss?rs=71&uid=swg27009728 – DB2 9.1版 • http://ibm.com/support/docview.wss?rs=71&uid=swg27009553 DB2の日本語ドキュメント一覧は以下の短縮URLからも辿れます http://j.mp/db2docsja © 2011 IBM Corporation 37
  • 38. CREATE DATABASEのオプション db2 "CREATE DATABASE データベース名 ON ストレージパス DBPATH ON データベースパス USING CODESET コードセット TERRITORY JP COLLATE USING ソート種別 PAGESIZE 4 K" データベース名 作成するDBの名前(8バイトまで) ストレージパス コンテナを作成するディレクトリ。カンマで複数指定可能 データベースパス DBの構成情報を格納するディレクトリ コードセット どの文字コードで保存するのかを決める。SJIS(IBM-943),Unicode(UTF-8)など ソート種別 文字の並び順序の指定 UTF-8の場合:SYSTEM_943_JP が推奨 SJISやEUCの場合: IDENTITY が推奨 ページサイズ 4 Kが推奨。ただしデータウェアハウス用途やXMLを格納する場合は32 Kが推奨 注)以前はWindows版にはDBPATHをドライブ名でしか指定できないという制限がありました。現在はその 制限は撤廃されていますが、レジストリー変数DB2_CREATE_DB_ON_PATH を「ON」に設定しないと ディレクトリが指定できません。(デフォルトではOFF) > db2set DB2_CREATE_DB_ON_PATH=ON © 2011 IBM Corporation 38
  • 39. インスタンスとデータベース DB2 システム構成概略 インスタンス1(50000番) DB2インスタンス1の待 ち受けポート(50000番) データベース DB_A データベース DB_B DB_Aに接続 ・インスタンスは起動/停止の単位 インスタンス2(50010番) 起動/停止 db2start (開始), db2stop(停止) DB情報 ・複数のインスタンスを作成可能です 収集 データベース ・インスタンス内に複数のデータベースを作成可能 管理サーバ DB_C (523番) ・1インスタンスにつき、1つのTCP/IPポートを使用 © 2011 IBM Corporation 39
  • 40. 構成パラメータ DB2の構成パラメータは3種類 システム(レジストリ) – それぞれ影響範囲が異なる インスタンス (DBM CFG) – 調整は、DB CFGが中心 データベース (DB CFG) 影響範囲 取得 更新 レジストリ変 システム全体 db2set [-all] db2set REG1=VAL1 数 もしくはイン スタンス内 データベース インスタンス GET DBM CFG UPDATE DBM CFG USING マネージャ 内 cfg1 val1 [cfg2 (DBM)構成パラ val2 ...] メーター データベース データベース GET DB CFG FOR db名 UPDATE DB CFG FOR db名 (DB)構成パラ USING cfg1 val1 [cfg2 メーター val2 ..] © 2011 IBM Corporation 40