クラシック・レプリケーション・スキームの変更
レプリケーション・エージェントを停止せずに、次のタスクを実行できます。
-
ユーザーの作成、変更または削除。これらの文はレプリケートされます。
-
ユーザーに対する権限の付与または取消し。これらの文はレプリケートされます。
-
サブスクライバをレプリケーション・スキームに追加します。「サブスクライバ・データベースの作成とクラシック・レプリケーション・スキームへの追加」を参照してください。
-
マスター・データベースへの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
を使用して新しいしきい値を定義し、その後、レプリケーション・エージェントを再起動します。
「トランザクション・ログ障害しきい値の設定」を参照してください。