...

DPropR 日本アイ・ビー・エム株式会社 ソフトウェア事業部 Page 1

by user

on
Category: Documents
14

views

Report

Comments

Transcript

DPropR 日本アイ・ビー・エム株式会社 ソフトウェア事業部 Page 1
DPropR
日本アイ・ビー・エム株式会社
ソフトウェア事業部
Page 1
第三話
Page 2
レプリケーション環境を構成するデータベースサーバー
前回まで、DpropRを構成する要素とDpropRでデータをレプリケーションするために重要な概念をご紹介してきましたが、今
回はレプリケーション環境のデータベースサーバーおよび、レプリケーション定義とその実行例についてご紹介します。
レプリケーション環境を構成するデータベースサーバーとして次の3つがあります。
1. ソース・サーバー
2. ターゲット・サーバー
3. コントロール・サーバー
ソース・サーバーはレプリケーション対象のソース表が定義されているデータベース・サーバーです。Captureプログラムは
常に、ソース・サーバーでローカル・アプリケーションとして実行されます。1つのソース・サーバーに対して、1つのCapture
プログラムが稼動します。プラットフォームによって、ソースサーバーとCaptureプログラムの関係は異なります。
1. オープン系のDB2であれば、1データベースにつき1Captureプログラムが稼動(1インスタンスにつき複数のCaptureプログ
ラム)
2. DB2/390あるいはDB2/400であれば、1データベースサブシステムにつき1Captureプログラムが稼動
ターゲット・サーバーは、レプリケーションされた変更を受け取るターゲットとなる表が存在するデータベース・サーバーで
す。Applyプログラムはターゲット・サーバーにおいて、ローカル・アプリケーションでも、リモート・アプリケーションでも構いま
せん。第2回でご紹介した、Apply Qualifierを分けることによって、1つのターゲット・サーバーに対して、複数のApplyプログ
ラムを同時実行させることが可能です。
コントロール・サーバーはレプリケーションのための制御情報を保管しているデータベース・サーバーです。第2回でご紹介
したサブスクリプションの情報は、このサーバー内のデータベースに格納されます。Applyプログラムはコントロール・サー
バーに接続して、必要な情報を頻繁に参照・更新します。Applyプログラムはコントロール・サーバーに対して、リモートアプ
リケーションとして動かすこともできますが、パフォーマンスの観点から、ローカル・アプリケーションとして動かす方が効率
はよいです。
次の図は、Capture,Apply,レプリケーション管理ツールと各データベースサーバーの関係を模式的に表したものです。
Copyright
IBM Co. 2002
Page
3
IBM Software
レプリケーション環境を構成するデータベースサーバー
ターゲット・サーバー
ソース・サーバー
ロ
グ
複写先
Capture
複写元
変更データ表
(ステージング表)
レプリケーション
制御表
制御情報挿入
照会
Apply
制御情報照会
コントロール・サーバー
制御情報挿入
レプリケーション
管理ツール
Copyright
IBM Co. 2002
Page
4
更新
レプリケーション制御表
IBM Software
レプリケーションのための制御表
DpropRはいろいろな制御表を用いて、ソース⇒ターゲット間のレプリケーションを、データの整合性を保ちながら、ユーザー
の指定した仕様で実行します。制御表はコントロールセンターからソース表の定義およびサブスクリプションの定義をする
と、自動的にソースサーバーとコントロールサーバーに作成されます。ただし、自動的に作成された制御表は、サイズや表
スペースなどの変更ができないので、制御表をカストマイズしたい場合のために、SQLLIB\SAMPLES\REPLディレクトリ下
に次のようなサンプルを提供しています。
DPCNTL.UDB : Unix/Windows/OS2版のUDBの制御表
DPCNTL.MVS : OS/390,z/OS版のUDBの制御表
DPCNTL.400 : iSeries版のUDBの制御表
この制御表は、使用用途によって、Capture時に使用されるもの、Capture/Apply時双方で使用されるもの、Apply時に使用
されるものに分類されます。
Copyright
IBM Co. 2002
Page
5
IBM Software
M Sof
レプリケーションのための制御表
用途
制御表
ウォームスタート表
Captureのみで トレース表
使用
Applyのみで
使用
Copyright
IBM Co. 2002
Page
6
IB
e
Captureプログラムがログまたはジャーナル内で最後に停止した場所から変更情報の収集を再
開するために必要な情報を格納
Captureプログラムの実行状況の情報を格納
チューニングパラメータ表
Captureプログラムのパフォーマンスを制御するためのパラメータを格納
登録表
ソース表の名前、属性、対応するCD/CCD表の名前など、ソース表に関する情報を格納
Captureおよび 作業単位表
Applyで使用
制御表の働き
war
コミット済みトランザクションに関する情報を格納
t
変更データ表
変更データ情報を格納、ソース表を定義するときに自動的に作成
プルーニング制御表
変更データ表のプルーニング(不要データの消しこみ処理)を行うための情報を格納
適用追跡表
Applyプログラムの実行状況の情報および問題発生時の診断情報を格納
サブスクリプションセット表
サブスクリプションセットの情報を格納
サブスクリプションメンバー表
特定のソース表を特定のターゲット表にマップする個々のサブスクリプションの情報を格納
サブスクリプション列表
ターゲット表のコピーされた各列に関する情報を格納
サブスクリプションステートメント
表
サブスクリプションの処理前後で実行されるSQLステートメント・ストアードプロシージャの情報を
格納
サブスクリプションイベント表
サブスクリプションを実行するためのトリガーとなるイベントの情報を格納
M Sof
IB
レプリケーションの定義と実行例
それでは、コントロールセンターを用いて、DB2⇒DB2のレプリケーション定義を行ってみましょう。ここでご紹介するのは、1
つのDB2インスタンス内にソースサーバー(DBSRC)・ターゲットサーバー(DBTGT)・コントロールサーバー(DBCTL)を定義す
る例です。
Copyright
IBM Co. 2002
Page
7
IBM Software
DBSRCデータベースにある、OFFICE表の一部の列をDBTGTデータベースに3分間隔でレプリケーションします。OFFICE表に
は次のようなデータが格納されています。
DBTGTデータベースには、このOFFICE表のREGION列、CODE列、NAME列のみをレプリケーションします。DBTGTデータ
ベースには、既存のターゲット表はなく、このレプリケーション定義のなかで作成していきます。
Page 8
1.ソース表の定義
DBSRCデータベースのレプリケーション・ソース項目を右クリックし、「作成」を選択します。
Page 9
次のような画面が表示されるので、OFFICE表のスキーマ名と表名を指定すると、レプリケーション可能な列の情報が表示され
ます。デフォルトでは、全ての列が選択されていますが、ここでは、REGION列、CODE列、NAME列のみ選択します。ちなみ
に、「データ取り込みは全最新表示のみ」の項目をチェックすると、変更の差分情報は反映されずに常に、全件データがリフ
レッシュされます。了解をクリックすると、即時に実行するか、SQLをファイルに保管して後で実行するか選択する画面が表示
されます。
Page 10
即時実行あるいはSQLステートメントの実行でレプリケーションのソースとして、OFFICE表が定義できました。
Page 11
2.サブスクリプションの定義
DBSRCデータベースのレプリケーション・サブスクリプション項目を右クリックし、「作成」を選択します。
Page 12
サブスクリプション名「SUB01」と適用修飾子(=Apply Qualifier)名「QUAL01」を指定します。この値は任意に定義することができま
す。また、ターゲット・サーバーとしてDBTGTデータベースを指定します。「追加」をクリックすると指定可能なレプリケーション・ソース
表のリストが表示されるので、OFFICE表を選択します。ここで、既存のターゲット表があれば、ターゲット表の指定を、存在しない場
合は、「ターゲット表の作成」項目にチェックします。「追加」をクリックして、この画面を終了します。
ここでは定義しませんが、「SQL」をクリックすると、レプリケーションの前後で実行したいSQLステートメントおよびストアードプロシー
ジャーを指定することができます。
次に、「タイミング」をクリックして、レプリケーションのタイミングの定義を行います。
Page 13
次の画面で、レプリケーションのタイミングの設定を行います。レプリケーションを開始する日付・時刻を設定し、頻度については、一
定間隔のレプリケーションか、あるいはイベント起動のレプリケーションかを選択します。このオプションは組み合わせて使用すること
もできます。ここでは、3分間隔でレプリケーションするように設定します。
「了解」をクリックして、この画面を終了します。
Page 14
サブスクリプション「SUB01」に、ソース表としてOFFICE表が、ターゲット表として同名のOFFICE表が、表の作成オプション付で追加さ
れました。このサブスクリプションは、適用修飾子「QUAL01」で実行します。
「了解」をクリックすると、サブスクリプション情報を格納するデータベースサーバーを選択する画面が表示されます。ここでは、コント
ロールサーバーとして、DBCTLデータベースを使用するので、DBCTLデータベースを指定します。また、サブスクリプション定義を即
時実行するか、SQLをファイルに保管して後で実行するか、選択できます。
Page 15
即時実行あるいはSQLステートメントの実行でレプリケーションサブスクリプションの定義ができました。
Page 16
DBSRCデータベースにはCD表が作成されています。CD表の名前はDB2が自動的に決定します。またDBTGTデータベースに
はターゲット表として、新しくOFFICE表が作成されています。
Page 17
3.Captureプログラムのセットアップ
Captureプログラムのセットアップは、ソースサーバーに接続して行います。
CONNECT TO DBSRC ;
Captureプログラムが変更ログを収集することができるように、ソースサーバーのデータベースをロールフォワード回復が可能
な状態、つまり、データベース構成パラメータのLOGRETAINの値を ONにします。LOGRETAINをONに変更した後は、バック
アップを取得します。次のコマンドを実行します。
UPDATE DB CFG FOR DBSRC USING LOGRETAIN ON
BACKUP DB DBSRC
CaptureプログラムをBINDします。通常、Captureプログラムのバインドファイルは、SQLLIB\BNDディレクトリー下に置かれて
います。SQLLIB\BNDディレクトリに移動して、次のコマンドを実行します。
BIND @CAPTURE.LST ISOLATION UR BLOCKING ALL ;
Page 18
4.Applyプログラムのセットアップ
Applyプログラムは、Applyプログラムが接続する、ソース、ターゲット、コントロールの各データベースサーバーに接続して
BINDします。通常、Applyプログラムのバインドファイルは、SQLLIB\BNDディレクトリー下に置かれているので、SQLLIB\BND
ディレクトリに移動して、次のようなコマンドを実行します。
CONNECT TO DBSRC ;
BIND @APPLYCS.LST ISOLATION CS BLOCKING ALL GRANT PUBLIC ;
BIND @APPLYUR.LST ISOLATION UR BLOCKING ALL GRANT PUBLIC ;
CONNECT RESET ;
Page 19
5.Captureの開始
Captureを開始します。SETコマンドを使用して、DB2INSTANCE環境変数を設定し、ソースサーバーをパラメータで渡して
Captureプログラム(ASNCCP)を開始します。Captureプログラム開始時に指定できるパラメータには、WARM/COLDスタート
の選択など、他にもありますが、詳細については、マニュアル「レプリケーションの手引きおよび解説書」を参考にしてください。
Page 20
6.Applyの開始
Applyを開始します。SETコマンドを使用して、DB2INSTANCE環境変数を設定し、適用修飾子、コントロールサーバーをパラ
メータで渡してApplyプログラム(ASNAPPLY)を開始します。Applyプログラム開始時に指定できるパラメータには、下記の例で
指定しているように、トレース情報の出力(TRCFLOW)など、他にもありますが、詳細については、マニュアル「レプリケーション
の手引きおよび解説書」を参考にしてください。
Page 21
7.変更情報の適用
Applyを開始した後、サブスクリプションで定義した、レプリケーション開始日付および時刻になったら、第一回目の変更情報の
適用が実行されます。第一回目は、ターゲット表は空なので、全件リフレッシュになります。第一回目のレプリケーション終了
後のターゲット表の内容は次のようになっています。
Page 22
第一回目のレプリケーションが行われた後に、ソース表に対して、3件新しいデータを入力します。
Page 23
3分間の休止の後、Applyプログラムは新しい更新情報を取り出します。下図では、Applyプログラムが休止している間に加え
られた3件の変更情報を取得したと表示されています。
Page 24
第一回目のレプリケーションが行われた後に、ソース表に対して、加えられた3件の新しいデータがターゲット表に反映されて
います。
Page 25
Fly UP