クラシック・レプリケーション・スキームの変更
レプリケーション・エージェントを停止せずに、次のタスクを実行できます。
-
ユーザーの作成、変更または削除。これらの文はレプリケートされます。
-
ユーザーに対する権限の付与または取消し。これらの文はレプリケートされます。
-
サブスクライバをレプリケーション・スキームに追加します。「サブスクライバ・データベースの作成とクラシック・レプリケーション・スキームへの追加」を参照してください。
-
マスター・データベースへのPL/SQLオブジェクトの追加およびサブスクライバでのレプリケーションの実行。「既存のクラシック・レプリケーション・スキームへのPL/SQLオブジェクトの追加」を参照してください。
ALTER REPLICATIONを使用すると、マスターおよびサブスクライバのデータベースのクラシック・レプリケーション・スキームを変更できます。また、マスター・データベースに対する変更は、そのサブスクライバに対しても行う必要があります。
ノート:
ALTER REPLICATION文を使用するには、ADMIN権限が必要です。
ほとんどのALTER REPLICATION処理は、レプリケーション・エージェントが停止している場合(ttAdmin -repStop)にのみサポートされます。レプリケーション・エージェントを停止する必要があるALTER REPLICATION処理の手順は、次のとおりです。
-
組込みの
ttRepStopプロシージャまたはttAdmin-repStopを使用して、マスターおよびサブスクライバのデータベースのレプリケーション・エージェントを停止します。レプリケーション・エージェントの停止中、マスター・データベースへの変更はログに格納されます。 -
マスターとサブスクライバの両方のデータベースで、同じ
ALTER REPLICATION文を発行します。 -
ttRepStart組込みプロシージャまたはttAdmin-repStartを使用して、マスター・データベースおよびサブスクライバ・データベースのレプリケーション・エージェントを再起動します。マスター・データベースのログに格納されている変更がサブスクライバ・データベースに送信されます。詳細は、「レプリケーション・エージェントの起動および停止」を参照してください。
ALTER REPLICATIONを使用してDATASTORE要素を指定するクラシック・レプリケーション・スキームを変更する場合は、次のことに注意してください。
-
SET NAMEを使用して、DATASTORE要素の名前を変更することはできません。 -
SET CHECK CONFLICTSを使用して、競合解消を有効にすることはできません。
この項の内容は次のとおりです。
既存のクラシック・レプリケーション・スキームへの表または順序の追加
既存のクラシック・レプリケーション・スキームに表または順序を追加するための2つの方法を説明します。
-
クラシック・レプリケーション・スキームの要素レベルが
TABLEまたはSEQUENCEの場合は、ADD ELEMENT句を指定してALTER REPLICATION文を使用し、表または順序を追加します。 -
クラシック・レプリケーション・スキームの要素レベルが
DATASTOREの場合は、ALTER ELEMENT句を指定してALTER REPLICATION文を使用し、表または順序を含めます。
レプリケーション・スキームr1を変更して、順序seqおよび表westleadsを追加すると、それらはデータベースwestdsで更新され、データベースeastdsにレプリケートされます。
ALTER REPLICATION r1
ADD ELEMENT elem_seq SEQUENCE seq
MASTER westds ON "westcoast"
SUBSCRIBER eastds ON "eastcoast"
ADD ELEMENT elem_westleads TABLE westleads
MASTER westds ON "westcoast"
SUBSCRIBER eastds ON "eastcoast";この例では、順序my.seqおよび表my.tab1をmy.rep1レプリケーション・スキームのds1 DATASTORE要素に追加します。
ALTER REPLICATION my.rep1
ALTER ELEMENT ds1
INCLUDE SEQUENCE my.seq
ALTER ELEMENT ds1
INCLUDE TABLE my.tab1;既存のクラシック・レプリケーション・スキームへのPL/SQLオブジェクトの追加
既存のレプリケーション・スキームに新しいPL/SQLプロシージャ、パッケージ、パッケージ本体またはファンクションを追加できます。
-
マスター・データベースでPL/SQLオブジェクトを作成します。
CREATE文はサブスクライバにレプリケートされません。 -
サブスクライバでPL/SQLオブジェクトを作成します。
-
マスター・データベースの新しいPL/SQLオブジェクトに権限を付与します。
GRANT文はサブスクライバにレプリケートされます。
既存のクラシック・レプリケーション・スキームへのDATASTORE要素の追加
ADD ELEMENT句を指定してALTER REPLICATION文を使用すると、既存のクラシック・レプリケーション・スキームにDATASTORE要素を追加できます。
INCLUDE句またはEXCLUDE句を使用しない場合、一時表を除くすべての表、マテリアライズド・ビューおよび非マテリアライズド・ビューがレプリケーション・スキームに含まれます。「DATASTORE要素追加時の表または順序の包含」および「DATASTORE要素追加時の表または順序の除外」を参照してください。
ALTER REPLICATION my.rep1
ADD ELEMENT ds1 DATASTORE
MASTER rep2
SUBSCRIBER rep1, rep3;DATASTORE要素追加時の表または順序の包含
既存のクラシック・レプリケーション・スキームにデータベースを追加する場合、レプリケーションを特定の表または順序に制限できます。
ADD ELEMENT句と、INCLUDE TABLE句またはINCLUDE SEQUENCE句を指定してALTER REPLICATION文を使用します。同じALTER REPLICATION文の表または順序ごとに1つのINCLUDE句を使用できます。
次の例では、ds1 DATASTORE要素をmy.rep1レプリケーション・スキームに追加します。次に、DATASTORE要素に表my.tab2および順序my.seqを挿入します。
ALTER REPLICATION my.rep1 ADD ELEMENT ds1 DATASTORE MASTER rep2 SUBSCRIBER rep1, rep3 INCLUDE TABLE my.tab2 INCLUDE SEQUENCE my.seq;
DATASTORE要素追加時の表または順序の除外
既存のクラシック・レプリケーション・スキームにDATASTORE要素を追加する場合、表または順序を除外できます。
ADD ELEMENT句と、EXCLUDE TABLE句またはEXCLUDE SEQUENCE句を指定してALTER REPLICATION文を使用します。同じALTER REPLICATION文の表または順序ごとに1つのEXCLUDE句を使用できます。
次の例では、ds2 DATASTORE要素をレプリケーション・スキームに追加しますが、表my.tab1および順序my.seqを除外します。
ALTER REPLICATION my.rep1 ADD ELEMENT ds2 DATASTORE MASTER rep2 SUBSCRIBER rep1 EXCLUDE TABLE my.tab1 EXCLUDE SEQUENCE my.seq;
クラシック・レプリケーション・スキームからの表または順序の削除
DATASTORE、TABLEまたはSEQUENCE要素の一部としてレプリケートされる、表または順序を削除できます。
この項の内容は次のとおりです。
DATASTORE要素の一部としてレプリケートされる表または順序の削除
DATASTOREレベルでクラシック・レプリケーション・スキームに含まれている表または順序を削除できます。
-
レプリケーション・エージェントを停止します。
-
クラシック・レプリケーション・スキームの
DATASTORE要素から表または順序を除外します。 -
表または順序を削除します。
その表または順序が含まれているDATASTORE要素が複数存在する場合は、それを削除する前に各要素からその表または順序を除外する必要があります。
この例では、my.rep1レプリケーション・スキームのds1 DATASTORE要素から表my.tab1を除外します。その後、その表を削除します。
ALTER REPLICATION my.rep1
ALTER ELEMENT ds1
EXCLUDE TABLE my.tab1;
DROP TABLE my.tab1;サブスクライバ・データベースの作成とクラシック・レプリケーション・スキームへの追加
レプリケーション・エージェントの実行中は、新しいサブスクライバ・データベースを追加できます。
クラシック・レプリケーション・スキームにデータベースを追加するには、次の手順を実行します。
この例では、r1レプリケーション・スキームを変更して、サブスクライバ(backup3)をwestleads表に追加します(前述のステップ2)。
ALTER REPLICATION r1
ALTER ELEMENT elem_westleads
ADD SUBSCRIBER backup3 ON "backupserver";クラシック・レプリケーション・スキームからのサブスクライバ・データベースの削除
サブスクライバ・データベースを削除する前に、レプリケーション・エージェントを停止します。
この例では、r1レプリケーション・スキームを変更して、westleads表のbackup3サブスクライバを削除します。
ALTER REPLICATION r1
ALTER ELEMENT elem_westleads
DROP SUBSCRIBER backup3 ON "backupserver";クラシック・レプリケーション・スキームでのTABLEまたはSEQUENCE要素名の変更
クラシック・レプリケーション・スキームでTABLEまたはSEQUENCE要素名を変更する前に、レプリケーション・エージェントを停止します。
westleads表の要素名をelem_westleadsからnewelnameに変更します。
ALTER REPLICATION r1
ALTER ELEMENT Eelem_westleads
SET NAME newelname;ノート:
SET NAME句を使用して、DATASTORE要素の名前を変更することはできません。
クラシック・レプリケーション・スキームでのマスター・データベースの交換
クラシック・レプリケーション・スキームでマスター・データベースを交換する前に、レプリケーション・エージェントを停止します。
この例では、現在はマスターとしてwestdsが構成されているすべての要素に新しいマスターnewwestdsを構成します。
ALTER REPLICATION r1
ALTER ELEMENT * IN westds
SET MASTER newwestds;クラシック・レプリケーション・スキームでの競合検出の無効化
この例では、示されたクラシック・レプリケーション・スキームでCHECK CONFLICTS句で構成されている競合検出を、elem_accounts_1表に対して無効にします。
ALTER REPLICATION r1
ALTER ELEMENT elem_accounts_1
SET NO CHECK;レプリケーション競合の解消を参照してください。
クラシック・レプリケーション・スキームでのRETURN RECEIPTサービスの無効化
この例では、クラシック・レプリケーション・スキームの最初のサブスクライバに対してRETURN RECEIPTサービスを無効にします。
ALTER REPLICATION r1
ALTER ELEMENT elem_waccounts
ALTER SUBSCRIBER eastds ON "eastcoast"
SET NO RETURN;クラシック・レプリケーション・スキームのポート番号の変更
ポート番号とは、サブスクライバ・データベースのレプリケーション・エージェントがマスター・レプリケーション・エージェントからの接続リクエストを受け入れるTCP/IPポート番号のことです。
レプリケーション・エージェントへのポートの割当て方法の詳細は、「ポート割当て」を参照してください。
この例では、r1レプリケーション・スキームを変更して、eastdsのポート番号を22251に変更します。
ALTER REPLICATION r1
ALTER STORE eastds ON "eastcoast"
SET PORT 22251;レプリケーション・ルートの変更
レプリケーション・ホストにネットワーク・インタフェースが複数ある場合は、レプリケーション・トラフィックに使用するインタフェースをROUTE句で指定できます。
レプリケーションで使用するインタフェースの変更が必要な場合は、ROUTE句のIPアドレスを削除または追加して変更できます。「ROUTE句を使用したネットワーク・インタフェースの構成」を参照してください。
ログ障害しきい値の変更
STOREパラメータのFAILTHRESHOLD属性を使用すると、ログ障害しきい値を再設定できます。
レプリケーション・エージェントを停止してから、ALTER REPLICATIONを使用して新しいしきい値を定義し、その後、レプリケーション・エージェントを再起動します。
「トランザクション・ログ障害しきい値の設定」を参照してください。