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

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

description

2011年4月22日 #clubdb2 の発表資料です。その他の過去資料は、以下のURLからダウンロード可能です。 http://www.ibm.com/developerworks/wikis/display/clubdb2/materials CLUB DB2はDB2の勉強会です。

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

© 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

© 2011 IBM Corporation2

自己紹介

下佐粉 昭 ( しもさこ あきら )和歌山県生まれ

2001年 IBMに中途入社以来、DB2関連の仕事多し現在はビジネスパートナー様向け技術支援

■書籍

「即戦力のDB2管理術」

「XML-DB開発 実技コース」(共著)

「DB2 逆引きリファレンス」(共著)

■オンライン

Twitter - @simosako– http://twitter.com/simosako

Unofficial DB2 Blog– http://db2.jugem.cc/

内容は全てWEBで公開しています!

http://db2watch.com/

© 2011 IBM Corporation3

今日の目的

データベースの設計・運用管理はシステムによって色々事情が異なります

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

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

【宣伝】基礎から詳しく学習したい方は、ぜひ自著をご参照ください!

即戦力のDB2管理術~仕組みからわかる効率的管理のノウハウ

2011年4月8日発売 (技術評論社)

下佐粉昭 著

A5判/432ページ

ISBN 978-4-7741-4597-6

http://db2.jugem.cc/?eid=2341 (書籍紹介)

© 2011 IBM Corporation4

目次

①本番用途のデータベースを簡単に作る

–文字コードに注意–最低限必要な設定–自動ストレージ

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

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

© 2011 IBM Corporation

①本番用途のデータベースを簡単に作る

© 2011 IBM Corporation6

データベースを作る

CREATE DATABASEで簡単に作れるが、文字コードだけは注意!

文字コード–データベースをディスクに記録する際の文字コードを指定

• 文字コードによってディスク使用量が異なる–クライアントと文字コードが異なる場合、DB2によって自動的に変換

SJISアプリDB2サーバ

DB2ク

ライアント

Unicode

データベースUnicode→SJIS変換

SJIS→Unicode変換

簡単な文字コードの選択方法–クライアントに合わせる

•例)Visual Basicクライアントの場合→ IBM-943(SJIS)を選択–クライアントが複数の文字コードの場合→ UTF-8(Unicode)を選択–よく分からない場合→ UTF-8(Unicode)を選択

© 2011 IBM Corporation7

DB2の内部構造

コンテナー コンテナー

表スペース表は表スペース上に作成される

バッファープール

インスタンス

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

データベース

エージェント

SQL

ロガー

ログパス

ログバッファー

DB2クライアント

更新処理情報

© 2011 IBM Corporation8

本番環境に最低限必要な設定ログ領域– (できるだけ)表スペースとは別ディスクにする

• 更新処理が重要な場合は高速なディスクを用意する• DB CFGのNEWLOGPATHで後から変更可能

–サイズを増やす• DB CFGのLOGPRIMARY(数)を増やす• DB CFGのLOGFILSZ(サイズ)を増やす

–アーカイブロギングモードに変更する• DB CFGのLOGARCHMETH1でディレクトリを指定する

1

循環ロギング

3

2n

1次ログ(LOGPRIMARY)

1 2

アーカイブロギング

1 2 3 4 52次ログ(LOGSECOND)

アーカイブ・ログ・パス

(LOGARCHMETH1)

LOGARCHMETH1で指定したディレクトリへコピー。

リストア時に利用可能にする。

データベース・ログ・パス

(LOGPATH)

データベース・ログ・パス

(LOGPATH)

© 2011 IBM Corporation9

表スペースの管理

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 YESINCREASESIZE 100MMAXSIZE 10GBUFFERPOOL MYBP1

2つのコンテナをファイル

で定義

LargeDMSで作成

自動拡張を設定。サイズが不足した場合は100MBずつ増加し、最大10GBまで拡張する

バッファープールを指定

結構面倒...

© 2011 IBM Corporation10

表スペース管理を簡単にする

自動ストレージ機能を使って表スペース管理を簡単にする

–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で作成される)

© 2011 IBM Corporation11

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

• ユーザ表スペースの初期サイズを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で作成

© 2011 IBM Corporation12

ここまでのまとめ

自動ストレージを有効にして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"

© 2011 IBM Corporation

②簡単運用パターン

© 2011 IBM Corporation14

最低限必要な運用管理

バックアップ–BACKUPコマンド

–最も大切。必須の作業

表の再編成–REORGコマンド

–更新が多い表には必要

統計情報の更新–RUNSTATSコマンド

–アクセスプラン(実行計画)を良いものに維持するために必要

日常的に必要となる管理作業

=最低限必要な作業

© 2011 IBM Corporation15

DB2のバックアップ

コンテナ コンテナ コンテナ

表領域- CREATE TABLESPACE

ログ領域- LOGPATHで指定

Backupコマンド

logmgrプロセス

Backupコマンドで指定した領域

Backupファイル

LOGARCHMETH1で指定した領域

アーカイブLOGファイル

アーカイブLOGファイル

アーカイブLOGファイル

アクティブLOGファイル

表データそのものが入っている

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

オンライン・オフライン

どちらでも実行可能

INCLUDE LOGSでバックアップファイル内に最低限必要なLOGを含める

表領域、ログの両方をバックアップする事が重要

© 2011 IBM Corporation16

BACKUPDB2のバックアップは、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"

© 2011 IBM Corporation17

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 Corporation18

リカバリー履歴ファイルと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 Corporation19

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で(ログあふれに注意)

© 2011 IBM Corporation20

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;

© 2011 IBM Corporation21

REORGを簡単にする:REORGの回数を減らす②

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

E FD C

通常のインデックス クラスターインデックス

インデックスの順序とデータの配置順が一致するように配置されている

E FDC

クラスターインデックスを作成することで、データの並び崩れにくくなる

CREATE INDEX idx2 ON tab(c) CLUSTERCREATE INDEX idx1 ON tab(c)

© 2011 IBM Corporation22

統計情報の更新:なぜ統計情報の更新が必要なのか

エージェント

SQL

DB2クライアント

①SQLの書き換え

②複数のアクセスプラン候補を作成

③コストの見積もり

④アクセスプランの決定

統計情報

より良い「アクセスプラン(実行計画)」作成のため

データが変更されたら統計情報を更新する必要がある

© 2011 IBM Corporation23

RUNSTATSRUNSTATSコマンドにて統計情報を更新する

もう少し進んだ使い方– 例①分散統計付で収集する• 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

データに「偏り」がある場合、分散統計を試してください

© 2011 IBM Corporation24

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 Corporation25

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)

© 2011 IBM Corporation

③簡単に監視する

© 2011 IBM Corporation27

監視はなぜ必要?

時間

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

© 2011 IBM Corporation28

監視ポイント

DB2サーバー

NIC

ping等による

ネットワーク導通確認

ストレージ全体の使用率の監視

DB2の表ス

ペースDB2表スペースの

使用率の監視

メモリ

CPU

DB2内部の動

作を監視DB2

DB2の診断情報

OSのログ

DB2関連プロセ

スの死活監視 DB2DB2

•バッファープールヒット率•デッドロック数•ソート時間•トランザクション数

CPUやメモリ

使用率の監視

DB2やOSロ

グファイルの監視

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

© 2011 IBM Corporation29

Windows環境ではMMCが便利

– OSの情報とDB2内部情報を一括して取得できる– 低負荷・リモートから取得可能– グラフを右クリック⇒カウンタの追加• DB2 Databases(DBレベルの情報)

ロックウェイト、ソートオーバーフロー 等多数• DB2 Applications (アプリケーションレベルの情報)• DB2 Database Manager(インスタンスレベルの情報)

DBが活性化(Activate)されていないと表示されません

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

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

© 2011 IBM Corporation30

DB2のモニタリング機能

モニターエレメント(監視項目)

GET SNAPSHOTコマンド

(テキスト出力)

スナップショット表関数

モニター表関数(MON_*で始ま

る表関数)

モニタービュー(MON_*から始まる

ビュー。モニター表関数を組み合わせて作られている)

スナップショット

モニター表関数・ビュー(メトリック)

スナップショット管理ビュー(スナップショット表関数を組み合わせて作られている)

MONREPORTモジュール

(テキスト出力)

※スナップショットの使い方については以下を参照

http://www.ibm.com/developerworks/jp/data/library/dataserver/techdoc/kantandb2.html

© 2011 IBM Corporation31

モニター表関数(メトリック)

Request metrics (MON_REQ_METRICS) = BASEActivity metrics (MON_ACT_METRICS) = BASEObject 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_METRICSMON_OBJ_METRICSMON_ACT_METRICSMON_ACT_METRICSMON_REQ_METRICSMON_REQ_METRICS

DB2 9.7から追加された低負荷・高機能の新しいインターフェース

DB CFGパラメーターでメトリックのモニタリングを設定

– デフォルトで有効なので準備不要!

スナップショットと異なり、全てのカウンタはリセットできません– DEACTIVATEで消えます

© 2011 IBM Corporation32

モニター表関数のメリット

データオブジェクトレベルの便利なビューや表関数が揃っている–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 Corporation33

簡単な定常監視①

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

方法① 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に書き出す方法もあります

© 2011 IBM Corporation34

簡単な定常監視②

方法② MONREPORTモジュール (DB2 9.7 FP1新機能)–人が読みやすいレポートを生成する例)MONREPORT.DBSUMMARYプロシージャ

> db2 "CALL MONREPORT.DBSUMMARY(300)" > today.log• 指定された秒数の間データをモニタし、レポートを作成する

あくまで実行していた間の情報しか出力しない

※MONREPORTモジュール

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.sql.rtn.doc/doc/r0056368.html

※なぜかDB2 Express-C 9.7 FP3では使用できません

© 2011 IBM Corporation35

まとめ

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 Corporation36

参考資料

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 Corporation37

参考資料(マニュアル)

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 Corporation38

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

© 2011 IBM Corporation39

インスタンスとデータベース

DB2 システム構成概略

DB_Aに接続

DB2インスタンス1の待ち受けポート(50000番)

DB_ADB_B

インスタンス1(50000番)

インスタンス2(50010番)

DB_C管理サーバ(523番)

起動/停止

DB情報

収集

・インスタンスは起動/停止の単位

db2start (開始), db2stop(停止)

・複数のインスタンスを作成可能です

・インスタンス内に複数のデータベースを作成可能

・1インスタンスにつき、1つのTCP/IPポートを使用

データベースデータベース

データベース

© 2011 IBM Corporation40

構成パラメータ

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システム全体もしくはインスタンス内

レジストリ変数

更新影響範囲