Comments
Description
Transcript
DB2 for z/OS LOB データ共用、 、区分表
DB2 for z/OS データ共用、LOB、区分表 Copyright ISE Co.,Ltd <6章-2: DB2 for z/OS データ共用、LOB、区分表> 当資料に含まれている情報は正式なIBMのテストを受けていません。また明記にしろ暗黙的にしろ、何らの保証もなしに配布されるものです。 この情報の使用またはこれらの技術の実施は、いずれも使用先の責任において行われるべきものであり、それらを評価し実際に使用する環境 に統合する使用先の判断に依存しています。 それぞれの項目は、ある特定の状態において正確であることがIBMによって調べられていますが、他のところで同じ、または同様の結果が得られ る保証はありません。これらの技術を自身の環境に適用することを試みる使用先は、自己の責任において行う必要があります。 2 Copyright ISE Co,.Ltd <6章-2: DB2 for z/OS データ共用、LOB、区分表> データ共用の位置付け データ共用 非データ共用 z/OS CF DB2 z/OS-1 z/OS-2 DB2 DB2 データ ・一つのz/OSに一つのDB2 ・処理能力の限界 -CPU -スレッド数 -バッファープール -ログ書き出し ・可用性の限界 データ ・ディスク共有 ・CFの利用 ・キャパシティー ・スケーラビリティー ・高可用性 3 Copyright ISE Co,.Ltd <6章-2: DB2 for z/OS データ共用、LOB、区分表> データ共用の仕組み CF CEC … HSA MVSa IRLMa … HSA MVSb リスト・ストラクチャ SCA CFアクセス CFアクセス DB2a DB2 コマンド ロック・ストラクチャ CEC IRLMb DB2b ローカルBP キャッシュ・ストラクチャ ローカルBP BP0 グループBP BP0 ローカルBP GBP0 ローカルBP BP1 グループBP BP1 GBP1 カタログ, ディレクトリー LOG BSDS LOG BSDS ユーザDB 4 Copyright ISE Co,.Ltd DB2 コマンド <6章-2: DB2 for z/OS データ共用、LOB、区分表> データ共用の仕組み GBP DEPEND 複数DB2からの更新の整合性を維持する仕組み CF CF GBP DEPEND GBP1 DB2A GBP1 PAGE DB2B PAGE BP1 DB2A BP1 UPDATE DB2B PAGE BP1 PAGE BP1 UPDATE UPDATE 表 スペース 表 スペース DB2Aで表スペースを更新 同じ表スペースをDB2Bでも更新 5 LOB (Large Object) Copyright ISE Co,.Ltd <6章-2: DB2 for z/OS データ共用、LOB、区分表> 最大2GBのデータを格納するためのデータタイプ 三つのデータタイプが提供される BLOB (Binary Large Object) Image, Audio, Videoデータなどを格納 CLOB (Character Large Object) SBCS文字およびMixedキャラクターを格納 DBCLOB (Double Byte Character Large Object) DBCS文字を格納 ROWID列 ROWID 各行でユニークな値を生成する19バイトのフィールド DB2が値を生成する LOBを含む表には必ず定義する必要がある 複数のLOB列が定義されていてもROWIDは一列でよい 実際のLOBデータをポイントするために使用される 実際のLOBデータはベース表とは別の場所に格納される 実際のLOBデータはAUXILIARY表に格納する 6 Copyright ISE Co,.Ltd <6章-2: DB2 for z/OS データ共用、LOB、区分表> LOBデータの格納 Index 表スペース ROWID RID ベース表 IDCOL X'010... PHOTO ROWID LOB列 AUXILIARY表 LOB表スペース 区分表スペース IDCOL X'010... PHOTO IDCOL X'010... PHOTO IDCOL X'010... PHOTO IDCOL X'010... PHOTO ROWID ROWID ROWID ROWID 7 LOBデータの格納 RID RID RID RID Copyright ISE Co,.Ltd <6章-2: DB2 for z/OS データ共用、LOB、区分表> LOB列には、LOBデータではなく、LOBデータに関する情報が格納される LOB表スペース LOBデータを格納する専用の表スペース LOB列一つにつき一つ必要 4K, 8K, 16K, 32Kのページサイズを使用できる ペース表が区分化されている場合には、区分ごとにLOB表スペースを作成する 最大16TB(64GB×254データセット) AUXILIARY表 LOBデータを格納する専用の表 LOB表スペース上に作成する 一列からなる表、つまりLOB列一つにつき一つ作成する ベース表が区分化されている場合には、区分ごとにAUXILIARY表を作成する AUXILIARY表には索引を作成する必要がある AUXILIARY表の索引は、ベース表のROWID列とLOBデータへのRIDから構成される 8 Copyright ISE Co,.Ltd <6章-2: DB2 for z/OS データ共用、LOB、区分表> LOB使用の考慮点 GBPCACHE 表スペース作成時、データ共用環境においてGBPに書き出すページの種類を指定する オプション指定 ALL (DASDから読まれたページはすべてGBPにキャッシュされる) 複数DB2メンバーからREAD INTERESTのみがあるような場合、DASDからの読み込みを回避できる可能性 CFの使用率が高くなる CHANGED (更新されたページのみがGBPに書き出される) 通常の表スペースで推奨 SYSTEM (DB2システムが使用するページのみGBPにキャッシュする) LOB表スペースで推奨 GBPに大きなLOB値が書き出されることを防ぐ コミット時にLOB値がDASDへ書き出される NONE (GBPにページはキャッシュされない) CF関連のコストを低く出来るため、更新を対象に行うバッチ処理では有効になる場合がある 更新処理はコミット時に同期的にDASDに書き出されるため、処理の経過時間は増加する LOG YES/NO LOB表スペース作成時、LOBデータに対する更新をロギングするかどうかを指定する LOG NOの場合 ROLLBACK はLOG属性の値によって影響されない シャドウ・コピーを使用 Auxiliary表のリカバリーはDB2としてはサポートしない 9 Copyright ISE Co,.Ltd <6章-2: DB2 for z/OS データ共用、LOB、区分表> 区分表スペース 複数の区分から構成される表スペース 各区分は物理的な格納媒体(データセット)とひもづく 一つの表は複数区分にまたがって作成される 区分表の目的 大量データの格納 単純表スペース、セグメント化表スペースの最大サイズは64GB V8では、区分表スペースの最大サイズは128TB 4Kページ 8Kページ 16Kページ 32Kページ I/O分散 :16TB :32TB :64TB :128TB 区分1 区分3 区分4 区分表 各区分を別々のVOLUMEに配置することによるI/O分散 区分表スペース 並列処理 区分2 検索時に複数区分を並列にスキャン 区分ごとのJOB実行 区分ごとのユーティリティー実行 区分単位の運用 区分単位にユーティリティーを実行 LOAD,REORG,RUNSTATS,COPY,RECOVER 10 Copyright ISE Co,.Ltd <6章-2: DB2 for z/OS データ共用、LOB、区分表> 区分化の方法 キーレンジ・パーティショニング 各区分に格納するデータをデータ値の範囲で指定する 区分1はCOLUMN1が1~100まで、区分2はCOLUMN1が101~200まで.... DDLにおいて各区分の最大値を指定する 区分1の最大値は100、区分2の最大値は200.... 区分1は1~50と61~100、区分2は51~60といったような構成はできない V8では、区分索引は任意 V7までは区分索引が必須 COLUMN1 COLUMN1 COLUMN1 COLUMN1 最大値100 最大値200 最大値300 最大値400 (1~100) (101~200) (201~300) (301~400) 区分表 区分1 区分2 区分3 区分4 区分表スペース 11 Copyright ISE Co,.Ltd 区分化の方法 DDLの違い V8 (Table Controlled Partitioning) <6章-2: DB2 for z/OS データ共用、LOB、区分表> V7 (Index Controlled Partitioning) CREATE TABLESPACE …. NUMPARTS 4 CREATE TABLE table1 ( CREATE TABLESPACE …. NUMPARTS 4 CREATE TABLE table1 ( column1 INTERGER, … … column10 CHAR(20)) PARTITION BY (column1 ASC) (PARTITION 1 ENDING AT (100) ,PARTITION 2 ENDING AT (200) ,PARTITION 3 ENDING AT (300) ,PARTITION 4 ENDING AT (400)) column1 … … column10 INTERGER, CHAR(20)) CREATE INDEX index1 ON customer (column1 ASC) CLUSTER ( PART 1 VALUES (100) PART 2 VALUES (200) PART 3 VALUES (300) PART 4 VALUES (400) )… 12 Copyright ISE Co,.Ltd