Comments
Description
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