$30 off During Our Annual Pro Sale. View Details »

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

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

2011/4/22 DB2管理本の著者が教える 簡単運用管理入門 (Club DB2)
Club DB2 という、IBM DB2 の勉強会イベントで以前発表した資料です。かなり古いものなので情報が今とは異なる部分もあると思いますが、保存のためにアップロードしています。

Akira Shimosako

June 02, 2022
Tweet

More Decks by Akira Shimosako

Other Decks in Technology

Transcript

  1. © 2011 IBM Corporation
    CLUB DB2 第122回
    DB2管理本の著者が教える
    簡単運用管理入門
    CLUB DB2 #122
    2011/04/22
    日本アイ・ビー・エム
    下佐粉 昭 (しもさこ あきら) rev. 1.2
    この資料は下記URLでダウンロード可能です
    http://ibm.com/developerworks/wikis/display/clubdb2/materials

    View Slide

  2. © 2011 IBM Corporation
    2
    自己紹介
    下佐粉 昭 ( しもさこ あきら )
    和歌山県生まれ
    2001年 IBMに中途入社
    以来、DB2関連の仕事多し
    現在はビジネスパートナー様向け技術支援
    ■書籍
    「即戦力のDB2管理術」
    「XML-DB開発 実技コース」(共著)
    「DB2 逆引きリファレンス」(共著)
    ■オンライン
    Twitter - @simosako
    – http://twitter.com/simosako
    Unofficial DB2 Blog
    – http://db2.jugem.cc/
    内容は全てWEBで公開しています!
    http://db2watch.com/

    View Slide

  3. © 2011 IBM Corporation
    3
    今日の目的
    データベースの設計・運用管理はシステムによって色々事情が異なります
    でも小・中規模環境であれば「割り切った」運用管理で省力化が可能です
    –専任の担当者が置けない小規模システムでは「割り切り」が重要
    小・中規模向けのデータベース作成~運用のコツを把握しましょう
    【宣伝】基礎から詳しく学習したい方は、ぜひ自著をご参照ください!
    即戦力のDB2管理術~仕組みからわかる効率的管理のノウハウ
    2011年4月8日発売 (技術評論社)
    下佐粉昭 著
    A5判/432ページ
    ISBN 978-4-7741-4597-6
    http://db2.jugem.cc/?eid=2341 (書籍紹介)

    View Slide

  4. © 2011 IBM Corporation
    4
    目次
    ①本番用途のデータベースを簡単に作る
    –文字コードに注意
    –最低限必要な設定
    –自動ストレージ
    ②簡単運用パターン
    –バックアップ(BACKUP)
    –データの再編成(REORG)
    –統計情報の更新(RUNSTATS)
    ③簡単に監視する
    –MMC
    –モニター表関数・ビュー

    View Slide

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

    View Slide

  6. © 2011 IBM Corporation
    6
    データベースを作る
    CREATE DATABASEで簡単に作れるが、文字コードだけは注意!
    文字コード
    –データベースをディスクに記録する際の文字コードを指定
    • 文字コードによってディスク使用量が異なる
    –クライアントと文字コードが異なる場合、DB2によって自動的に変換
    SJISアプリ
    DB2サーバ
    DB2ク
    ライア
    ント
    Unicode
    データベース
    Unicode→SJIS変換
    SJIS→Unicode変換
    簡単な文字コードの選択方法
    –クライアントに合わせる
    •例)Visual Basicクライアントの場合→ IBM-943(SJIS)を選択
    –クライアントが複数の文字コードの場合→ UTF-8(Unicode)を選択
    –よく分からない場合→ UTF-8(Unicode)を選択

    View Slide

  7. © 2011 IBM Corporation
    7
    DB2の内部構造
    コンテナー コンテナー
    表スペース
    表は表ス
    ペース上に
    作成される
    バッファープール
    インスタンス
    I/Oクリーナー
    I/Oサーバー
    データベース
    エージェント
    SQL
    ロガー
    ログパス
    ログバッファー
    DB2クライアント
    更新処理情報

    View Slide

  8. © 2011 IBM Corporation
    8
    本番環境に最低限必要な設定
    ログ領域
    – (できるだけ)表スペースとは別ディスクにする
    • 更新処理が重要な場合は高速なディスクを用意する
    • DB CFGのNEWLOGPATHで後から変更可能
    – サイズを増やす
    • DB CFGのLOGPRIMARY(数)を増やす
    • DB CFGのLOGFILSZ(サイズ)を増やす
    – アーカイブロギングモードに変更する
    • DB CFGのLOGARCHMETH1でディレクトリを指定する
    1
    循環ロギング
    3
    2
    n
    1次ログ
    (LOGPRIMARY)
    1 2
    アーカイブロギング
    1 2 3 4 5
    2次ログ
    (LOGSECOND)
    アーカイブ・ログ・パス
    (LOGARCHMETH1)
    LOGARCHMETH1で
    指定したディレクトリ
    へコピー。
    リストア時に利用可
    能にする。
    データベース・ログ・パス
    (LOGPATH)
    データベース・ログ・パス
    (LOGPATH)

    View Slide

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

    View Slide

  10. © 2011 IBM Corporation
    10
    表スペース管理を簡単にする
    自動ストレージ機能を使って表スペース管理を簡単にする
    – CREATE DATABASEで「ストレージパス」を指定するだけ
    – 表スペース作成が劇的に簡単に!
    • DB2が自動的にストレージパス上にコンテナを作成し、適切な表スペースタイプ
    を選択してくれる
    – ストレージパスに複数のデバイスを設定すると自動的にストライピング
    – ストレージパスがRAIDデバイスの場合、以下を設定するだけで並列アクセスに
    • db2set DB2_PARALLEL_IO=*
    > db2 "CREATE DB MYDB ON 'D:¥db2data','E:¥db2data¥' DBPATH ON 'C:'
    > db2 "CREATE TABLESPACE MYTS2" (Large DMSで作成される)
    > db2 "CREATE USER TEMPORARY TABLESPACE USERTEMP1" (SMSで作成される)

    View Slide

  11. © 2011 IBM Corporation
    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"
    初期サイズと増加サイズ、最大サイズを指定して表スペースを追加
    > db2 "CREATE TABLESPACE MYTS2 INITIALSIZE 100 M INCREASESIZE 10 M MAXSIZE 1 G"
    ※サイズの指定は数字と単位
    の間に空白が必用です(300M
    ではなく、300 M)
    ※サイズを指定しなかった場合、
    初期サイズ30MB,自動増加
    100MB、最大10GBで作成

    View Slide

  12. © 2011 IBM Corporation
    12
    ここまでのまとめ
    自動ストレージを有効にしてUTF-8(もしくはIBM-943)でデータベースを作る
    ログのディレクトリとサイズ調整
    アーカイブログモードに変更して一度フルバックアップ
    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"
    db2set DB2_PARALLEL_IO=* (※ストレージパスがRAIDデバイスの場合のみ)
    db2 "CREATE DATABASE MYDB ON D:¥db2data1,E:¥db2data2 DBPATH ON C:
    USING CODESET UTF-8 TERRITORY JP"

    View Slide

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

    View Slide

  14. © 2011 IBM Corporation
    14
    最低限必要な運用管理
    バックアップ
    –BACKUPコマンド
    –最も大切。必須の作業
    表の再編成
    –REORGコマンド
    –更新が多い表には必要
    統計情報の更新
    –RUNSTATSコマンド
    –アクセスプラン(実行計画)を良いものに
    維持するために必要
    日常的に必要となる管理作業
    =最低限必要な作業

    View Slide

  15. © 2011 IBM Corporation
    15
    DB2のバックアップ
    コンテナ コンテナ コンテナ
    表領域- CREATE TABLESPACE
    ログ領域- LOGPATHで指定
    Backup
    コマンド
    logmgr
    プロセス
    Backupコマンドで指定した領域
    Backupファイル
    LOGARCHMETH1で指定した領域
    アーカイブLOGファ
    イル
    アーカイブLOGファ
    イル
    アーカイブLOGファ
    イル
    アクティブLOG
    ファイル
    表データそのものが入っている
    トランザクションを記録したログ logmgrはアクティブLOGが一定のサイズに達すると
    DB2より自動的に起動され、LOGARCHMETH1で指
    定された先にLOGをコピーする
    オンライン・オフライン
    どちらでも実行可能
    INCLUDE LOGSでバックアップファイル
    内に最低限必要なLOGを含める
    表領域、ログの両方をバックアップする事が重要

    View Slide

  16. © 2011 IBM Corporation
    16
    BACKUP
    DB2のバックアップは、BACKUP DATABASEコマンドで行うのが基本
    – 機能
    • 差分バックアップ可能 (INCREMENTAL [DELTA]キーワード)
    • オンラインバックアップ可能(ONLINEキーワード)
    • イメージの圧縮可能(COMPRESSキーワード)
    • 必要なログファイルをバックアップイメージに含める(INCLUDE LOGSキーワード)
    – データだけでなく、構成パラメタやコンテナ(表領域のディスク)の物理位置等もバック
    アップされる
    – 差分やオンライン・オフラインを自由に組み合わせる事が可能
    • ファイル名は自動的に付けられるので、定期的に実行するのも簡単
    BACKUP DATABASE MYDB TO dir [ONLINE]
    [INCREMENTAL [DELTA]] [COMPRESS] [INCLUDE LOGS]
    ※差分バックアップを利用するにはDB CFGのTRACKMODをYESに設定する必要がある
    >db2 "UPDATE DB CFG FOR MYDB USING TRACKMOD YES"

    View Slide

  17. © 2011 IBM Corporation
    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の面倒なところ② – いつ消すのか?
    – 古いバックアップ・イメージ(バックアップ・ディレクトリ)
    – 古いアーカイブ・ログ(アーカイブ・ログ・パス)
    • 間違ったファイルを消すと一大事に...
    そこでリカバリー履歴ファイルを活用して簡単に運用

    View Slide

  18. © 2011 IBM Corporation
    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"

    View Slide

  19. © 2011 IBM Corporation
    19
    REORG
    更新処理によってデータはじょじょに”ばらばら”になる
    – DB2ではREORG コマンドでデータを並べなおす
    REORG TABLE テーブル名 [INPLACE] [ALLOW {READ|WRITE|NO} ACCESS]
    REORG INDEXES ALL FOR TABLE テーブル名 [ALLOW {READ|WRITE|NO} ACCESS]
    テンポラリ領域が不要
    REORG中の更新アクセス可能
    一時停止、再開が可能
    高速
    インデックスのREORGが可能
    メリット
    インデックスを別にREROGする必要
    同一表領域に10-20%の空きが必要
    ログが増える
    インプレース
    テンポラリ領域が必要
    REORG中は書き込み不可
    シャドーコピー
    デメリット
    REORGCHKコマンドでREORGの必要性を確認
    > REORGCHK CURRENT STATISTICS [ON TABLE テーブル名]
    REORGのオプション:シャドーコピーかインプレースか?
    – REORG中に表に書き込みたいなら、INPLACEで(ログあふれに注意)

    View Slide

  20. © 2011 IBM Corporation
    20
    REORGを簡単にする:REORGの回数を減らす①
    ページ
    行1 行2 行3
    行4
    ①PCTFREE=0のケース(デフォルト):ページサイズギリギリまで行を
    詰めこむように配置。行が長くなるとオーバーフローしやすい
    行1 行2
    行3 行4
    ②PCTFREE=20のケース:ページサイズに20%の余白を残して配置さ
    れる。この例では行3が入らなくなり、次のページに格納されている
    20%の余白
    行1(更新後) 行2
    行3 行4
    ③PCTFREE=20のケースで行1が長いデータで更新された状態。余
    白があるため、行1がオーバーフローせずに済んでいる
    行1(更新後)※オーバーフロー行
    ALTER TABLE tab1 PCTFREE 20;
    REORG TABLE tab1;

    View Slide

  21. © 2011 IBM Corporation
    21
    REORGを簡単にする:REORGの回数を減らす②
    インデックスの順序とデータの
    配置順が無関係なので散ら
    ばって配置されている
    E F
    D C
    通常のインデックス クラスターインデックス
    インデックスの順序とデータの
    配置順が一致するように配置さ
    れている
    E F
    D
    C
    クラスターインデックスを作成することで、データの並び崩れにくくなる
    CREATE INDEX idx2 ON tab(c) CLUSTER
    CREATE INDEX idx1 ON tab(c)

    View Slide

  22. © 2011 IBM Corporation
    22
    統計情報の更新:なぜ統計情報の更新が必要なのか
    エージェント
    SQL
    DB2クライアント
    ①SQLの書き換え
    ②複数のアクセス
    プラン候補を作成
    ③コストの見積もり
    ④アクセスプランの
    決定
    統計情報
    より良い「アクセスプラン(実行計画)」作成のため
    データが変更されたら統計情報を更新する必要がある

    View Slide

  23. © 2011 IBM Corporation
    23
    RUNSTATS
    RUNSTATSコマンドにて統計情報を更新する
    もう少し進んだ使い方
    – 例①分散統計付で収集する
    • 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)
    RUNSTATS ON TABLE スキーマ名.表名 [ON ALL COLUMNS]
    ■参考文献
    「DB2 UDBバージョン8.2のRUNSTATS」(サンプル多数で分かりやすい)
    http://ibm.com/jp/domino01/mkt/dminfo.nsf/doc/002B4A0C
    多くの場合、この
    基本形でOK
    データに「偏り」がある場合、
    分散統計を試してください

    View Slide

  24. © 2011 IBM Corporation
    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"

    View Slide

  25. © 2011 IBM Corporation
    25
    RUNSTATSを簡単にする:自動化
    RUNSTATSを自動的に行う
    – 自動RUNSTATS
    • 2時間おきの非同期RUNSTATSがスケジュールされる
    – 自動ステートメント統計(リアルタイム統計収集)
    • SQLを実行しようとした瞬間に、必要なら統計情報を更新
    自動保守 (AUTO_MAINT) = ON
    データベース自動バックアップ (AUTO_DB_BACKUP) = OFF
    表自動保守 (AUTO_TBL_MAINT) = ON
    自動 RUNSTATS (AUTO_RUNSTATS) = ON
    自動ステートメント統計 (AUTO_STMT_STATS) = ON
    自動再編成 (AUTO_REORG) = OFF
    v9.7からデフォ
    ルトでON
    簡単運用の方法
    – 小・中規模のシステムでは自動RUNSTATSがONで問題ない
    • データを入れた最初だけは手動で実行し、あとは自動に任せる
    • 基本形以外のRUNSTATSが必要な表には統計プロファイルを作成しておく
    • (オプション)バックアップのタイミングでdb2look -m で統計情報も保存する
    > db2look -m -d MYDB -z SIM -o stat.sql
    自動化全体の
    親パラメータ
    (DB CFG)

    View Slide

  26. © 2011 IBM Corporation
    ③簡単に監視する

    View Slide

  27. © 2011 IBM Corporation
    27
    監視はなぜ必要?
    時間
    定常監視が重要。
    継続的に記録し続けることで、
    システムに起こっている変化が
    定量的に把握出来るようになります。

    View Slide

  28. © 2011 IBM Corporation
    28
    監視ポイント
    DB2サーバー
    NIC
    ping等による
    ネットワーク導
    通確認
    ストレージ全体の使
    用率の監視
    DB2の表ス
    ペース
    DB2表スペースの
    使用率の監視
    メモリ
    CPU
    DB2内部の動
    作を監視
    DB2
    DB2の診断情報
    OSのログ
    DB2関連プロセ
    スの死活監視 DB2
    DB2
    •バッファープールヒット率
    •デッドロック数
    •ソート時間
    •トランザクション数

    CPUやメモリ
    使用率の監視
    DB2やOSロ
    グファイルの
    監視
    小・中規模のシステムでは、DB2の内部情報を詳細に把握するより外部を含めた全体
    のトラブルを把握することがより大切
    – とはいえ、DB2内部もある程度は取っておきたい..

    View Slide

  29. © 2011 IBM Corporation
    29
    Windows環境ではMMCが便利
    – OSの情報とDB2内部情報を一括して取得できる
    – 低負荷・リモートから取得可能
    – グラフを右クリック⇒カウンタの追加
    • DB2 Databases(DBレベルの情報)
    ロックウェイト、ソートオーバーフロー 等多数
    • DB2 Applications (アプリケーションレベルの情報)
    • DB2 Database Manager(インスタンスレベルの情報)
    DBが活性化
    (Activate)されていな
    いと表示されません
    インスタンスが開始
    (db2start)していない
    と表示されません
    ローカル、もしくはリモート
    のコンピュータからカウン
    タデータを収集できます

    View Slide

  30. © 2011 IBM Corporation
    30
    DB2のモニタリング機能
    モニターエレ
    メント(監視項
    目)
    GET SNAPSHOTコマンド
    (テキスト出力)
    スナップショット表
    関数
    モニター表関数
    (MON_*で始ま
    る表関数)
    モニタービュー
    (MON_*から始まる
    ビュー。モニター表関
    数を組み合わせて作
    られている)
    スナップショット
    モニター表関数・ビュー
    (メトリック)
    スナップショット管理
    ビュー(スナップショッ
    ト表関数を組み合わ
    せて作られている)
    MONREPORTモジュール
    (テキスト出力)
    ※スナップショットの使い方については以下を参照
    http://www.ibm.com/developerworks/jp/data/library/dataserver/techdoc/kantandb2.html

    View Slide

  31. © 2011 IBM Corporation
    31
    モニター表関数(メトリック)
    Request metrics (MON_REQ_METRICS) = BASE
    Activity metrics (MON_ACT_METRICS) = BASE
    Object metrics (MON_OBJ_METRICS) = BASE
    システム レベル
    MON_GET_SERVICE_SUBCLASS
    MON_GET_WORKLOAD
    MON_GET_CONNECTION
    MON_GET_UNIT_OF_WORK
    パッケージ・キャッシュ・ステートメ
    ント レベル
    MON_GET_PKG_CACHE_STMT
    アクティビティー レベル
    MON_GET_ACTIVITY_DETAILS
    データ・オブジェクト レベル
    MON_GET_TABLE
    MON_GET_INDEX
    MON_GET_BUFFERPOOL
    MON_GET_TABLESPACE
    MON_GET_CONTAINER
    MON_GET_EXTENT_MOVEMENT_STATUS
    MON_OBJ_METRICS
    MON_OBJ_METRICS
    MON_ACT_METRICS
    MON_ACT_METRICS
    MON_REQ_METRICS
    MON_REQ_METRICS
    DB2 9.7から追加された低負荷・高機能の新しいインターフェース
    DB CFGパラメーターでメトリックのモニタリングを設定
    – デフォルトで有効なので準備不要!
    スナップショットと異なり、全てのカウンタはリセットできません
    – DEACTIVATEで消えます

    View Slide

  32. © 2011 IBM Corporation
    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 レコードが選択されました。

    View Slide

  33. © 2011 IBM Corporation
    33
    簡単な定常監視①
    方針:出来るだけ簡単に、他のソフトを使わずに取得する
    方法① OSの自動実行機能でモニター表関数実行スクリプトを実行する
    => サマリーのモニタービュー(MON_*_SUMMARY)がお勧め
    • 例)MON_DB_SUMMARY - DB全体のサマリ情報
    MON_DB_SUMMARYビューに含まれる情報(一部)
    • TOTAL_APP_COMMITS (コミット数≒トランザクション数)
    • AVG_RQST_CPU_TIME (平均CPU使用時間[ms])
    • IO_WAIT_TIME_PERCENT (待機時間のうちIOウェイトの比率[%])
    • TOTAL_BP_HIT_RATIO_PERCENT(バッファープールヒット率[%])
    など
    大まかなデータでも、日々取ってい
    るといないとでは大違いです
    CONNECT TO MYDB;
    VALUES CURRENT TIMESTAMP;
    SELECT * FROM SYSIBMADM.MON_DB_SUMMARY;
    CONNECT RESET;
    ※これをsu - db2inst1 -c 'db2 -z today.log -tvf monitor.sql' などで定期的に呼び出す
    EXPORTコマンド
    でCSVに書き出す
    方法もあります

    View Slide

  34. © 2011 IBM Corporation
    34
    簡単な定常監視②
    方法② 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
    ※なぜかDB2 Express-C 9.7
    FP3では使用できません

    View Slide

  35. © 2011 IBM Corporation
    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

    View Slide

  36. © 2011 IBM Corporation
    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)

    View Slide

  37. © 2011 IBM Corporation
    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

    View Slide

  38. © 2011 IBM Corporation
    38
    CREATE DATABASEのオプション
    db2 "CREATE DATABASE データベース名
    ON ストレージパス DBPATH ON データベースパス
    USING CODESET コードセット TERRITORY JP
    COLLATE USING ソート種別
    PAGESIZE 4 K"
    文字の並び順序の指定
    UTF-8の場合:SYSTEM_943_JP が推奨
    SJISやEUCの場合: IDENTITY が推奨
    ソート種別
    どの文字コードで保存するのかを決める。SJIS(IBM-943),Unicode(UTF-8)など
    コードセット
    DBの構成情報を格納するディレクトリ
    データベースパス
    コンテナを作成するディレクトリ。カンマで複数指定可能
    ストレージパス
    作成するDBの名前(8バイトまで)
    データベース名
    ページサイズ 4 Kが推奨。ただしデータウェアハウス用途やXMLを格納する場合は32 Kが推奨
    注)以前はWindows版にはDBPATHをドライブ名でしか指定できないという制限がありました。現在はその
    制限は撤廃されていますが、レジストリー変数DB2_CREATE_DB_ON_PATH を「ON」に設定しないと
    ディレクトリが指定できません。(デフォルトではOFF)
    > db2set DB2_CREATE_DB_ON_PATH=ON

    View Slide

  39. © 2011 IBM Corporation
    39
    インスタンスとデータベース
    DB2 システム構成概略
    DB_Aに接続
    DB2インスタンス1の待
    ち受けポート(50000番)
    DB_A
    DB_B
    インスタンス1(50000番)
    インスタンス2(50010番)
    DB_C
    管理サーバ
    (523番)
    起動/停止
    DB情報
    収集
    ・インスタンスは起動/停止の単位
    db2start (開始), db2stop(停止)
    ・複数のインスタンスを作成可能です
    ・インスタンス内に複数のデータベースを作成可能
    ・1インスタンスにつき、1つのTCP/IPポートを使用
    データベース
    データベース
    データベース

    View Slide

  40. © 2011 IBM Corporation
    40
    構成パラメータ
    DB2の構成パラメータは3種類
    – それぞれ影響範囲が異なる
    – 調整は、DB CFGが中心
    システム(レジストリ)
    インスタンス (DBM CFG)
    データベース (DB CFG)
    GET DB CFG FOR db名
    GET DBM CFG
    db2set [-all]
    取得
    UPDATE DB CFG FOR db名
    USING cfg1 val1 [cfg2
    val2 ..]
    データベース
    データベース
    (DB)構成パラ
    メーター
    UPDATE DBM CFG USING
    cfg1 val1 [cfg2
    val2 ...]
    インスタンス

    データベース
    マネージャ
    (DBM)構成パラ
    メーター
    db2set REG1=VAL1
    システム全体
    もしくはイン
    スタンス内
    レジストリ変

    更新
    影響範囲

    View Slide