第4章 db2運用の基本

20
第4章 DB2運用の基本 本書に含まれている情報は、正式なIBMのテストを受けていません。また、明記にしろ、暗黙的にしろ、なんらの保証もなしに配布されるものです。 この情報の使用またはこれらの技術の実施は、いずれも、使用先の責任において行われるべきものであり、それらを評価し、実際に使用する環境に統合する 使用先の判断に依存しています。それぞれの項目は、ある特定の状態において正確であることがIBMによって調べられていますが、他のところで同じまたは同 様の結果が得られる保証はありません。これらの技術を自身の環境に適用することを試みる使用先は、自己の責任において行う必要があります。 © Copyright IBM Japan Co., Ltd. 2011

Upload: dinhhuong

Post on 11-Jan-2017

236 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 第4章 DB2運用の基本

第4章

DB2運用の基本

本書に含まれている情報は、正式なIBMのテストを受けていません。また、明記にしろ、暗黙的にしろ、なんらの保証もなしに配布されるものです。

この情報の使用またはこれらの技術の実施は、いずれも、使用先の責任において行われるべきものであり、それらを評価し、実際に使用する環境に統合する

使用先の判断に依存しています。それぞれの項目は、ある特定の状態において正確であることがIBMによって調べられていますが、他のところで同じまたは同

様の結果が得られる保証はありません。これらの技術を自身の環境に適用することを試みる使用先は、自己の責任において行う必要があります。

© Copyright IBM Japan Co., Ltd. 2011

Page 2: 第4章 DB2運用の基本

© 2011 IBM Corporation2

内容

• データベースの運用管理とは

• 表のメンテナンス

• データの投入・抽出・移動

• 統計情報の収集

• 表の再編成

• DB2のセキュリティ機能概要

Page 3: 第4章 DB2運用の基本

© 2011 IBM Corporation3

SYSADM

SYSCTRL

SYSMAINT

DBADM

権限・特権適切なアクセス権限、

実行権限の付与

監査活動履歴の取得、

解析

回復管理定期的なバックアップの

取得と障害復旧の計画

------------------ --------

------------------------

--------------------------

データベースの運用管理に伴う主なタスク

データ移動データの抽出・投入・

移動

モニタリングアクセス状況やリ

ソースの状態の把

握と問題判別

RUNSTATS

REORG

表のメンテナンス統計情報や再編成

の実施

Page 4: 第4章 DB2運用の基本

© 2011 IBM Corporation4

DB2の主な運用管理項目

定例運用

データベースメンテナンス-REORGCHK-REORG-RUNSTATS

データ移動ユーティリティ-LOAD-IMPORT-EXPORT

稼動管理

- db2プロセス

- ログ管理

- 障害モニタリング

非定例運用

変更管理-レジストリー変数変更-パラメーター変更-バッファープール変更-コンテナー追加-コンテナーサイズ拡張-フィックスパック適用等

回復管理-RESTORE

回復管理

-BACKUP-回復履歴ファイル

起動/停止

-インスタンス

-DB

ワークロード管理

-WLM

セキュリティ管理- 認証- 許可- 監査

パフォーマンス管理

- パフォーマンスモニタリング

設計・構築

モデリング・論理設計 物理設計 高可用性設計

第7章

第7章

第6章 第6章

第5章

第4章

第4章第4章

パラメータ設計第6章

Page 5: 第4章 DB2運用の基本

© 2011 IBM Corporation5

• データの抽出・投入・移動

• 統計情報の収集

• 表の再編成

表のメンテナンス

Page 6: 第4章 DB2運用の基本

© 2011 IBM Corporation6

データの抽出・投入・移動のためのユーティリティ

• DB2の世界ではDEL形式(CSV)のファイルを経由することが一般的

• データ抽出用のユーティリティ:EXPORT• データベースからフラット・ファイルへデータを抽出

• EXPORTコマンドで記述されたSELECT文の結果のデータを抽出

• データ投入用のユーティリティ:IMPORT/LOAD• フラットファイルからデータベースへデータを投入

• IMPORTは内部的にSQLを利用する

• LOADはデータページを生成して直接表スペースへ書き込む

データベース

id name tel001 nm1 12002 nm2 34003 nm3 56 ASC形式

IXF形式

DEL形式EXPORTIMPORT/LOAD

データベース

id name tel001 nm1 12002 nm2 34003 nm3 56

Page 7: 第4章 DB2運用の基本

© 2011 IBM Corporation7

• Oracle SQL*Loaderの移行

• ダイレクトパス・ロード

• データベース・バッファーをバイパスし、データベースに直接フォーマット済みページを

書き込む

• 高速なデータ投入が可能

• 従来型パス・ロード

• SQL*LoaderがINSERTを生成して、データベースに対してデータを投入する

• ダイレクトパスと比較して遅い

• 参照制約やチェック制約の制約で従来型パスを使用している場合、DB2ではLOADが使用

可能。(LOAD完了後にSET INTEGRITYコマンドを実行する)

データ移動ユーティリティ

DB2 LOAD utility

DB2 IMPORT utility

Page 8: 第4章 DB2運用の基本

© 2011 IBM Corporation8

• SQL*Loader のコントロール・ファイル

• 固定長フォーマットをロードするコントロールファイルの例

• 固定長フォーマットの場合、POSITION() 指定を METHOD Lを用いた指定に

変更する

データ移動ユーティリティ

LOAD DATAINFILE '/home/ora_usr/accounts.dat'INTO TABLE accounts( acct_id POSITION(0001:0003) NUMBER,dept_code POSITION(0004:0006) CHAR,acct_desc POSITION(0009:0100) VARCHAR2,max_employees POSITION(0101:0103) NUMBER,current_employees POSITION(0104:0106) NUMBER,num_projects POSITION(0107:0107) NUMBER )

LOAD FROM '/home/ora_usr/accounts.dat' of ASCMETHOD L( 0001 0003,0004 0006,0009 0100,0101 0103,0104 0106 )INSERT INTO accounts( acct_id,dept_code,acct_desc,max_employees,current_employees );

Oracle SQL*Loader control file DB2 Load command

Page 9: 第4章 DB2運用の基本

© 2011 IBM Corporation9

• 可変長データの場合のコントロールファイル

• 可変長データの場合のコマンド比較

• シンプルなコントロールファイルについては、下記のIBM Redbookで変換用のPerlスクリ

プトが使用可能

• Redbook "Oracle to DB2 Conversion Guide for LUW", Appendix E, “Converter for SQL*Loader” on page 673.

• http://www.redbooks.ibm.com/abstracts/sg247048.html

データ移動ユーティリティ

INFILE '/home/ora_usr/accounts.dat'INTO TABLE accountsFIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'( acct_id,dept_code,acct_desc,max_employees,current_employees,num_projects )

LOAD FROM '/home/ora_usr/accounts.dat' of ASCMODIFIED BY CHARDEL”” COLDEL,METHOD P (1, 2, 3, 4, 5 )INSERT INTO accounts( acct_id,dept_code,acct_desc,max_employees,current_employees );

Oracle SQL*Loader control file DB2 Load command

101,"ACT","Major Bank Co.",30,11,4301,"ACT","Large Telco Inc.",30,0,4101,"IT","Huge Software Co.",50,0,4203,"MKT","Basic Insurance Co.",15,0,3

Data file to load

Page 10: 第4章 DB2運用の基本

© 2011 IBM Corporation10

• LOAD• db2move.lstファイルの情報を元

に、LOADによるデータの投入を

行う

• COPY• テーブルのコピーを行うオプション。

同じデータベース内だけでなく、複

数のデータベースをまたがったコ

ピーが可能

• db2move• Oracleのimp/expと同様、スキーマを指定したデータの抽出/投入/移動が可能。

• 指定可能なアクション

• EXPORT• 指定した条件に一致するテーブルを抽出する。条件指定がない場合は全てのテーブルが対象。

• 抽出したテーブルの情報はdb2move.lstファイルに記録される

• IMPORT• db2move.lstファイルの情報を元にIMPORTによるデータの投入を行う

データ移動ユーティリティ

Table

Table

IndexIndex

Sequence

Views

Trigger

Routine

Schema: SANTA

Table

Table

IndexIndex

Sequence

View

Trigger

Routine

Schema TEST

DB2MOVE

db2move SRCDB COPY –sn “SANTA” -co target_db TESTDB –u db2admin –p password

SRCDB

TESTDB

Page 11: 第4章 DB2運用の基本

© 2011 IBM Corporation11

• カーソルからのLOAD実行

• 通常LOADはフラットファイルを入力データとするが、カーソルを使用して

SELECT結果を直接ロードすることも可能

• 移動するデータを一旦ファイルへ蓄積する必要がない

• 複数のデータベース間でカーソルを使用したLOADも可能

• カーソル宣言の中で、ターゲットとなるデータベース接続情報を指定

データ移動ユーティリティ

DECLARE C1 CURSOR FOR SELECT * FROM SOURCE_TABLE;LOAD FROM C1 OF CURSOR REPLACE INTO TARGET_TABLE;

1. ソースDBへ

接続

2. 結果セットをカーソルから取得し、ターゲット・

データベースに直接投入

SELECT結果をターゲット表

に直接LOADする

カーソルからのロード リモート・データベースからのロード

DECLARE C1 CURSOR DATABASE SRCDB USER user1 USING password FOR SELECT * FROM SOURCE_TABLE;LOAD FROM C1 OF CURSOR REPLACE INTO TARGET_TABLE;

ソース・データベース ターゲット・データベース

Page 12: 第4章 DB2運用の基本

© 2011 IBM Corporation12

ブランク・ページ

Page 13: 第4章 DB2運用の基本

© 2011 IBM Corporation13

統計情報の収集

• 統計情報を 新の状態に更新する• 現時点の統計情報に更新することで、 新の統計情報によるアクセス・パスが選

択される

• 静的SQLの場合、BIND時に既にアクセス・パスが決まっており、RUNSTATS後にREBINDしない

限り、アクセス・パスへの影響は受けない

• 動的SQLの場合、実行時にBINDが行われアクセス・パスが決まるので、RUNSTATS後のパ

フォーマンスは変化する可能性有り

• RUNSTATSを取得すべきタイミング• 索引が作成された時

• 表のデータがREORGされた時

• 表および索引のデータの10-20%がUPDATE/DELETE/INSERTされた時

• アプリケーションをBINDする前

• RUNSTATS実行中には表への書き込み・読み込みアクセスが共に可能

・表統計・列統計・列分布統計・索引統計

システム・カタログ表

SQLステートメント

統計情報

オプティマイザー

適なアクセス・プラン

Page 14: 第4章 DB2運用の基本

© 2011 IBM Corporation14

統計情報の収集

• 基本的なRUNSTATSコマンド

• 表及び索引の統計情報を収集する

• ターゲットとなる表にはスキーマ名の指定が必要

• 分散統計を収集するRUNSTATSコマンド

• 表及び索引の統計情報に加え、列ごとの値の分布を収集する

• パラメータマーカーを使用しないSQLの効率的なアクセスプラン決定に効果的

• サンプリングを使用したRUNSTATSコマンド

• 巨大な表の統計情報を収集する際に、全てのデータを評価するのではなく、一部の

データのみサンプリングを行う

• SYSTEMサンプリングを使用した場合、指定された比率のページだけを読み込むため、

実行時間の短縮に効果的

db2 RUNSTATS ON TABLE FOR DB2INST1.TABLE1 AND INDEXES ALL

db2 RUNSTATS ON TABLE FOR DB2INST1.TABLE1 WITH DISTRIBUTION AND INDEXES ALL

db2 RUNSTATS ON TABLE DB2INST1.TABLE1 AND INDEXES ALL TABLESAMPLE SYSTEM (10)

Page 15: 第4章 DB2運用の基本

© 2011 IBM Corporation15

統計情報の自動的な収集

• DB2のオートノミック機能の一環として、統計情報を自動的に収集する機能が強化され

ている

• 自動RUNSTATSとリアルタイムRUNSTATS

• 統計情報の自動収集を有効にした場合の流れ

• ①

非同期統計情報収集

• できる限り、バックグラウンドで実行される統計情報収集を利用

• ②

リアルタイム統計情報収集(同期統計情報収集)

• 統計情報が正確でないと判断した場合、SQLステートメントが 適化される前に統計情報を取得

• ③

ファブリケート統計情報の利用

• なんらかの理由で、リアルタイム統計取得ができなかった場合、索引マネージャからのメタ・データを

使用して統計情報を作成(ファブリケート)する。

• ④

上記②、③により統計情報が利用された場合、非同期統計情報の取得を要求する。

①非同期統

計情報収集.

②リアルタイム

統計情報収集

③ファブリケート

統計の利用

大量更新

④非同期統計取得要求

より実情に

即したアク

セスプラン

①非同期統

計情報収集.①非同期統

計情報収集.

RUNSTATS時間の超過

Page 16: 第4章 DB2運用の基本

© 2011 IBM Corporation16

参考:リアルタイム統計情報収集機能の設定方法

• DB CFG “AUTO_STMT_STATS” をONに設定する

• 同期統計収集のON/OFFを設定するパラメーター

• 動的に変更可能

• DB2 V9.7からデフォルトでONとなっている

• 階層構造となっている点に注意

• AUTO_MAINT, AUTO_TBL_MAINT, AUTO_RUNSTATSが全てONに

なっている必要がある

• データベースがアクティブにされてから 低

5 分間は、リアルタイム統計収集アクティ

ビティーは行われない

Automatic maintenance (AUTO_MAINT) = ON

Automatic database backup (AUTO_DB_BACKUP) = OFF

Automatic table maintenance (AUTO_TBL_MAINT) = ON

Automatic runstats (AUTO_RUNSTATS) = ON

Automatic statement statistics (AUTO_STMT_STATS) = ON

Automatic statistics profiling (AUTO_STATS_PROF) = OFF

Automatic profile updates (AUTO_PROF_UPD) = OFF

Automatic reorganization (AUTO_REORG) = OFF

リアルタイム統計情報収集

機能

Page 17: 第4章 DB2運用の基本

© 2011 IBM Corporation17

表の再編成

• 表データのフラグメンテーションの解消、指定した索引順にデータを並び替えるた

めのユーティリティー

• 目的

• フラグメンテーションの解消による

• ディスク容量の削減

• データ読み取りの処理効率向上

• 指定した索引順のデータの並び替えによる

• 索引スキャンのパフォーマンス向上

• 順次先読みの効率向上

• 再編成が必要なケース

• SQLによる更新(UPDATE/DELETE/INSERT)により、フラグメンテーションが発生し

た場合

• クラスター率が低下し、索引スキャン、順次先読みの効率が悪化した場合

• 再編成が必要でないケース

• SQLによる更新処理のない、読み取りのみの表

• ユニーク索引の列を条件とした1件検索の場合には、クラスター率が低くても問題なし

Page 18: 第4章 DB2運用の基本

© 2011 IBM Corporation18

REORG TABLEコマンドの実行

テーブル再編成の基本的な流れ

Table1

TS1 Tempspace1

1. REORG対象の表から

全レコードを取得し、一

時表スペースでソート

temp1

2. ソートが完了したデー

タを元の表スペースに書

き戻し

INDEX_TS13. 既存の索引を削除し、

新たに索引を作成drop &

create

• REORG TABLEコマンドは表・索引を対象として実行可能

• 表の再編成 (索引は強制的に再作成される)

• 索引の再編成

db2 REORG TABLE TUKIV97.TABLE1 INDEX TUKIV97.INDEX_TS1 USE TEMPSPACE1

db2 REORG INDEXES ALL FOR TABLE TABLE1

Page 19: 第4章 DB2運用の基本

© 2011 IBM Corporation19

SYSADM

SYSCTRL

SYSMAINT

DBADM

・・・

・・・

・・・

1. 認証本人確認成りすましの防止

USER user1 PASSWORD a@x?s

ACCESS

OK

2. 権限・特権適切なアクセス権限、実

行権限の付与

password

;@[- ^*;:@_?>;sfd

-032;l/mg,fdsl;

Fdsa;;lkb[¥¥- :o;/.; 5. 暗号化

格納データの暗号化ファイルの暗号化

4. LBAC行単位、列単位のアク

セス制御

(9.1-)

ACCESS

OK

3. 監査活動履歴の取得、解析

6. トラスティッド接続3層アプリケーションでの

セキュリティー強化(9.5-)

5. 暗号化

ネットワーク・トラ

フィック上のデー

タ暗号化

------------------ --------

------------------------

--------------------------

認証OK!

私はXXです。

アクセス権あ

りますか?アクセス権は

ありません。

アクセスできるの

はここまでです。

DB2の提供するセキュリティ機能の概要

Page 20: 第4章 DB2運用の基本

© 2011 IBM Corporation20

セキュリティ設計

参考資料

• DB2セキュリティ・デザインガイド

• DB2の提供するセキュリティ機能をシステム構築時に使用する際のデザイン

ガイド

• 目次

• 1. 概要、認証権限および特権

• 2. 監査機能編

• 3. LBAC編

• 4. 暗号化編

• IBM Web Siteにて入手可能

• http://www-06.ibm.com/jp/domino01/mkt/dminfo.nsf/doc/00299AFE