Upload
akira-shimosako
View
9.945
Download
20
Embed Size (px)
DESCRIPTION
2011年4月22日 #clubdb2 の発表資料です。その他の過去資料は、以下のURLからダウンロード可能です。 http://www.ibm.com/developerworks/wikis/display/clubdb2/materials CLUB DB2はDB2の勉強会です。
Citation preview
© 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 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 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 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システム全体もしくはインスタンス内
レジストリ変数
更新影響範囲