...

DB2 for z/OS LOB データ共用、 、区分表

by user

on
Category: Documents
351

views

Report

Comments

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
Fly UP