ALTER REPLICATIONを使用して、マスターおよびサブスクライバのデータ・ストアのレプリケーション・スキームを変更することができます。また、マスター・データ・ストアに対する変更は、そのサブスクライバに対しても行う必要があります。
注意: | アクセス制御を有効にしてTimesTenをインストールした場合、ALTER REPLICATION文を使用するには、データ・ストアに対するDDL権限が必要です。詳細は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』のアクセス制御に関する説明を参照してください。 |
ALTER REPLICATIONを使用してDATASTORE要素を指定するレプリケーション・スキームを変更する場合は、次のことに注意してください。
ほとんどのALTER REPLICATION処理は、レプリケーション・エージェントが停止している場合(ttAdmin -repStop
)にのみサポートされます。ただし、レプリケーション・エージェントの実行中にデータ・ストアをレプリケーション・スキームに動的に追加することは可能です(「サブスクライバ・データ・ストアの作成および追加」を参照)。
レプリケーション・エージェントを停止する必要があるALTER REPLICATION処理の手順は、次のとおりです。
-repStop
を使用して、マスターおよびサブスクライバのデータ・ストアのレプリケーション・エージェントを停止します。レプリケーション・エージェントの停止中、マスター・データ・ストアへの変更はログに格納されます。-repStart
を使用して、マスターおよびサブスクライバのデータ・ストアのレプリケーション・エージェントを再起動します。マスター・データ・ストアのログに格納されている変更がサブスクライバ・データ・ストアに送信されます。この項の内容は次のとおりです。
既存のレプリケーション・スキームに表または順序を追加するには、次の2つの方法があります。
この例では、例3.24で定義したレプリケーション・スキーム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";
順序my.seq
および表my.tab1
をmy.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文を使用します。
code class="cCode">my.cg1キャッシュ・グループをmy.rep1
レプリケーション・スキームのds1
DATASTORE要素に追加します。
ALTER REPLICATION my.rep1
ALTER ELEMENT ds1 DATASTORE
INCLUDE CACHE GROUP my.cg1;
ADD ELEMENT句を指定してALTER REPLICATION文を使用すると、既存のレプリケーション・スキームにDATASTORE要素を追加できます。INCLUDEまたはEXCLUDE句を使用しない場合、一時表を除くすべての表、マテリアライズド・ビューまたは非マテリアライズド・ビューがデータ・ストアに含まれます。「DATASTORE要素追加時の表、順序またはキャッシュ・グループの挿入」および「DATASTORE要素追加時の表、順序またはキャッシュ・グループの除外」を参照してください。
既存のレプリケーション・スキームにDATASTORE要素を追加します。
ALTER REPLICATION my.rep1
ADD ELEMENT ds1 DATASTORE
MASTER rep2
SUBSCRIBER rep1, rep3;
既存のレプリケーション・スキームにデータ・ストアを追加する場合、レプリケーションを特定の表、順序およびキャッシュ・グループに制限できます。ADD ELEMENT句と、INCLUDE TABLE句、INCLUDE SEQUENCE句またはINCLUDE CACHE GROUP句を指定してALTER REPLICATION文を使用します。同じALTER REPLICATION文のオブジェクト・タイプ(表、順序およびキャッシュ・グループ)ごとに1つのINCLUDE句を使用できます。
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要素を追加する場合、表、順序またはキャッシュ・グループを除外できます。ADD ELEMENT句と、EXCLUDE TABLE句、EXCLUDE SEQUENCE句またはEXCLUDE CACHE GROUP句を指定してALTER REPLICATION文を使用します。同じALTER REPLICATION文のオブジェクト・タイプ(表、順序およびキャッシュ・グループ)ごとに1つのEXCLUDE句を使用できます。
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要素が複数存在する場合は、それを削除する前に各要素からその表または順序を除外する必要があります。
my.tab1
レプリケーション・スキームのds1
DATASTORE要素から表my.tab1
を除外します。その後、その表を削除します。
ALTER REPLICATION my.rep1
ALTER ELEMENT ds1 DATASTORE
EXCLUDE TABLE my.tab1;
DROP TABLE my.tab1;
TABLEまたはSEQUENCEレベルでレプリケーション・スキームに含まれている表を削除するには、次のタスクを実行します。
レプリケーション・スキームrepl.r1
からSEQUENCE要素elem_seq
を削除します。その後、順序repl.seq
を削除します。
ALTER REPLICATION repl.r1
DROP ELEMENT elem_seq;
DROP SEQUENCE repl.seq;
レプリケーション・エージェントの実行中は、新しいサブスクライバ・データ・ストアを追加できます。データ・ストアをレプリケーション・スキームに追加するには、次のタスクを実行します。
ALTER REPLICATION ...
ALTER ELEMENT ...
ADD SUBSCRIBER ...
-duplicate
コマンドを実行し、新しく作成したサブスクライバにマスター・データ・ストアの内容をコピーします。-setMasterRepStart
オプションを使用すると、複製処理後にマスターに対して行われた更新もサブスクライバにコピーできます。-repStart
)。 この例では、repl.r1
レプリケーション・スキームを変更して、追加のサブスクライバ(backup3
)をwestleads
表に追加します(前述の手順2)。
ALTER REPLICATION repl.r1
ALTER ELEMENT elem_westleads
ADD SUBSCRIBER backup3 ON "backupserver";
サブスクライバ・データ・ストアを削除する前に、レプリケーション・エージェントを停止します。
この例では、repl.r1
レプリケーション・スキーム変更して、westleads
表のbackup3
サブスクライバを削除します。
ALTER REPLICATION repl.r1
ALTER ELEMENT elem_westleads
DROP SUBSCRIBER backup3 ON "backupserver";
TABLEまたはSEQUENCE要素名を変更する前に、レプリケーション・エージェントを停止します。
westleads
表の要素名をelem_westleads
からnewelname
に変更します。
ALTER REPLICATION repl.r1
ALTER ELEMENT Eelem_westleads
SET NAME newelname;
注意: | SET NAME句を使用して、DATASTORE要素の名前を変更することはできません。 |
マスター・データ・ストアを交換する前に、レプリケーション・エージェントを停止します。
この例では、現在はマスターとしてwestds
が設定されているすべての要素に新しいマスターnewwestds
を設定します。
ALTER REPLICATION repl.r1
ALTER ELEMENT * IN westds
SET MASTER newwestds;
この例では、例8.2に示されているスキームのCHECK CONFLICTS句で設定した競合検出を、elem_accounts_1
表に対して無効にします。
ALTER REPLICATION repl.r1
ALTER ELEMENT elem_accounts_1
SET NO CHECK;
競合検出の詳細は、「レプリケーション競合の検出および解消」を参照してください。
この例では、例3.24に示されているスキームの最初のサブスクライバに対してRETURN RECEIPTサービスを無効にします。
ALTER REPLICATION repl.r1
ALTER ELEMENT elem_waccounts
ALTER SUBSCRIBER eastds ON "eastcoast"
SET NO RETURN;
ポート番号とは、サブスクライバ・データ・ストアのレプリケーション・エージェントがマスター・レプリケーション・エージェントからの接続リクエストを受け入れるTCP/IPポート番号のことです。レプリケーション・エージェントへのポートの割当て方法の詳細は、「動的ポート割当ておよび静的ポート割当て」を参照してください。
この例では、repl.r1
レプリケーション・スキームを変更して、eastds
データ・ストアのポート番号を22251に変更します。
ALTER REPLICATION repl.r1
ALTER STORE eastds ON "eastcoast"
SET PORT 22251;