ヘッダーをスキップ
Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド
リリース7.0
E05169-03
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

レプリケーション・スキームの変更

ALTER REPLICATIONを使用して、マスターおよびサブスクライバのデータ・ストアのレプリケーション・スキームを変更することができます。また、マスター・データ・ストアに対する変更は、そのサブスクライバに対しても行う必要があります。


注意: アクセス制御を有効にしてTimesTenをインストールした場合、ALTER REPLICATION文を使用するには、データ・ストアに対するDDL権限が必要です。詳細は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』のアクセス制御に関する説明を参照してください。

ALTER REPLICATIONを使用してDATASTORE要素を指定するレプリケーション・スキームを変更する場合は、次のことに注意してください。

ほとんどのALTER REPLICATION処理は、レプリケーション・エージェントが停止している場合(ttAdmin -repStop)にのみサポートされます。ただし、レプリケーション・エージェントの実行中にデータ・ストアをレプリケーション・スキームに動的に追加することは可能です(「サブスクライバ・データ・ストアの作成および追加」を参照)。

レプリケーション・エージェントを停止する必要があるALTER REPLICATION処理の手順は、次のとおりです。

  1. ttRepStopプロシージャまたはttAdmin -repStopを使用して、マスターおよびサブスクライバのデータ・ストアのレプリケーション・エージェントを停止します。レプリケーション・エージェントの停止中、マスター・データ・ストアへの変更はログに格納されます。
  2. マスターとサブスクライバの両方のデータ・ストアで、同じALTER REPLICATION文を発行します。
  3. ttRepStartプロシージャまたはttAdmin -repStartを使用して、マスターおよびサブスクライバのデータ・ストアのレプリケーション・エージェントを再起動します。マスター・データ・ストアのログに格納されている変更がサブスクライバ・データ・ストアに送信されます。

この項の内容は次のとおりです。

既存のレプリケーション・スキームへの表または順序の追加

既存のレプリケーション・スキームに表または順序を追加するには、次の2つの方法があります。

例6.1

この例では、例3.29で定義したレプリケーション・スキームrepl.r1を使用します。レプリケーション・スキームrepl.r1を変更して、順序seqおよび表westleadsを追加します。この表は、データ・ストアwestdsで更新され、データ・ストアeastdsにレプリケートされます。

ALTER REPLICATION repl.r1

    ADD ELEMENT elem_seq SEQUENCE repl.seq

      MASTER westds ON "westcoast"

      SUBSCRIBER eastds ON "eastcoast"

    ADD ELEMENT elem_westleads TABLE repl.westleads

      MASTER westds ON "westcoast"

      SUBSCRIBER eastds ON "eastcoast";

例6.2

順序my.seqおよび表my.tab1my.rep1レプリケーション・スキームのds1 DATASTORE要素に追加します。

ALTER REPLICATION my.rep1

  ALTER ELEMENT ds1 DATASTORE

     INCLUDE SEQUENCE my.seq

  ALTER ELEMENT ds1 DATASTORE

     INCLUDE TABLE my.tab1;

既存のレプリケーション・スキームへのキャッシュ・グループの追加

既存のレプリケーション・スキームのDATASTORE要素に、キャッシュ・グループを追加できます。ALTER ELEMENT句およびINCLUDE CACHE GROUP句を指定してALTER REPLICATION文を使用します。

例6.3

code class="cCode">my.cg1キャッシュ・グループをmy.rep1レプリケーション・スキームのds1 DATASTORE要素に追加します。

ALTER REPLICATION my.rep1

  ALTER ELEMENT ds1 DATASTORE

     INCLUDE CACHE GROUP my.cg1;

既存のレプリケーション・スキームへのDATASTORE要素の追加

ADD ELEMENT句を指定してALTER REPLICATION文を使用すると、既存のレプリケーション・スキームにDATASTORE要素を追加できます。INCLUDEまたはEXCLUDE句を使用しない場合、一時表を除くすべての表、マテリアライズド・ビューまたは非マテリアライズド・ビューがデータ・ストアに含まれます。「DATASTORE要素追加時の表、順序またはキャッシュ・グループの挿入」および「DATASTORE要素追加時の表、順序またはキャッシュ・グループの除外」を参照してください。

例6.4

既存のレプリケーション・スキームにDATASTORE要素を追加します。

ALTER REPLICATION my.rep1

  ADD ELEMENT ds1 DATASTORE

     MASTER rep2

     SUBSCRIBER rep1, rep3;

DATASTORE要素追加時の表、順序またはキャッシュ・グループの挿入

既存のレプリケーション・スキームにデータ・ストアを追加する場合、レプリケーションを特定の表、順序およびキャッシュ・グループに制限できます。ADD ELEMENT句と、INCLUDE TABLE句、INCLUDE SEQUENCE句またはINCLUDE CACHE GROUP句を指定してALTER REPLICATION文を使用します。同じALTER REPLICATION文のオブジェクト・タイプ(表、順序およびキャッシュ・グループ)ごとに1つのINCLUDE句を使用できます。

例6.5

ds1 DATASTORE要素をmy.rep1レプリケーション・スキームに追加します。表my.tab2、順序my.seq、キャッシュ・グループmy.cg2およびキャッシュ・グループmy.cg3をDATASTORE要素に含めます。

ALTER REPLICATION my.rep1

  ADD ELEMENT ds1 DATASTORE

     MASTER rep2

     SUBSCRIBER rep1, rep3

     INCLUDE TABLE my.tab2

     INCLUDE SEQUENCE my.seq

     INCLUDE CACHE GROUP my.cg2, my.cg3;

DATASTORE要素追加時の表、順序またはキャッシュ・グループの除外

既存のレプリケーション・スキームにDATASTORE要素を追加する場合、表、順序またはキャッシュ・グループを除外できます。ADD ELEMENT句と、EXCLUDE TABLE句、EXCLUDE SEQUENCE句またはEXCLUDE CACHE GROUP句を指定してALTER REPLICATION文を使用します。同じALTER REPLICATION文のオブジェクト・タイプ(表、順序およびキャッシュ・グループ)ごとに1つのEXCLUDE句を使用できます。

例6.6

ds2 DATASTORE要素をレプリケーション・スキームに追加しますが、表my.tab1、順序my.seq、キャッシュ・グループmy.cg0およびキャッシュ・グループmy.cg1は除外します。

ALTER REPLICATION my.rep1

  ADD ELEMENT ds2 DATASTORE

     MASTER rep2

     SUBSCRIBER rep1

     EXCLUDE TABLE my.tab1

     EXCLUDE SEQUENCE my.seq

     EXCLUDE CACHE GROUP my.cg0, my.cg1;

レプリケーション・スキームからの表または順序の削除

この項の内容は次のとおりです。

DATASTORE要素の一部としてレプリケートされる表または順序の削除

DATASTOREレベルでレプリケーション・スキームに含まれている表または順序を削除するには、次のタスクを実行します。

  1. レプリケーション・エージェントを停止します。
  2. レプリケーション・スキームのDATASTORE要素から表または順序を除外します。
  3. 表または順序を削除します。

その表または順序が含まれているDATASTORE要素が複数存在する場合は、それを削除する前に各要素からその表または順序を除外する必要があります。

例6.7

my.tab1レプリケーション・スキームのds1 DATASTORE要素から表my.tab1を除外します。その後、その表を削除します。

ALTER REPLICATION my.rep1

  ALTER ELEMENT ds1 DATASTORE

     EXCLUDE TABLE my.tab1;

DROP TABLE my.tab1;

TABLEまたはSEQUENCE要素としてレプリケートされる表または順序の削除

TABLEまたはSEQUENCEレベルでレプリケーション・スキームに含まれている表を削除するには、次のタスクを実行します。

  1. レプリケーション・エージェントを停止します。
  2. 要素をレプリケーション・スキームから削除します。
  3. 表または順序を削除します。
例6.8

レプリケーション・スキームrepl.r1からSEQUENCE要素elem_seqを削除します。その後、順序repl.seqを削除します。

ALTER REPLICATION repl.r1

  DROP ELEMENT elem_seq;

DROP SEQUENCE repl.seq;

サブスクライバ・データ・ストアの作成および追加

レプリケーション・エージェントの実行中は、新しいサブスクライバ・データ・ストアを追加できます。データ・ストアをレプリケーション・スキームに追加するには、次のタスクを実行します。

  1. 新しいデータ・ストアが存在しないことを確認します。
  2. 関連するすべてのデータ・ストアに適切な文を適用します。
  3.           ALTER REPLICATION ...

                  ALTER ELEMENT ...

                      ADD SUBSCRIBER ...

  4. ttRepAdmin -duplicateコマンドを実行し、新しく作成したサブスクライバにマスター・データ・ストアの内容をコピーします。-setMasterRepStartオプションを使用すると、複製処理後にマスターに対して行われた更新もサブスクライバにコピーできます。
  5. 新しく作成したデータ・ストアでレプリケーション・エージェントを起動します(ttAdmin -repStart)。
例6.9

この例では、repl.r1レプリケーション・スキームを変更して、追加のサブスクライバ(backup3)をwestleads表に追加します(前述の手順2)。

ALTER REPLICATION repl.r1

  ALTER ELEMENT elem_westleads

      ADD SUBSCRIBER backup3 ON "backupserver";

サブスクライバ・データ・ストアの削除

サブスクライバ・データ・ストアを削除する前に、レプリケーション・エージェントを停止します。

この例では、repl.r1レプリケーション・スキーム変更して、westleads表のbackup3サブスクライバを削除します。

例6.10

ALTER REPLICATION repl.r1

   ALTER ELEMENT elem_westleads

      DROP SUBSCRIBER backup3 ON "backupserver";

TABLEまたはSEQUENCE要素名の変更

TABLEまたはSEQUENCE要素名を変更する前に、レプリケーション・エージェントを停止します。

westleads表の要素名をelem_westleadsからnewelnameに変更します。

例6.11

ALTER REPLICATION repl.r1

    ALTER ELEMENT Eelem_westleads

      SET NAME newelname;


注意: SET NAME句を使用して、DATASTORE要素の名前を変更することはできません。

マスター・データ・ストアの交換

マスター・データ・ストアを交換する前に、レプリケーション・エージェントを停止します。

この例では、現在はマスターとしてwestdsが設定されているすべての要素に新しいマスターnewwestdsを設定します。

例6.12

ALTER REPLICATION repl.r1

    ALTER ELEMENT * IN westds

      SET MASTER newwestds;

競合検出の無効化

この例では、例8.2に示されているスキームのCHECK CONFLICTS句で設定した競合検出を、elem_accounts_1表に対して無効にします。

例6.13

ALTER REPLICATION repl.r1

    ALTER ELEMENT elem_accounts_1

      SET NO CHECK;

競合検出の詳細は、「レプリケーション競合の検出および解消」を参照してください。

RETURN RECEIPTサービスの無効化

この例では、例3.29に示されているスキームの最初のサブスクライバに対してRETURN RECEIPTサービスを無効にします。

例6.14

ALTER REPLICATION repl.r1

    ALTER ELEMENT elem_waccounts

      ALTER SUBSCRIBER eastds ON "eastcoast"

          SET NO RETURN;

ポート番号の変更

ポート番号とは、サブスクライバ・データ・ストアのレプリケーション・エージェントがマスター・レプリケーション・エージェントからの接続リクエストを受け入れるTCP/IPポート番号のことです。レプリケーション・エージェントへのポートの割当て方法の詳細は、「動的ポート割当ておよび静的ポート割当て」を参照してください。

この例では、repl.r1レプリケーション・スキームを変更して、eastdsデータ・ストアのポート番号を22251に変更します。

例6.15

ALTER REPLICATION repl.r1

    ALTER STORE eastds ON "eastcoast"

     SET PORT 22251;

レプリケーション・ルートの変更

レプリケーション・ホストにネットワーク・インタフェースが複数ある場合は、レプリケーション・トラフィックに使用するインタフェースをROUTE句で指定できます。レプリケーションで使用するインタフェースの変更が必要な場合は、ROUTE句のIPアドレスを削除または追加して変更できます。

例6.16

この例では、rep.r1レプリケーション・スキームを変更して、マスター・データ・ストアの優先順位2のIPアドレスを192.168.1.100から192.168.1.101に変更します。

ALTER REPLICATION repl.r1

   DROP ROUTE MASTER eastds ON "eastcoast"

               SUBSCRIBER westds ON "westcoast"

              MASTERIP "192.168.1.100"

   ADD ROUTE MASTER eastds ON "eastcoast"

              SUBSCRIBER westds ON "westcoast"

             MASTERIP "192.168.1.101" PRIORITY 2;