レプリケーションの手引きおよび解説書

データ複製のシナリオ

この章ではシナリオを使って、DB2 コントロール・センターと収集および変更適用プログラムを実際に操作してみます。 ここに示す簡単なシナリオのステップに従うと、 DB2 複製ソースでの変更が DB2 エンタープライズ・エディション (EE) (Windows NT 版)、または、ワークグループ・エディション (WE) のデータベースのターゲット表にコピーされます。

このシナリオは、以下の部分で構成されています。

  1. 開始する前に
  2. このシナリオの計画
  3. このシナリオの複製環境のセットアップ
  4. 複製環境における操作

開始する前に

このシナリオを自分のコンピューター上で実行する場合は、以下のステップを使ってシステムをセットアップします。

  1. コンピューターに DB2 (Windows NT 版) がインストールされていることを確かめます。
  2. DB2 コントロール・センターでデフォルト設定が使用されていることを確かめます。 デフォルト設定を明示的に変更してある場合、このシナリオに示されているステップが実際の画面に表示される内容と異なる場合があります。
  3. 複製対象の SQL ファイルを保管する C:\scripts というディレクトリーを作成します。
  4. DB2 コントロール・センターを使って COPYDB という新しいデータベースを作成します。このデータベースは、ターゲット・サーバーまた制御サーバーとして使用します。 データベースを作成するには、 「データベース (Database)」フォルダーを右クリックし、 ウィザードを使って、 デフォルト・オプションで新しいデータベースを作成するための指示に従います。
  5. DB2 ユニバーサル・データベースの「ファースト・ステップ (First Steps)」アイコンを使用して、 または「スタート」→「プログラム」→「DB2 (Windows NT 版)(DB2 for Windows NT)」→「ファースト・ステップ (First Steps)」を選択して、 SAMPLE データベースを作成します。 データベースを作成したら、「ファースト・ステップ (First Steps)」ウィンドウをクローズします。 DB2 (Windows NT 版) のインストール時にファースト・ステップをインストールしなかった場合は、 DB2 コマンド・ウィンドウで db2sampl コマンドを発行して、 SAMPLE データベースを作成してください。

この章のステップでは、SAMPLE データベースにある DEPARTMENT 表のデータを使用します。 完全修飾名は userID.Department です (userID は表を作成したユーザー ID)。 表 1 に DEPARTMENT 表を示します。

表 1. DEPARTMENT 表
DEPTNO DEPTNAME MGRNO ADMRDEPT LOCATION
A00 SPIFFY COMPUTER SERVICE 000010 A00 -
B01 PLANNING 000020 A00 -
C01 INFORMATION CENTER 000030 A00 -
D01 DEVELOPMENT CENTER - A00 -
D11 MANUFACTURING SYSTEMS 000060 D01 -
D21 ADMINISTRATION SYSTEMS 000070 D01 -
E01 SUPPORT SERVICES 000050 A00 -
E11 OPERATIONS 000090 E01 -
E21 SOFTWARE SUPPORT 000100 E01 -

この演習の残りの部分では、SAMPLE および COPYDB データベースの作成に使用したユーザー ID を使ってください。 データベースの作成者には、複製作業を実行する権限 (DBADM または SYSADM) があります。


このシナリオの計画

レポートを生成するアプリケーションで、SAMPLE データベースの DEPARTMENT 表にある情報が必要だとします。 そこで、ソース表のデータを直接は使用しないで、レポート生成アプリケーションによる読み取りだけが可能なターゲット表に変更をコピーすることにします。 管理を簡単にするため、ターゲット表をソース・サーバーと同じマシンに保管しておきます。

必要となるのは簡単なデータ分散構成であり、変更は 1 つの複製ソースから単一の読み取り専用コピーに複製されます。 ここでは、複製作業を実行する前に考慮する必要がある設計と計画に関する問題について扱います。

複製ソース

複製ソースは SAMPLE データベースの userID.DEPARTMENT 表にあります。 環境のセットアップに先立って、その表から何を複製したいかを決定しなければなりません。 そこで、すべての列を複製対象とすることにします。また、 何が変更されたかを確認できるように、各列の変更前イメージの値を保管することにします。
ヒント:複製ソースの定義では常に変更前イメージ値を含めるのがよいかもしれません。 そうすれば、後で随時更新構成を変更しても、複製ソースを再定義する必要がありません。

複製ターゲット

複製ターゲットには、この章で DB2 (Windows NT 版) を使ってすでに作成した COPYDB データベースを指定します。 現時点では、このデータベースにターゲット表がありません。コントロール・センターを使って実際の仕様に合ったターゲット表を作成することにします。

既存ターゲット表の使用: コントロール・センターを使用する場合、ターゲット表がまだ存在していないなら作成されます。 このようにすると、複製ソースへのマッピングが正確なものになることが保証されるため、 これはターゲット表の生成方法として望ましい方法です。 既存のターゲット表が DB2 製品で作成されたものであれば、その表を使用することもできます。

COPYDB のターゲット表に、以下のような情報の列を含めることにします。

DEPTNO
複製ソースの DEPTNO 列にある情報 (この列はターゲット表の基本キーとなる)

DEPTNAME
複製ソースの DEPTNAME 列にある情報

MGRNO
複製ソースの MGRNO 列にある情報

ADMRDEPT
複製ソースの ADMRDEPT 列にある情報

LOCATION
複製ソースの LOCATION 列にある情報

ターゲット表の列はソース表のデータを反映しているにすぎず、ソース表の各 1 レコードごとにターゲット表のレコードはただ 1 つなので、 ターゲット表のタイプとしてはユーザー・コピー を使用できます。

複製オプション

この演習では、ターゲット表と複製制御表をデフォルト表スペース USERSPACE1 に保管することにします。
論理サーバー 表スペース 内容
ソース・サーバー: SAMPLE USERSPACE1 複製制御表 (CD 表を含む)
制御サーバーとターゲット・サーバー: COPYDB USERSPACE1 複製制御表とターゲット表

一般に、UOW 表と CD 表 (および CCD 表を使用する場合は CCD 表) は専用の表スペースに入れ、表または表スペースをロックしておくとよいでしょう。 他の複製制御表は、行レベルのロックを使用して 1 つの表スペースにまとめることができます。

複製のスケジューリングとしては、DB2 複製を使ってソース表での変更を 1 分ごとに調べて、変更をターゲット表に複製することにします。 レポート生成アプリケーションではそのようなターンアラウンドが不要ですが、セットアップした複製環境をテストして、すべての機能が正確に作動しているか確かめることにします。

また、複製サイクルが終わるごとに、 1 週間 (7 日) 以上経過した変更適用監査記録表のレコードを削除することにします。 このような枝取り操作により、表の肥大化を防ぐことができます。

ターゲットが読み取り専用ターゲットなので、制約を設定する必要はありません。 制約は、アプリケーションがターゲット表を更新する場合にのみ必要です。 このシナリオでは、更新は複製ソースでコミットされ、システムごとに定義されている制約に適合するものでなければなりません。 ターゲットで同じ制約を再評価する必要はありません。


このシナリオの複製環境のセットアップ

複製モデルの計画を立てたなら、次は複製環境のセットアップです。

ステップ 1: 制御表をカスタマイズする

コントロール・センターは、ソース・サーバーとターゲット・サーバーに自動的に制御表を作成します。 デフォルトでは、デフォルト設定値 (ロッキング、表スペース) を使って制御表が作成されます。 この設定はテスト目的には適していますが、実動環境には適していません。 実動環境用の制御表をカスタマイズするには、 他の複製タスクを実行する に、 dpcntl.udb ファイルを編集および実行しなければなりません。

制御表をカスタマイズするには、次のようにします。

  1. DB2 ユニバーサル・データベースをインストールしたドライブの sqllib\samples\repl\ ディレクトリーに移ります。
  2. dpcntl.udb ファイルをオープンします。 実動環境であれば、このファイルを編集および実行し、 必要に応じて制御表をカスタマイズすることになります。 今は演習ですから、このファイルの編集はしないでください。
  3. dpcntl.udb ファイルをクローズします。

ステップ 2: 複製ソースを定義する

制御表をカスタマイズしたら、コントロール・センターに移って、DEPARTMENT 表を複製ソースとして定義します。

複製ソースを定義するには、次のようにします。

  1. オブジェクト・ツリーで、SAMPLE データベースの下の「表 (Tables)」フォルダーをクリックします。 SAMPLE 内に存在するすべての表が目次ペインに表示されます。
  2. DEPARTMENT 表を右クリックし、「複製ソースとして定義 (Define as Replication Source)」「カスタム (Custom)」を選択します。 カスタム複製では、データをソースに適用する前に、そのデータを操作することができます。 「複製ソースとして定義 (Define as Replication Source)」ウィンドウが表示されます。
  3. この演習では、デフォルト設定を使用するので、 「複製ソースとして定義 (Define as Replication Source)」ウィンドウには何も変更を加えないでください。 「OK」をクリックします。
  4. 「SQL の即時実行または保存 (Run Now or Save SQL)」ウィンドウが表示されます。 「SQL の即時実行または保存 (Run Now or Save SQL)」ウィンドウで、以下のステップを使用します。

    1. ここで SQL を実行することも、後で実行することもできます。 「OK」をクリックして、SQL をファイルに保管しておいて後で実行するというデフォルト設定を受け入れます。

      ヒント:大抵の場合、デフォルトで十分です。 SQL をファイルに保管しておけば、SQL を調べてどんな機能が実行されるかを理解し、必要な変更を加えて、ファイルを保管し、 期待どおりに動作することを確認してから、そのファイルを実行することができます。

    2. 「システム名 (System name)」ウィンドウがオープンします。 「OK」をクリックします。
    3. 「ファイル・ブラウザー (File browser)」ウィンドウを使用して、 SQL を保管するファイルを作成します。

      1. 「ドライブ (Drives)」フィールドで、 C: を選択します。
      2. 「ディレクトリー (Directories)」リストで、 scripts をダブルクリックして選択します。 (1 つ上位のディレクトリーに移動するには、 リストの最上部にある 2 個のドット (..) をダブルクリックします。)
      3. 「パス (Path)」フィールドで、 replsrc.sql と入力します。
      4. 「OK」をクリックします。

      ヒント:デフォルトでは、 SQL ファイルは sqllib ディレクトリーに保管されます。 独自の複製環境で作業する場合は、それらを他のすべての sqllib に保管するのではなく、 別個のディレクトリーに保管するほうがよいでしょう。

    4. 作成したファイルを表示します。 C:\scripts ディレクトリーに移り、エディターで replsrc.sql ファイルをオープンします。 この演習では、このファイルに変更を加えないでください。 ファイルをクローズします。

      ヒント:独自の複製環境をセットアップする場合、このファイルの編集は慎重にしてください。 CD 表が入れられる CD 表または表スペースの名前を変更する場合は、 CD 表の CREATE INDEX ステートメントを変更し、 ASN.IBMSNAP_REGISTER 行の CD 表のエントリーを更新する必要もあります。

  5. 複製ソースを定義するためのファイルを実行するには、次のようにします。

    1. 「複製ソース (Replication Sources)」フォルダーを右クリックし、「SQL ファイルの実行 (Run SQL files)」を選択します。
    2. 「ファイル・ブラウザー (File browser)」ウィンドウを使用して、 ステップ 4c で保管した SQL ファイルを選択します。

      1. 「ドライブ (Drives)」フィールドで、 C: を選択します。
      2. 「ディレクトリー (Directories)」リストで、 scripts をダブルクリックして選択します。
      3. 「ファイル (Files)」フィールドで、 replsrc.sql を選択します。
      4. 「OK」をクリックします。
  6. DEPARTMENT が複製ソースとして定義されていることを確かめるため、 「複製ソース (Replication Sources)」「最新表示 (Refresh)」を右クリックします。 コントロール・センターの目次ペインに表名 DEPARTMENT が表示されます。

これで、表 DEPARTMENT が複製ソースとして定義されました。 SQL ファイルを実行した時点で、コントロール・センターはこの複製ソースの変更データ (CD) 表を作成し、SAMPLE データベース用のデフォルト表スペース (USERSPACE1) の中に複製制御表を作成しました。

ステップ 3: サブスクリプション・セットとサブスクリプション・セット・メンバーを定義する

ソースを定義したら、サブスクリプション・セットを定義する必要があります。 サブスクリプション・セットは、複製ソース (このシナリオでは DEPARTMENT) とターゲット表 (このシナリオでは DEPTCOPY) の関係を定義します。 また、一部の複製パラメーターも定義します。

サブスクリプション・セットとサブスクリプション・セット・メンバーを定義するには、次のようにします。

  1. オブジェクト・ツリーで「複製ソース (Replication Sources)」オブジェクトを選択します。 次に、コントロール・センターの右ペインに表示される「DEPARTMENT」オブジェクトを右クリックし、 「サブスクリプションの定義 (Define subscription)」を選択します。 「複製サブスクリプションの定義 (Define replication subscription)」ウィンドウがオープンします。
  2. 次のようにして、ターゲット表とサブスクリプション・セットをセットアップします。

    1. 「サブスクリプション名 (Subscription name)」フィールドに DEPTSUB と入力して、定義するサブスクリプション・セットの名前を指定します。
    2. 「ターゲット・サーバー (Target server)」フィールドで COPYDB を選択して、ターゲット表が属するデータベースを指定します。
    3. 「変更適用修飾子 (Apply qualifier)」フィールドに DEPTQUAL と入力します。 このストリングは、このサブスクリプション・セットを実行する変更適用プログラムのインスタンスごとに固有の定義を識別します。

      ヒント:変更適用修飾子では大文字小文字が区別されます。 変更適用修飾子を小文字で指定する場合は、入力時に変更適用修飾子を区切る必要があります (たとえば "deptqual")。 単に deptqual と入力すると、コントロール・センターはその値をデフォルト設定で大文字に変換してしまいます。

    4. 「表の作成 (Create table)」チェック・ボックスを選択して、ターゲット表を作成することを指定します。
    5. 「変更 (Change)」をクリックします。 「変更 (Change)」ウィンドウがオープンします。

      1. userid.DEPARTMENTuserid.DEPTCOPY と上書きして、 デフォルトのターゲット表を変更します。
      2. 「OK」をクリックして、 「複製サブスクリプションの定義 (Define replication subscription)」ウィンドウに戻ります。
    6. 「拡張機能 (Advanced)」をクリックします。 「拡張サブスクリプション定義 (Advanced Subscription Definition)」ノートブックがオープンします。 以下のステップを実行します。

      1. ここではユーザー・コピー・ターゲット表を作成するので、 「ターゲット・タイプ (Target Type)」ページはデフォルトのままにします。
      2. 「ターゲット列 (Target Columns)」ページでは、 DEPTNO の横の「基本キー (Primary key)」チェック・ボックスを選択して、 DEPTNO をターゲット表の基本キーにします。

        ヒント:ウィンドウを拡張してすべての列を表示することもできます。 行によっては、名前が文字 X で始まっている場合もあります (たとえば XDEPTNO)。 そのような行では、要求された変更前イメージ値が保管されます。

      3. 「行 (Rows)」ページで、 WHERE 文節として下記のとおりに入力し、複製する行の基準を指定します。

        DEPTNO >='A00'
        
      4. 「OK」をクリックすると、 設定値が保管されて「複製サブスクリプションの定義 (Define replication subscription)」ウィンドウに戻ります。
  3. 次のようにして、サブスクリプション・セットの実行時に処理される SQL ステートメントを定義します。

    1. 「SQL」をクリックして「SQL」ウィンドウをオープンします。
    2. 「追加 (Add)」をクリックして、 「SQL の追加 (Add SQL)」ウィンドウをオープンします。
    3. 「SQL ステートメントまたは Call プロシージャー (SQL statement or Call procedure)」フィールドで、 以下の処理ステートメントを入力して、1 週間 (7 日) 以上経過した変更適用監査記録表のレコードを削除することを指定します。

      DELETE FROM ASN.IBMSNAP_APPLYTRAIL WHERE LASTRUN
      < (CURRENT TIMESTAMP - 7 DAYS)
      
    4. 「SQLSTATE」フィールドに値 02000 を入力し、「追加 (Add)」をクリックして、 "検出されなかった行" が受け入れ可能な SQL 状態であることを指定します。 この値は、「SQLSTATE 許容値 (Acceptable SQLSTATE values)」リスト・ボックスに追加されます。

      ヒント:このサブスクリプションで無視したい SQL 状態を 10 個まで定義することができます。

    5. 「サブスクリプション・セット処理前のターゲット・サーバーで (At the target server before subscription is processed)」ラジオ・ボタンを選択し、 サブスクリプション・セットが処理される前に SQL を実行するよう指定します。 この場合、SQL はターゲット・サーバーで実行する必要があります。 制御サーバーとターゲット・サーバーは併置されており、適用追跡表は制御サーバーにあるからです。
    6. 「OK」をクリックします。 SQL ステートメントは「SQL」ウィンドウのリスト・ボックスに追加され、「追加 SQL (Add SQL)」ウィンドウはクローズします。
    7. 「SQL」ウィンドウで「OK」をクリックし、 「複製サブスクリプションの定義 (Define replication subscription)」ウィンドウに戻ります。
  4. 「タイミング (Timing)」をクリックし、 「サブスクリプション・タイミング (Subscription Timing)」ノートブックの「ソースからターゲット (Source to Target)」ページを使って、 サブスクリプション・セットを複製するタイミングと頻度を指定します。

    1. 「開始日付 (Start date)」「開始時刻 (Start time)」「時刻ベース (Time-based)」、 および「相対タイミングの使用 (Using relative timing)」のデフォルト値を保管します。
    2. 次のようにして、サブスクリプション・セットを 1 分間隔で実行することを指定します。

      1. 「分 (Minutes)」フィールドのスピン・ボタンを使って、1 分の間隔を選択します (またはフィールドに 1 と入力します)。
      2. 「時間 (Hours)」フィールドのスピン・ボタンを使って、デフォルト値を 0 に変更します (またはフィールドに 0 と入力します)。
    3. 「データ・ブロック (Data Blocking)」タブをクリックし、 スピン・ボタンを使って 1 を選択し、変更適用プログラムがコミット済みデータをコピーする分の値とします。

      ヒント:データ・ブロック用に設定する値は、変更適用プログラムを実行するワークステーションにどれだけの空きスペースがあるかによって異なります。 一般には、5〜20 の数値を使用します。 手堅い運用をしたい場合は、1 分を使用します。

    4. 「OK」をクリックすると、 これらの値が保管されて、 「サブスクリプション・タイミング (Subscription Timing)」ノートブックがクローズし、 「複製サブスクリプションの定義 (Define replication subscription)」ウィンドウに戻ります。
  5. サブスクリプション・セットを実行依頼します。

    1. 「複製サブスクリプションの定義 (Define replication subscription)」ウィンドウで「OK」をクリックします。 「SQL の即時実行または保存 (Run Now or Save SQL)」ウィンドウが表示されます。
    2. COPYDB を選択して、サブスクリプション・セット制御情報が入れられるデータベースである制御サーバーを指定します。 このサーバーは、サブスクリプション制御情報を保管するためのデータベースです。
    3. 「SQL の即時実行または保存 (Run Now or Save SQL)」ウィンドウで「OK」をクリックして、 デフォルト・オプション (SQL ファイルを保管して、後で実行する) を受け入れます。
    4. 「システム名 (System name)」ウィンドウがオープンします。 「OK」をクリックします。
    5. 「ファイル・ブラウザー (File browser)」ウィンドウを使用して、 SQL を保管するファイルを作成します。

      1. 「ドライブ (Drives)」フィールドで、 C: を選択します。
      2. 「ディレクトリー (Directories)」リストで、 scripts をダブルクリックして選択します。
      3. 「パス (Path)」フィールドで、 replsub.sql と入力します。
      4. 「OK」をクリックします。 「ファイル・ブラウザー (File browser)」ウィンドウがクローズします。
  6. サブスクリプション・セットを定義するためのファイルを実行するには、次のようにします。

    1. SAMPLE データベースの下の「複製サブスクリプション (Replication Subscriptions)」オブジェクトを右クリックし、 「SQL ファイルの実行 (Run SQL files)」を選択します。
    2. ステップ 5e で名前を指定した SQL ファイル replsub.sql を指定し、 「OK」をクリックします。
  7. SAMPLE データベースの下の「複製サブスクリプション (Replication Subscriptions)」オブジェクトを右クリックし、 「最新表示 (Refresh)」を選択します。 コントロール・センターの目次ペインに DEPTSUB サブスクリプション・セットがオブジェクトとして表示されます。

ステップ 4: ソース・データベースを構成する

ヒント:ソース・サーバーが別のマシンにある場合は、ネットワーク経由でソース・サーバーにログオンする必要があります。 ソース・サーバーには、DBADM または SYSADM 権限のあるユーザー ID を使用します。 ただし、この演習用のソース・サーバーはローカル・マシンにあるので、再びログオンする必要はありません。

収集プログラムを構成するには、次のようにします。

  1. 「SAMPLE」データベース・オブジェクトを右クリックし、「構成 (Configure)」を選択します。 「データベースの構成 (Configure Database)」ノートブックがオープンします。
  2. 「ログ (Logs)」ページを表示し、 リストから「ロールフォワード回復用ログ・ファイルの保存および収集 (またはその一方) (Retain log files for roll-forward recovery and/or Capture)」パラメーターを選択します。 「値 (Value)」ボックスで「収集 (CAPTURE)」ラジオ・ボタンを選択します。 ログを保存しておけば、収集プログラムがログ・エントリーを読む前に DB2 がそのエントリーを上書きすることはありません。
  3. 「OK」をクリックして値を保存します。
  4. 「SAMPLE」データベース・オブジェクトを右クリックし、「切断 (Disconnect)」を選択します。
  5. 「SAMPLE」データベース・オブジェクトを右クリックし、 「バックアップ (Backup)」「データベース (Database)」を選択します。 この時点で、ウィンドウの指示に従って、 デフォルト・オプションを使用してシステム上のディレクトリーにバックアップします。

    ヒント:データベースをアクセス可能にするには、バックアップ・アクションを実行しなければなりません。 ロールフォワード回復用のログ・ファイルを保存することを指定した時点で、データベースはバックアップ保留モードになっています。

ステップ 5: 収集および変更適用プログラムをバインドする

ヒント:この演習では、収集および変更適用プログラム・パッケージを手動で作成してバインドします。 しかし、DB2 DataPropagator (サポートされるすべての UNIX、Windows、OS/2 オペレーティング・システム) では、パッケージが自動的に作成してバインドされます。

収集プログラムを手動でバインドするには、次のようにします。

  1. 「スタート」「プログラム」「DB2 (Windows NT 版)(DB2 for Windows NT)」「コマンド・ウィンドウ (Command Window)」を選択します。
  2. 次のように入力して、ソース・サーバーに接続します。
    DB2 CONNECT TO SAMPLE 
    
  3. sqllib\bnd ディレクトリーに移動します。 すべてのバインド・ファイルはこのディレクトリーにあります。
  4. 次のコマンドを入力することによって、収集プログラム・パッケージを作成してソース・サーバー・データベースにバインドします。

    DB2 BIND @CAPTURE.LST ISOLATION UR BLOCKING ALL
    

    capture.lst ファイルには、作成されたパッケージのリストが入っています。

    以下のステップを続けて実行します。

変更適用プログラムを手動でバインドするには、次のようにします。

  1. 下記の 2 つのコマンドを両方とも入力することによって、変更適用プログラム・パッケージを作成してソース・サーバーにバインドします。

    DB2 BIND @APPLYUR.LST ISOLATION UR BLOCKING ALL 
    

    DB2 BIND @APPLYCS.LST ISOLATION CS BLOCKING ALL
    

    applyur.lst および applycs.lst ファイルには、作成されたパッケージのリストが入っています。

  2. 次のように入力して、ターゲット・サーバーに接続します。

    DB2 CONNECT TO COPYDB 
    
  3. 下記の 2 つのコマンドを両方とも入力することによって、変更適用プログラム・パッケージを作成してターゲット・サーバー・データベースにバインドします。

    DB2 BIND @APPLYUR.LST ISOLATION UR BLOCKING ALL 
    

    DB2 BIND @APPLYCS.LST ISOLATION CS BLOCKING ALL
    

    applyur.lst および applycs.lst ファイルには、作成されたパッケージのリストが入っています。

ステップ 6: パスワード・ファイルを作成する

ソース・サーバーでエンド・ユーザー認証がなされるようにするには、AUTH=SERVER 方式を指定してパスワード・ファイルを作成しなければなりません。 変更適用プログラムはこのファイルをソース・サーバーへの接続時に使用します。 変更適用プログラムを実行するユーザー ID がパスワード・ファイルを読むことができるようにしておいてください。

パスワード・ファイルを作成するには、次のようにします。

  1. C:\scripts ディレクトリーに移ります。
  2. 新しいファイルのファイル編集セッションをオープンします。
  3. 空のファイルに次のようなレコードを入力します。

    SERVER=SAMPLE USER=userid  PWD=password 
    SERVER=COPYDB USER=userid  PWD=password 
    
    ここで、

    server
    サブスクリプション・セット表に示されているのとまったく同じソース、ターゲット、または制御サーバーの名前。 (この例では、SAMPLE および COPYDB。)

    userid
    特定のサーバーを管理するために使用する予定のユーザー ID。 Windows NT および UNIX オペレーティング・システムの場合、この値は大文字小文字を区別します。

    password
    そのユーザー ID のパスワード。 Windows NT および UNIX オペレーティング・システムの場合、この値は大文字小文字を区別します。

    パスワード・ファイルの形式: このファイルにはブランク行やコメント行を入れないでください。 サーバー名、ユーザー ID、およびパスワード情報だけを追加します。 この情報により、それぞれのサーバーごとに異なるパスワードまたは同じパスワードを使用できるようになります。

  4. ファイルを deptqual.pwd という名前で保管して、クローズします。

    パスワード・ファイルの命名規則:

    パスワード・ファイル名は applyqual.pwd です。applyqual は大文字小文字を区別する文字列で、 サブスクリプション・セット表の変更適用修飾子 (APPLY_QUAL) の値と大文字小文字の別も含めて必ず 一致する必要があります。 DB2 Datapropagator バージョン 5 でのファイル命名規則 (ApplyqualInstance_nameControl_server.pwd) もサポートされています。 この規則には、大文字小文字を区別する変更適用修飾子、 変更適用プログラムの実行に使用するインスタンス名 (デフォルト名は大文字で DB2)、 および大文字による制御サーバー名 (たとえば COPYDB) が含まれます。

認証および機密保護については、IBM DB2 管理の手引き を参照してください。

ステップ 7: シナリオ・データを複製する

複製ソースとサブスクリプション・セットの定義が終わったら、収集および変更適用プログラムを開始してコピー要求を実行依頼できます。

収集プログラムを開始するには、次のようにします。

  1. Windows NT のコマンド・プロンプトで、 C:\scripts ディレクトリーに移ります。
  2. 以下のコマンドを入力し、コールド・スタート・オプションを指定して、自動枝取りオプションは指定しないで収集プログラムを開始します。
    ASNCCP SAMPLE COLD NOPRUNE
    

    ヒント:通常、コールド・スタート・オプションは指定しません。 コールド・スタートにするかウォーム・スタートにするかは、収集プログラムが判断します。 この演習では、収集プログラムがコールド・スタートを実行するように指定し、CD 表および UOW 表のレコードをクリーンアップします。

収集プログラムは実行を開始しますが、新しいコマンド・プロンプトは表示されません。 このアクションにより、*.ccp ファイルが作成されます。 収集プログラムは初期設定されますが、変更適用プログラムを開始してその初期全最新表示コピーを完了するまで、定義済み複製ソースの変更の収集は開始されません。

変更適用プログラムを開始するには、次のようにします。

  1. 別の Windows NT コマンド・プロンプト・ウィンドウで、 ターゲット・サーバーの C:\scripts ディレクトリー (パスワード・ファイルを保管したディレクトリー) に移ります。

    ヒント:変更適用プログラムは、 パスワード・ファイルを保管したのと同じディレクトリーから開始する必要があります。 変更適用プログラムを別のディレクトリーで開始しようとすると、エラー・メッセージが表示されます。

  2. 次のコマンドを入力して変更適用プログラムを開始します。
    ASNAPPLY DEPTQUAL COPYDB
    

    ヒント:変更適用修飾子 DEPTQUAL には大文字小文字の区別があります。 この演習では、大文字で入力する必要があります。
    ヒント:ASNLOAD プログラムを呼び出すために、 LOADX 呼び出しパラメーターを使用することができます。 上記のコマンド・ステートメントで、 データベース名 (COPYDB) の後ろに LOADX パラメーターを入力してください。 デフォルトの ASNLOAD プログラムは、エクスポート (EXPORT) ユーティリティーを使ってソース表からデータをエクスポートし、 ロード (LOAD) ユーティリティーを使ってターゲット表を完全に最新表示します。 IBM またはベンダーのユーティリティーを呼び出すように ASNLOAD を修正することもできます。

変更適用プログラムは実行を開始しますが、新しいコマンド・プロンプトは表示されません。 COPYDB の適用追跡表 (ASN.IBMSNAP_APPLYTRAIL) を調べることによって状況情報を知ることができます。

1 回の複製サイクル後に DEPTCOPY ターゲット表を表示させると、表 2 に示すデータと一致する結果が表示されるはずです。

表 2. DEPTCOPY 表
DEPTNO DEPTNAME MGRNO ADMRDEPT LOCATION
A00 SPIFFY COMPUTER SERVICE 000010 A00 -
B01 PLANNING 000020 A00 -
C01 INFORMATION CENTER 000030 A00 -
D01 DEVELOPMENT CENTER - A00 -
D11 MANUFACTURING SYSTEMS 000060 D01 -
D21 ADMINISTRATION SYSTEMS 000070 D01 -
E01 SUPPORT SERVICES 000050 A00 -
E11 OPERATIONS 000090 E01 -
E21 SOFTWARE SUPPORT 000100 E01 -


複製環境における操作

複製環境の起動後、複製ソースに加えられた変更がターゲット表に複製されます。 制御表の肥大化を防ぐには、制御表を定期的に枝取りする必要があります。 収集および変更適用プログラムは連続して実行できますが、停止したいと思うこともあります (たとえば、制御表が入った表スペースを使用するユーティリティーを実行する場合)。

ステップ 1: ソース表を更新する

Spiffy Computer Service で新しい 2 つの部門が発足したとします。 1 つは技術執筆部 (technical writing department)、もう 1 つは広報部 (public relations) です。

ソース表を次のように更新します。

  1. 「スタート」「プログラム」「DB2 (Windows NT 版)(DB2 for Windows NT)」「コマンド・ウィンドウ (Command Window)」を選択します。
  2. 次のように入力して、ソース・サーバーに接続します。
    DB2 CONNECT TO SAMPLE
    
  3. 次の 2 つのコマンドを両方とも入力して、2 つの行 (各部門ごとに 1 行) を追加します。
    DB2 INSERT INTO DEPARTMENT VALUES ('F01','TECHNICAL WRITING','000110','F01',NULL)
    DB2 INSERT INTO DEPARTMENT VALUES ('G01','PUBLIC RELATIONS','000120','G01',NULL)
    
  4. 次のように入力して、ターゲット・サーバーに接続します。
    DB2 CONNECT TO COPYDB
    
  5. 次のコマンドを入力することによって、ターゲット・データベースに新しい行が複製されていることを確認します。
    DB2 SELECT * FROM DEPTCOPY
    

    ヒント:複製プロセスはすぐに実行されるわけではありません。 表の検査のために約 5 分待つ必要があります。

表 3 に複製結果を示します。2 つの新しい行が表に追加されています。


表 3. 変更複製後の DEPTCOPY 表
DEPTNO DEPTNAME MGRNO ADMRDEPT LOCATION
F01 TECHNICAL WRITING 000110 F01 -
G01 PUBLIC RELATIONS 000120 G01 -
A00 SPIFFY COMPUTER SERVICE 000010 A00 -
B01 PLANNING 000020 A00 -
C01 INFORMATION CENTER 000030 A00 -
D01 DEVELOPMENT CENTER - A00 -
D11 MANUFACTURING SYSTEMS 000060 D01 -
D21 ADMINISTRATION SYSTEMS 000070 D01 -
E01 SUPPORT SERVICES 000050 A00 -
E11 OPERATIONS 000090 E01 -
E21 SOFTWARE SUPPORT 000100 E01 -

ステップ 2: 制御表の枝取り

以下のステップでは、収集プログラムが実行されていることを前提としています。 収集プログラムが実行されていない場合、prune コマンドは実行されません。

ヒント:Windows NT では、 収集プログラム (ASNCCP) が実行されているかどうかを判別するために、 タスク マネージャを使用できます。

枝取りの対象があることを確認するため、次のようにします。

  1. DB2 コマンド・ウィンドウをオープンします。 この演習の残りのステップでは、このウィンドウを使用します。
  2. 次のように入力して、ソース・サーバーに接続します。
    DB2 CONNECT TO SAMPLE
    
  3. 次のコマンドを入力して、作業単位表に行が入っているかどうかを調べます。
    DB2 SELECT COUNT(*) FROM ASN.IBMSNAP_UOW
    

    作業単位表には、以前の複製で作成された 2 つの行があるはずです。

枝取りコマンドを実行するには、次のようにします。

  1. 次のように枝取りコマンドを入力し、ソース・サーバーの名前を含めます。
    ASNCMD SAMPLE PRUNE
    

    ヒント:通常、枝取りはオフピーク時に実行します。

  2. 次のコマンドを入力して、枝取りコマンドが実行されたことと、 作業単位表が空であることを確認します。
    DB2 SELECT COUNT(*) FROM ASN.IBMSNAP_UOW
    

    表には行が入っていないはずです。

ステップ 3: 収集および変更適用プログラムを停止する

複製環境の保守における 1 つの重要な部分は、定期的なデータベース保守です。 そのような保守のために、収集および変更適用プログラムを停止しなければならない場合があります。 たとえば、収集および変更適用プログラムで使用される表スペースを直接使用するユーティリティーを実行するには、まずそれらのプログラムを停止しなければなりません。

前のステップでオープンした DB2 コマンド・ウィンドウから、以下のステップを実行します。

収集プログラムを停止するには、次のようにします。

ASNCMD SAMPLE STOP というコマンドを入力します。

変更適用プログラムを停止するには、次のようにします。

ASNASTOP DEPTQUAL というコマンドを入力します (DEPTQUAL は、 大文字小文字の区別がある変更適用修飾子)。

収集および変更適用プログラムが停止したなら、データベースに対して DB2 ユーティリティーを実行することができます。 (ユーティリティーの実行はこの演習の対象外です。)


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]