Comments
Description
Transcript
第4章 DB2運用の基本
第4章 DB2運用の基本 本書に含まれている情報は、正式なIBMのテストを受けていません。また、明記にしろ、暗黙的にしろ、なんらの保証もなしに配布されるものです。 この情報の使用またはこれらの技術の実施は、いずれも、使用先の責任において行われるべきものであり、それらを評価し、実際に使用する環境に統合する 使用先の判断に依存しています。それぞれの項目は、ある特定の状態において正確であることがIBMによって調べられていますが、他のところで同じまたは同 様の結果が得られる保証はありません。これらの技術を自身の環境に適用することを試みる使用先は、自己の責任において行う必要があります。 © Copyright IBM Japan Co., Ltd. 2011 内容 • データベースの運用管理とは • 表のメンテナンス • データの投入・抽出・移動 • 統計情報の収集 • 表の再編成 • DB2のセキュリティ機能概要 2 © 2011 IBM Corporation データベースの運用管理に伴う主なタスク 表のメンテナンス RUNSTATS 統計情報や再編成 の実施 REORG 権限・特権 SYSADM モニタリング アクセス状況やリ ソースの状態の把 握と問題判別 DBADM SYSCTRL 適切なアクセス権限、 実行権限の付与 SYSMAINT 監査 活動履歴の取得、 解析 ----------------------------------------------------------------------- 回復管理 定期的なバックアップの 取得と障害復旧の計画 3 データ移動 データの抽出・投入・ 移動 © 2011 IBM Corporation DB2の主な運用管理項目 設計・構築 第5章 モデリング・論理設計 物理設計 高可用性設計 定例運用 第4章 データベースメンテナンス -REORGCHK -REORG -RUNSTATS 第7章 - ログ管理 第7章 パフォーマンス管理 - パフォーマンスモニタリング 4 回復管理 -BACKUP -回復履歴ファイル セキュリティ管理 - 認証 - 許可 - 監査 ワークロード管理 -WLM - db2プロセス - 障害モニタリング パラメータ設計 非定例運用 起動/停止 -インスタンス -DB 稼動管理 第6章 第6章 第6章 回復管理 -RESTORE 第4章 第4章 変更管理 -レジストリー変数変更 -パラメーター変更 -バッファープール変更 -コンテナー追加 -コンテナーサイズ拡張 -フィックスパック適用等 データ移動ユーティリティ -LOAD -IMPORT -EXPORT © 2011 IBM Corporation 表のメンテナンス • データの抽出・投入・移動 • 統計情報の収集 • 表の再編成 5 © 2011 IBM Corporation データの抽出・投入・移動のためのユーティリティ • DB2の世界ではDEL形式(CSV)のファイルを経由することが一般的 • データ抽出用のユーティリティ:EXPORT • データベースからフラット・ファイルへデータを抽出 • EXPORTコマンドで記述されたSELECT文の結果のデータを抽出 • データ投入用のユーティリティ:IMPORT/LOAD • フラットファイルからデータベースへデータを投入 • IMPORTは内部的にSQLを利用する • LOADはデータページを生成して直接表スペースへ書き込む データベース id 001 002 003 6 name nm1 nm2 nm3 tel 12 34 56 EXPORT DEL形式 IXF形式 ASC形式 IMPORT/ LOAD データベース id 001 002 003 name nm1 nm2 nm3 tel 12 34 56 © 2011 IBM Corporation データ移動ユーティリティ • Oracle SQL*Loaderの移行 • ダイレクトパス・ロード • データベース・バッファーをバイパスし、データベースに直接フォーマット済みページを 書き込む • 高速なデータ投入が可能 DB2 LOAD utility • 従来型パス・ロード • SQL*LoaderがINSERTを生成して、データベースに対してデータを投入する • ダイレクトパスと比較して遅い DB2 IMPORT utility • 参照制約やチェック制約の制約で従来型パスを使用している場合、DB2ではLOADが使用 可能。(LOAD完了後にSET INTEGRITYコマンドを実行する) 7 © 2011 IBM Corporation データ移動ユーティリティ • SQL*Loader のコントロール・ファイル • 固定長フォーマットをロードするコントロールファイルの例 • 固定長フォーマットの場合、POSITION() 指定を METHOD Lを用いた指定に 変更する Oracle SQL*Loader control file LOAD DATA INFILE '/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 ) 8 DB2 Load command LOAD FROM '/home/ora_usr/accounts.dat' of ASC METHOD L ( 0001 0003 ,0004 0006 ,0009 0100 ,0101 0103 ,0104 0106 ) INSERT INTO accounts ( acct_id ,dept_code ,acct_desc ,max_employees ,current_employees ); © 2011 IBM Corporation データ移動ユーティリティ • 可変長データの場合のコントロールファイル • 可変長データの場合のコマンド比較 • シンプルなコントロールファイルについては、下記の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 Data file to load 101,"ACT","Major Bank Co.",30,11,4 301,"ACT","Large Telco Inc.",30,0,4 101,"IT","Huge Software Co.",50,0,4 203,"MKT","Basic Insurance Co.",15,0,3 Oracle SQL*Loader control file INFILE '/home/ora_usr/accounts.dat' INTO TABLE accounts FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' ( acct_id ,dept_code ,acct_desc ,max_employees ,current_employees ,num_projects ) 9 DB2 Load command LOAD FROM '/home/ora_usr/accounts.dat' of ASC MODIFIED BY CHARDEL”” COLDEL, METHOD P (1, 2, 3, 4, 5 ) INSERT INTO accounts ( acct_id ,dept_code ,acct_desc ,max_employees ,current_employees ); © 2011 IBM Corporation データ移動ユーティリティ • db2move • Oracleのimp/expと同様、スキーマを指定したデータの抽出/投入/移動が可能。 • 指定可能なアクション • EXPORT • • 指定した条件に一致するテーブルを抽出する。条件指定がない場合は全てのテーブルが対象。 抽出したテーブルの情報はdb2move.lstファイルに記録される • IMPORT • db2move.lstファイルの情報を元にIMPORTによるデータの投入を行う • LOAD • db2move.lstファイルの情報を元 に、LOADによるデータの投入を 行う • COPY • テーブルのコピーを行うオプション。 同じデータベース内だけでなく、複 数のデータベースをまたがったコ ピーが可能 SRCDB DB2MOVE Schema: SANTA Views Table Table Schema TEST Trigger Index Index Sequence View Table Table Trigger Routine db2move SRCDB COPY –sn “SANTA” -co target_db TESTDB –u db2admin –p password 10 TESTDB Index Index Sequence Routine © 2011 IBM Corporation データ移動ユーティリティ • カーソルからのLOAD実行 • 通常LOADはフラットファイルを入力データとするが、カーソルを使用して SELECT結果を直接ロードすることも可能 • 移動するデータを一旦ファイルへ蓄積する必要がない DECLARE C1 CURSOR FOR SELECT * FROM SOURCE_TABLE; LOAD FROM C1 OF CURSOR REPLACE INTO TARGET_TABLE; • 複数のデータベース間でカーソルを使用したLOADも可能 • カーソル宣言の中で、ターゲットとなるデータベース接続情報を指定 DECLARE C1 CURSOR DATABASE SRCDB USER user1 USING password FOR SELECT * FROM SOURCE_TABLE; LOAD FROM C1 OF CURSOR REPLACE INTO TARGET_TABLE; カーソルからのロード リモート・データベースからのロード ソース・データベース ターゲット・データベース 1. ソースDBへ 接続 SELECT結果をターゲット表 に直接LOADする 11 2. 結果セットをカーソルから取得し、ターゲット・ データベースに直接投入 © 2011 IBM Corporation ブランク・ページ 12 © 2011 IBM Corporation 統計情報の収集 • 統計情報を最新の状態に更新する • 現時点の統計情報に更新することで、最新の統計情報によるアクセス・パスが選 択される • • 静的SQLの場合、BIND時に既にアクセス・パスが決まっており、RUNSTATS後にREBINDしない 限り、アクセス・パスへの影響は受けない 動的SQLの場合、実行時にBINDが行われアクセス・パスが決まるので、RUNSTATS後のパ フォーマンスは変化する可能性有り • RUNSTATSを取得すべきタイミング • • • • 索引が作成された時 表のデータがREORGされた時 表および索引のデータの10-20%がUPDATE/DELETE/INSERTされた時 アプリケーションをBINDする前 • RUNSTATS実行中には表への書き込み・読み込みアクセスが共に可能 SQLステートメント 最適なアクセス・プラン システム・カタログ表 ・表統計 ・列統計 ・列分布統計 ・索引統計 13 統計情 報 オプティマイザー © 2011 IBM Corporation 統計情報の収集 • 基本的なRUNSTATSコマンド • • 表及び索引の統計情報を収集する ターゲットとなる表にはスキーマ名の指定が必要 db2 RUNSTATS ON TABLE FOR DB2INST1.TABLE1 AND INDEXES ALL • 分散統計を収集するRUNSTATSコマンド • • 表及び索引の統計情報に加え、列ごとの値の分布を収集する パラメータマーカーを使用しないSQLの効率的なアクセスプラン決定に効果的 db2 RUNSTATS ON TABLE FOR DB2INST1.TABLE1 WITH DISTRIBUTION AND INDEXES ALL • サンプリングを使用したRUNSTATSコマンド • • 巨大な表の統計情報を収集する際に、全てのデータを評価するのではなく、一部の データのみサンプリングを行う SYSTEMサンプリングを使用した場合、指定された比率のページだけを読み込むため、 実行時間の短縮に効果的 db2 RUNSTATS ON TABLE DB2INST1.TABLE1 AND INDEXES ALL TABLESAMPLE SYSTEM (10) 14 © 2011 IBM Corporation 統計情報の自動的な収集 • DB2のオートノミック機能の一環として、統計情報を自動的に収集する機能が強化され ている • • 自動RUNSTATSとリアルタイムRUNSTATS 統計情報の自動収集を有効にした場合の流れ • ① 非同期統計情報収集 • • ② リアルタイム統計情報収集(同期統計情報収集) • • 統計情報が正確でないと判断した場合、SQLステートメントが最適化される前に統計情報を取得 ③ ファブリケート統計情報の利用 • • できる限り、バックグラウンドで実行される統計情報収集を利用 なんらかの理由で、リアルタイム統計取得ができなかった場合、索引マネージャからのメタ・データを 使用して統計情報を作成(ファブリケート)する。 ④ 上記②、③により統計情報が利用された場合、非同期統計情報の取得を要求する。 ①非同期統 計情報収集. ②リアルタイム 統計情報収集 大量更新 ③ファブリケート 統計の利用 RUNSTATS 時間の超過 より実情に 即したアク セスプラン ← ④非同期統計取得要求 15 © 2011 IBM Corporation 参考:リアルタイム統計情報収集機能の設定方法 • 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 Automatic profile updates Automatic reorganization 16 (AUTO_STATS_PROF) = OFF (AUTO_PROF_UPD) = OFF (AUTO_REORG) = OFF © 2011 IBM Corporation 表の再編成 • 表データのフラグメンテーションの解消、指定した索引順にデータを並び替えるた めのユーティリティー • 目的 • フラグメンテーションの解消による • • • ディスク容量の削減 データ読み取りの処理効率向上 指定した索引順のデータの並び替えによる • • 索引スキャンのパフォーマンス向上 順次先読みの効率向上 • 再編成が必要なケース • SQLによる更新(UPDATE/DELETE/INSERT)により、フラグメンテーションが発生し た場合 • クラスター率が低下し、索引スキャン、順次先読みの効率が悪化した場合 • 再編成が必要でないケース 17 • SQLによる更新処理のない、読み取りのみの表 • ユニーク索引の列を条件とした1件検索の場合には、クラスター率が低くても問題なし © 2011 IBM Corporation REORG TABLEコマンドの実行 • REORG TABLEコマンドは表・索引を対象として実行可能 • 表の再編成 (索引は強制的に再作成される) db2 REORG TABLE TUKIV97.TABLE1 INDEX TUKIV97.INDEX_TS1 USE TEMPSPACE1 • 索引の再編成 db2 REORG INDEXES ALL FOR TABLE TABLE1 テーブル再編成の基本的な流れ TS1 Tempspace1 1. REORG対象の表から 全レコードを取得し、一 時表スペースでソート 2. ソートが完了したデー タを元の表スペースに書 き戻し Table1 temp1 INDEX_TS1 drop & create 18 3. 既存の索引を削除し、 新たに索引を作成 © 2011 IBM Corporation DB2の提供するセキュリティ機能の概要 私はXXです。 USER user1 PASSWORD a@x?s 1. 認証 ・・・ 本人確認 成りすましの防止 ・・・ ・・・ 認証OK! 2. 権限・特権 アクセス権あ りますか? 適切なアクセス権限、実 行権限の付与 SYSADM アクセス権は ありません。 DBADM SYSCTRL SYSMAINT 3. 監査 5. 暗号化 ネットワーク・トラ フィック上のデー タ暗号化 活動履歴の取得、解析 ACCESS OK ----------------------------------------------------------------------- password ACCESS ;@[^*;:@_?>;sfd OK -032;l/mg,fdsl; Fdsa;;lkb[¥¥:o;/.; 6. トラスティッド接続 3層アプリケーションでの セキュリティー強化(9.5-) 19 4. LBAC 行単位、列単位のアク セス制御 (9.1-) アクセスできるの はここまでです。 5. 暗号化 格納データの暗号化 ファイルの暗号化 © 2011 IBM Corporation セキュリティ設計 参考資料 • DB2セキュリティ・デザインガイド • DB2の提供するセキュリティ機能をシステム構築時に使用する際のデザイン ガイド • 目次 • • • • 1. 概要、認証権限および特権 2. 監査機能編 3. LBAC編 4. 暗号化編 • IBM Web Siteにて入手可能 • 20 http://www-06.ibm.com/jp/domino01/mkt/dminfo.nsf/doc/00299AFE © 2011 IBM Corporation