ヘッダーをスキップ
Oracle TimesTen In-Memory Database SQLリファレンス・ガイド
リリース11.2.1
B56051-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

CREATE REPLICATION

TimesTen SQLによるレプリケーションの構成では、レプリケーションをプログラム的な方法で構成できます。この構成は、C、C++またはJavaコードに埋め込むことができます。レプリケーションをローカルで構成したり、クライアント/サーバーを使用してリモート・システムから構成できます。

また、サポートされているSQL文ではカバーされていない処理に対応する場合は、ttRepAdminユーティリティを使用する必要があります。 ttRepAdminを使用すると、レプリケーションの状態の変更、データ・ストアの複製、レプリケーション構成の一覧表示およびレプリケーション状態の表示を実行できます。

CREATE REPLICATION文は、次の処理を実行します。

必要な権限

ADMIN

説明

レプリケーション要素は、TimesTenのデータ・ストア間で同期化されるエンティティです。レプリケーション要素は、表全体またはデータ・ストアのいずれかです。データ・ストアには、ほとんどの型の表とキャッシュ・グループを含めることができます。 指定した表とキャッシュ・グループのみ、または指定した表とキャッシュ・グループ以外のすべての表を含めることができます。 一時表またはビューを含めることはできません。このことは、マテリアライズド・ビューと非マテリアライズド・ビューでも同様です。

レプリケーション・スキームは、レプリケーション要素および要素のコピーを管理するデータ・ストアのセットです。

キャッシュ・グループのレプリケーションでは、次の点に注意します。

レプリケーションを構成するSQLの詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』を参照してください。

SQL構文

CREATE REPLICATION [Owner.]ReplicationSchemeName
{ ELEMENT ElementName
  { DATASTORE | { TABLE [Owner.]TableName [CheckConflicts]} |
       SEQUENCE [Owner.]SequenceName}
     { MASTER | PROPAGATOR } FullStoreName
     [TRANSMIT { NONDURABLE | DURABLE }]
     { SUBSCRIBER FullStoreName [,...]
        [ReturnServiceAttribute] } [, ...] }
     [...]
     [{INCLUDE | EXCLUDE}
          {TABLE [[Owner.]TableName[,...]] |
           CACHE GROUP [[Owner.]CacheGroupName[,...]] |
           SEQUENCE [[Owner.]SequenceName[,...]} [,...]]
[ STORE FullStoreName [StoreAttribute [... ]]] [...]
[ NetworkOperation[...]]

CheckConflictsの構文については、「CHECK CONFLICTS」を参照してください。

ReturnServiceAttributeの構文は、次のとおりです。

{ RETURN RECEIPT [BY REQUEST] |
  RETURN TWOSAFE [BY REQUEST] |
  NO RETURN }

StoreAttributeの構文は、次のとおりです。

  [ DISABLE RETURN {SUBSCRIBER | ALL} NumFailures ]
  [ RETURN SERVICES {ON | OFF} WHEN [REPLICATION] STOPPED ]
  [ DURABLE COMMIT {ON | OFF}]
  [ RESUME RETURN MilliSeconds ]
  [ LOCAL COMMIT ACTION {NO ACTION | COMMIT} ]
  [ RETURN WAIT TIME Seconds ]
  [ COMPRESS TRAFFIC {ON | OFF}
  [ PORT PortNumber ]
  [ TIMEOUT Seconds ]
  [ FAILTHRESHOLD Value ]
  [ CONFLICT REPORTING SUSPEND AT Value ]
  [ CONFLICT REPORTING RESUME AT Value ]
  [ TABLE DEFINITION CHECKING {RELAXED|EXACT}]

NetworkOperationの構文は、次のとおりです。

ROUTE MASTER FullStoreName SUBSCRIBER FullStoreName
  { { MASTERIP MasterHost | SUBSCRIBERIP SubscriberHost }
      PRIORITY Priority } [...]

パラメータ

CREATE REPLICATION文には、次のパラメータがあります。

パラメータ 説明
[Owner.]ReplicationSchemeName 新しいレプリケーション・スキームに割り当てる名前です。レプリケーション・スキームは、他のすべてのデータ・ストア・オブジェクトとは別の一意の名前である必要があります。
CheckConflicts 双方向にレプリケートされたデータ・ストアへの同時書込みで、レプリケーションの競合をチェックします。 「CHECK CONFLICTS」を参照してください。
COMPRESS TRAFFIC {ON | OFF} レプリケートされた通信量を圧縮して、ネットワークの帯域幅の量を削減します。 ONは、STOREで定義されたデータ・ストアに対してレプリケートされた通信量をすべて圧縮するように指定します。 OFF(デフォルト)は、通信量を圧縮しないように指定します。 詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』のレプリケートされた通信量の圧縮に関する説明を参照してください。
CONFLICT REPORTING SUSPEND AT Value 競合解消のレポートを一時停止します。

Valueは、負でない整数です。デフォルトは0(一時停止なし)です。競合のレポートは、競合の割合がValueを超えると一時的に停止されます。Valueを0に設定すると、競合のレポートの一時停止が無効になります。

この句は、表レベルのレプリケーションに使用します。

CONFLICT REPORTING RESUME AT Value 競合解消のレポートを再開します。

Valueは、負でない整数です。競合のレポートは、競合の割合がValueを下回ると再開されます。デフォルト値は1です。

この句は、表レベルのレプリケーションに使用します。

DATASTORE データ・ストア全体をELEMENTとして定義します。 この種類のELEMENTは、同一または異なるレプリケーション・スキームでTABLE型のELEMENTが構成されていないマスター・データ・ストアに対してのみ定義できます。 詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』のレプリケーション要素の定義に関する説明を参照してください。
{INCLUDE|EXCLUDE}

{[TABLE[Owner.]TableName [,...]]|

CACHE GROUP

[[Owner.]CacheGroupName [,...]]|

SEQUENCE

[[Owner.]SequenceName[,...]]} [,...]

INCLUDEは、指定された表、順序またはキャッシュ・グループのみをDATASTORE要素に含めます。INCLUDE句は、オブジェクト型(表、順序またはキャッシュ・グループ)ごとに1つ使用します。

EXCLUDEは、指定された表、順序およびキャッシュ・グループを除外して、すべての表、順序およびキャッシュ・グループをDATASTORE要素に含めます。EXCLUDE句は、オブジェクト型(表、キャッシュ・グループまたは順序)ごとに1つ使用します。

DISABLE RETURN {SUBSCRIBER|ALL} NumFailures NumFailuresで指定されているタイムアウト回数を経過した後、RETURNサービスのブロッキングを無効にするようにRETURNサービス障害ポリシーを設定します。 SUBSCRIBERを選択すると、レプリケートされた更新を、指定されているタイムアウト期間内に確認できなかったサブスクライバのみにこのポリシーが適用されます。ALLを選択すると、いずれかのサブスクライバから応答がなかった場合、すべてのサブスクライバにこのポリシーが適用されます。 この障害ポリシーは、RETURN RECEIPTまたはRETURN TWOSAFEサービスのいずれかで指定できます。

DISABLE RETURNを指定してRESUME RETURNを指定しなかった場合、データ・ストアのレプリケーション・エージェントが再起動されるまで、RETURNサービスは無効のままになります。

詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』のRETURNサービスのタイムアウト・エラーおよびレプリケーション状態の変更の管理に関する説明を参照してください。

DURABLE COMMIT {ON|OFF} DISABLE RETURNによりRETURNサービスのブロッキングが無効になった場合、データ・ストアのDurableCommits設定を上書きし、永続コミットを有効にします。
ELEMENT ElementName TimesTenがデータ・ストア間で同期を取るエンティティです。 レプリケーション要素として、TimesTenでは、データ・ストア全体(DATASTORE)および表全体(TABLE)がサポートされています。

ElementNameは、レプリケーション要素に指定される名前です。TABLE要素のElementNameの長さは、最大30文字です。 DATASTORE要素のElementNameは、他のDATASTORE要素名について、最初の20文字以内が一意である必要があります。 ElementNameは、レプリケーション・スキーム内で一意である必要があります。 また、同じ要素に対して2つのELEMENT記述を定義することはできません。

詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』のレプリケーション要素の定義に関する説明を参照してください。

FAILTHRESHOLD Value サブスクライバ・データ・ストアのために累積できるログ・ファイルの数。この値を超えると、サブスクライバはFailedの状態に設定されます。値0は、制限がないことを示します。この設定がデフォルトです。

詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』のログ障害しきい値の設定に関する説明を参照してください。

FullStoreName 次のいずれかとして指定されるデータ・ストアです。
  • SELF

  • データ・ストア・ファイル名の接頭辞

たとえば、データ・ストアのパスがdirectory/subdirectory/data.ds0の場合、dataが使用対象のデータ・ストア名です。

この名前は、DSNの記述のDataStore属性で指定されるデータ・ストア・ファイル名で、オプションでホストIDを次の書式で指定できます。

DataStoreName [ON Host]

HostにはIPアドレスまたは1つ以上のIPアドレスに割り当てられたリテラルのホスト名を指定できます。詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』のホストIPアドレスの構成に関する説明を参照してください。ホスト名に特殊文字が含まれている場合は、二重引用符で囲む必要があります。例: "MyHost-500"。ホスト名は30文字以下で指定します。

LOCAL COMMIT ACTION{NO ACTION|COMMIT} タイムアウト・イベントのRETURN TWOSAFEトランザクションで実行されるデフォルトのアクションを指定します。

注意: この属性は、RETURN TWOSAFEまたはRETURN TWOSAFE BY REQUEST属性がSUBSCRIBER句で設定されている場合にのみ有効です。

NO ACTION: タイムアウト時、コミット関数がアプリケーションに戻り、トランザクションはコミット・コールに入ったときと同じ状態のままになります。ただし、アプリケーションがレプリケートされた表を更新できない場合を除きます。アプリケーションはコミットの再発行またはコールのロールバックを実行できます。この設定がデフォルトです。

COMMIT: タイムアウト時、コミット関数はCOMMITを実行して、トランザクションをローカルに終了しようとします。同じトランザクション上でこれ以上の処理を行うことはできません。

この設定は、localActionパラメータを指定してttRepSyncSetプロシージャをコールすることで、特定のトランザクションに対して無効にすることができます。

MASTER FullStoreName アプリケーションで特定のELEMENTが更新されるデータ・ストア。 MASTERデータ・ストアによって、更新がSUBSCRIBERデータ・ストアに送信されます。FullStoreNameは、DSNの記述のDataStore属性で指定されたデータ・ストアであることが必要です。
NO RETURN RETURNサービスを使用しないように指定します。この設定がデフォルトです。

RETURNサービスの使用の詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』のRETURNサービスの使用に関する説明を参照してください。

PORT PortNumber データ・ストアのレプリケーション・エージェントが接続をリスニングするTCP/IPポート番号。指定しない場合は、レプリケーション・エージェントによってポート番号が自動的に割り当てられます。
PROPAGATOR FullStoreName レプリケートされた更新を受け取り、他のデータ・ストアに渡すデータ・ストア。FullStoreNameは、DSNの記述のDataStore属性で指定されたデータ・ストアであることが必要です。
RESUME RETURN MilliSeconds DISABLE RETURNによってRETURNサービスのブロッキングが無効になった場合、この属性によって、RETURNサービスのブロッキングを再度有効にするタイミングに関するポリシーを設定します。RETURNサービスのブロッキングは、障害が発生したサブスクライバが、MilliSecondsで指定された時間よりも短い間隔でレプリケートされた更新を確認するとすぐに有効になります。

DISABLE RETURNを指定してRESUME RETURNを指定しなかった場合、データ・ストアのレプリケーション・エージェントが再起動されるまで、RETURNサービスは無効のままになります。

RETURN RECEIPT [BY REQUEST] RETURN RECEIPTサービスを有効にします。これによって、マスター・データ・ストアに対してトランザクションをコミットするアプリケーションは、すべてのサブスクライバがトランザクションを受信するまでブロックされます。

RETURN RECEIPTにより、すべてのトランザクションにサービスが適用されます。 RETURN REQUEST BY REQUESTを指定した場合は、ttRepSyncSetプロシージャを使用して、選択したトランザクションに対してRETURN RECEIPTサービスを有効にできます。 RETURNサービスの使用の詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』のRETURNサービスの使用に関する説明を参照してください。

RETURN SERVICES {ON|OFF} WHEN [REPLICATION] STOPPED レプリケーション・エージェントが停止または一時停止の状態の場合に、RETURNサービスのブロッキングが変更なし、または無効のいずれかになるように、RETURNサービス障害ポリシーを設定します。

OFFは、RETURN RECEIPTサービスを使用する場合のデフォルトです。 ONは、RETURN TWOSAFEサービスを使用する場合のデフォルトです。

詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』のRETURNサービスのタイムアウト・エラーおよびレプリケーション状態の変更の管理に関する説明を参照してください。

RETURN TWOSAFE [BY REQUEST] RETURN TWOSAFEサービスを有効にします。これによって、マスター・データ・ストアに対してトランザクションをコミットするアプリケーションは、すべてのサブスクライバがトランザクションをコミットするまでブロックされます。

注意: このサービスは、要素がDATASTOREと定義される場合の双方向レプリケーション・スキームでのみ使用できます。

RETURN TWOSAFEにより、すべてのトランザクションにサービスが適用されます。 RETURN TWOSAFE BY REQUESTを指定した場合は、ttRepSyncSetプロシージャを使用して、選択したトランザクションに対してRETURN RECEIPTサービスを有効にできます。RETURNサービスの使用の詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』のRETURNサービスの使用に関する説明を参照してください。

RETURN WAIT TIME Seconds RETURNサービスの応答を待機する時間(秒)を指定します。デフォルト値は10秒です。 値0はタイムアウトがないことを意味します。 returnWaitパラメータを設定してアプリケーションからttRepSyncSetプロシージャをコールすることで、このタイムアウト設定を無効にすることができます。
SEQUENCE [Owner.]SequenceName [Owner.]SequenceNameによってELEMENTとして指定された順序を定義します。詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』のレプリケーション要素の定義に関する説明を参照してください。
STORE FullStoreName 指定されたデータ・ストアの属性を定義します。 データ・ストア属性には、PORTTIMEOUTおよびFAILTHRESHOLDが含まれています。FullStoreNameは、DSNの記述のDataStore属性で指定されたデータ・ストアであることが必要です。
SUBSCRIBER FullStoreName MASTERデータ・ストアから更新を受け取るデータ・ストアです。FullStoreNameは、DSNの記述のDataStore属性で指定されたデータ・ストアであることが必要です。
TABLE [Owner.]TableName [Owner.]TableNameによってELEMENTとして指定された表を定義します。詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』のレプリケーション要素の定義に関する説明を参照してください。
TIMEOUT Seconds メッセージを再送信する前に、データ・ストアが別のデータ・ストアからの応答を待機する時間。デフォルト値は120秒です。
TRANSMIT {DURABLE | NONDURABLE} コミットされたトランザクション群をサブスクライバに転送する前に、マスターのログをディスクにフラッシュするかどうかを指定します。

TRANSMIT NONDURABLEは、マスターのログ内のレコードがサブスクライバに転送される前にディスクにフラッシュされないように指定します。 この設定は、指定されたELEMENTDATASTOREである場合にのみ使用できます。 この設定は、RETURN TWOSAFEトランザクションのデフォルト値です。

TRANSMIT DURABLEは、サブスクライバに転送される前にレコードがディスクにフラッシュされるように指定します。 この設定は、非同期およびRETURN RECEIPTトランザクションのデフォルト値です。

注意: TRANSMIT DURABLEは、RETURN TWOSAFEトランザクションに影響を与えません。

注意: アクティブ・スタンバイ・ペアに対してTRANSMIT DURABLEを設定することはできません。

詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』のデータ・ストア要素に対する送信永続性の設定に関する説明およびTRANSMIT NONDURABLEによるマスター・データ・ストア全体のレプリケーションに関する説明を参照してください。

TABLE DEFINITION CHECKING {EXACT|RELAXED} サブスクライバで実行される表定義チェックの種類を指定します。
  • EXACT: 表は、マスターとサブスクライバとで同一である必要があります。

  • RELAXED: 表は、キー定義、列の数および列のデータ型が同じである必要があります。

デフォルトはEXACTです。

ROUTE MASTER FullStoreName SUBSCRIBER FullStoreName NetworkOperation句を示します。指定されている場合、各サブスクライバ・ストアへのすべてのアウトバウンド接続にマスター・ストアが使用するネットワーク・インタフェースを制御できます。

複数回指定できます。

FullStoreNameには、ON "host"を指定する必要があります。

MASTERIP MasterHost | SUBSCRIBERIP SubscriberHost MasterHostおよびSubscriberHostは、マスターおよびサブスクライバ・ストアのネットワーク・インタフェースのIPアドレスです。 IPV6のドット表記または正規形式で指定するか、あるいはコロン表記で指定します。

句は複数回指定できます。

PRIORITY Priority 1から99の整数で表される変数。IPアドレスの優先順位を示します。整数値が小さいほど、優先度は高くなります。同じ優先度を持つアドレスが複数指定されている場合は、エラーが返されます。 ピア接続の確立に使用する複数のIPアドレスの順序を制御します。

NetworkOperation句の構文で必須です。MASTERIP MasterHost | SUBSCRIBERIP SubscriberHost句の後ろに記述します。



CHECK CONFLICTS

構文

CHECK CONFLICTSの構文は、次のとおりです。

{NO CHECK |
CHECK CONFLICTS BY ROW TIMESTAMP
      COLUMN ColumnName
      [ UPDATE BY { SYSTEM | USER } ]
      [ ON EXCEPTION { ROLLBACK [ WORK ] | NO ACTION } ]
      [ {REPORT TO 'FileName'
             [ FORMAT { XML | STANDARD } ] | NO REPORT
      } ]
}

注意:

CHECK CONFLICT句は、TABLE型のELEMENTに対してのみ使用できます。

パラメータ

CREATE REPLICATIONまたはALTER REPLICATION文のCHECK CONFLICTS句には、次のパラメータがあります。

パラメータ 説明
CHECK CONFLICTS BY ROW TIMESTAMP すべての更新競合と一意性競合の検出を指定します。 競合はON EXCEPTIONパラメータで指定された方法で解消されます。

DELETE処理とUPDATE処理の競合についても検出します。

COLUMN ColumnName レプリケートされた表の列を使用してタイムスタンプを比較します。 表はELEMENTの記述のTableNameで指定されます。

ColumnNameはNULL値可能なBINARY(8)型の列で、行が最後に更新されたタイムスタンプの格納に使用されます。TimesTenでは、格納された値よりも小さいタイムスタンプ値を持つ行の更新要求が拒否されます。指定されたColumnNameは、マスターおよびサブスクライバ・データ・ストアの両方のレプリケートされた表に存在している必要があります。

NO CHECK 指定された要素に対する競合解消を行わないように指定します。
UPDATE BY {SYSTEM | USER} タイムスタンプ値をTimesTen(SYSTEM)またはアプリケーション(USER)のどちらで管理するかを指定します。 マスター・データ・ストアおよびサブスクライバ・データ・ストアのレプリケートされた表は、同じUPDATE BY指定を使用する必要があります。 詳細は、『Oracle TimesTen In-Memory Database TimesTen to TimesTen開発者および管理者ガイド』のシステム・タイムスタンプ列のメンテナンスに関する説明およびユーザー・タイムスタンプ列のメンテナンスに関する説明を参照してください。 デフォルト値は、UPDATE BY SYSTEMです。
ON EXCEPTION {ROLLBACK[WORK |NO ACTION} 検出された競合の解消方法を指定します。 ROW TIMESTAMP競合の検出には、次の解消オプションがあります。
  • ROLLBACK [WORK]: 競合するアクションを含むトランザクションを強制終了します。

  • NO ACTION: 競合するアクション(UPDATEINSERTまたはDELETE)を実行せずに、トランザクションを完了します。

デフォルト値は、ON EXCEPTION ROLLBACK [WORK]です。

REPORT TO 'FileName' タイムスタンプ比較に失敗した更新を記録するファイルを指定します。 FileNameは、1,000文字以下のSQL文字列です(SQL文字列リテラルは一重引用符で囲まれた、空白を含むすべての文字列です)。複数の表で失敗した更新を記録するために、同一のファイルを使用できます。
[FORMAT {XML|STANDARD}] オプションで、要素の競合レポートの形式を指定します。 デフォルトの形式はSTANDARDです。
NO REPORT 失敗したタイムスタンプの比較を記録しないように指定します。

説明

repl.tabの内容をmasterdsから2つのサブスクライバsubscriber1dsおよびsubscriber2dsにレプリケートします。

CREATE REPLICATION repl.twosubscribers
       ELEMENT e TABLE repl.tab
         MASTER masterds ON "server1"
         SUBSCRIBER subscriber1ds ON "server2",
                    subscriber2ds ON "server3";

masterdsデータ・ストア全体をサブスクライバsubscriber1dsにレプリケートします。 FAILTHRESHOLDを指定すると、subscriber1dsが失敗したとみなされる前に、最大10のログ・ファイルをmasterdsに蓄積します。

CREATE REPLICATION repl.wholestore
  ELEMENT e DATASTORE
     MASTER masterds ON "server1"
     SUBSCRIBER subscriber1ds ON "server2"
  STORE masterds FAILTHRESHOLD 10;

westdsおよびeastdsデータ・ストア全体を双方向にレプリケートして、RETURN TWOSAFEサービスを有効にします。

CREATE REPLICATION repl.biwholestore
  ELEMENT e1 DATASTORE
     MASTER westds ON "westcoast"
     SUBSCRIBER eastds ON "eastcoast"
        RETURN TWOSAFE
  ELEMENT e2 DATASTORE
     MASTER eastds ON "eastcoast"
     SUBSCRIBER westds ON "westcoast"
        RETURN TWOSAFE;

subscriber1dsサブスクライバへの選択トランザクション更新に対して、RETURN RECEIPTサービスを有効にします。

CREATE REPLICATION repl.twosubscribers
  ELEMENT e TABLE repl.tab
     MASTER masterds ON "server1"
     SUBSCRIBER subscriber1ds ON "server2"
        RETURN RECEIPT BY REQUEST
     SUBSCRIBER subscriber2ds ON "server3";

westデータ・ストアのcustomerswest表の内容をROUNDUPデータ・ストアにレプリケートし、同様に、eastデータ・ストアのcustomerseast表をROUNDUPデータ・ストアにレプリケートします。すべてのトランザクションに対してRETURN RECEIPTサービスを有効にします。

CREATE REPLICATION r
       ELEMENT west TABLE customerswest
         MASTER west ON "serverwest"
         SUBSCRIBER roundup ON "serverroundup"
            RETURN RECEIPT
       ELEMENT east TABLE customerseast
         MASTER east ON "servereast"
         SUBSCRIBER roundup ON "serverroundup"
            RETURN RECEIPT;

centraldsデータ・ストアのrepl.tab表の内容をpropdsデータ・ストアにレプリケートします。これにより、backup1dsおよびbackup2dsデータ・ストアに変更が伝播されます。

CREATE REPLICATION repl.propagator
       ELEMENT a TABLE repl.tab
         MASTER centralds ON "finance"
         SUBSCRIBER proprds ON "nethandler"
       ELEMENT b TABLE repl.tab
         PROPAGATOR proprds ON "nethandler"
         SUBSCRIBER backup1ds ON "backupsystem1"
                    bakcup2ds ON "backupsystem2";

eastdswestdsデータ・ストアの間で、repl.accounts表の内容を双方向でレプリケートします。 各データ・ストアは、repl.accounts表のマスターとサブスクライバの両方として設定されます。

repl.accounts表がeastdswestdsデータ・ストアのいずれかで更新されるため、ここにはタイムスタンプ列(tstamp)が含まれます。CHECK CONFLICTS句により、2つのデータ・ストア間で発生した更新競合を検出するための自動タイムスタンプ比較が開始されます。比較が失敗すると、古いタイムスタンプを持つ更新が含まれるトランザクションの全体がロールバック(破棄)されます。

CREATE REPLICATION repl.r1
ELEMENT elem_accounts_1 TABLE repl.accounts
   CHECK CONFLICTS BY ROW TIMESTAMP
      COLUMN tstamp
      UPDATE BY SYSTEM
      ON EXCEPTION ROLLBACK
   MASTER westds ON "westcoast"
   SUBSCRIBER eastds ON "eastcoast"
ELEMENT elem_accounts_2 TABLE repl.accounts
   CHECK CONFLICTS BY ROW TIMESTAMP
      COLUMN tstamp
      UPDATE BY SYSTEM
      ON EXCEPTION ROLLBACK
   MASTER eastds ON "eastcoast"
   SUBSCRIBER westds ON "westcoast";

RETURN TWOSAFEサービスを使用して、repl.accounts表の内容をactivedsデータ・ストアからbackupdsデータ・ストアにレプリケートします。activedsではTCP/IPポート40000、backupdsではTCP/IPポート40001を使用します。 activedsでのトランザクションでは、可能な場合に常にコミットする必要があります。そのため、LOCAL COMMIT ACTIONを使用してレプリケーションのタイムアウト後もトランザクションがコミットされるように、また、レプリケーションが停止するとRETURN TWOSAFEサービスが無効になるようにレプリケーションを構成します。 backupdsデータ・ストアへの接続が中断された場合にアプリケーションでの大幅な遅延を回避するには、5つのトランザクションがタイムアウトすると無効になるようにRETURNサービスを構成します。また、RETURNサービスは、backupdsデータ・ストアのレプリケーション・エージェントが100ミリ秒未満で応答した場合に再度有効になるようにも構成します。 最後に、データ・ストア間の帯域幅は制限されているため、データをactivedsデータ・ストアからレプリケートする場合にそのデータが圧縮されるようにレプリケーションを構成します。

CREATE REPLICATION repl.r
ELEMENT elem_accounts_1 TABLE repl.accounts
   MASTER activeds ON "active"
   SUBSCRIBER backupds ON "backup"
      RETURN TWOSAFE
ELEMENT elem_accounts_2 TABLE repl.accounts
   MASTER activeds ON "active"
   SUBSCRIBER backupds ON "backup"
      RETURN TWOSAFE
STORE activeds ON "active"
   PORT 40000
   LOCAL COMMIT ACTION COMMIT
   RETURN SERVICES OFF WHEN REPLICATION STOPPED
   DISABLE RETURN SUBSCRIBER 5
   RESUME RETURN 100
   COMPRESS TRAFFIC ON
STORE backupds ON "backup"
   PORT 40001;

表レベルのレプリケーションで競合のレポートを一時停止する句と競合のレポートを再開する句の例を示します。これらの句は、データ・ストア・レプリケーションではなく、表レベルのレプリケーションに対して使用します。 repschemesコマンドを発行して、レプリケーション・スキームが作成されていることを表示します。

Command> CREATE TABLE repl.accounts (tstamp BINARY (8) NOT NULL
PRIMARY KEY, tstamp1 BINARY (8));
Command> CREATE REPLICATION repl.r2
> ELEMENT elem_accounts_1 TABLE repl.accounts
> CHECK CONFLICTS BY ROW TIMESTAMP
> COLUMN tstamp1
> UPDATE BY SYSTEM
> ON EXCEPTION ROLLBACK WORK
> MASTER westds ON "west1"
> SUBSCRIBER eastds ON "east1"
> ELEMENT elem_accounts_2 TABLE repl.accounts
> CHECK CONFLICTS BY ROW TIMESTAMP
> COLUMN tstamp1
> UPDATE BY SYSTEM
> ON EXCEPTION ROLLBACK WORK
> MASTER eastds ON "east1"
> SUBSCRIBER westds ON "west1"
> STORE westds
> CONFLICT REPORTING SUSPEND AT 20
> CONFLICT REPORTING RESUME AT 10;
Command> REPSCHEMES;

Replication Scheme REPL.R2:

  Element: ELEM_ACCOUNTS_1
  Type: Table REPL.ACCOUNTS
  Conflict Check Column: TSTAMP1
  Conflict Exception Action: Rollback Work
  Conflict Timestamp Update: System
  Conflict Report File: (none)
  Master Store: WESTDS on WEST1 Transmit Durable
  Subscriber Store: EASTDS on EAST1

  Element: ELEM_ACCOUNTS_2
  Type: Table REPL.ACCOUNTS
  Conflict Check Column: TSTAMP1
  Conflict Exception Action: Rollback Work
  Conflict Timestamp Update: System
  Conflict Report File: (none)
  Master Store: EASTDS on EAST1 Transmit Durable
  Subscriber Store: WESTDS on WEST1

  Store: EASTDS on EAST1
    Port: (auto)
    Log Fail Threshold: (none)
    Retry Timeout: 120 seconds
    Compress Traffic: Disabled

  Store: WESTDS on WEST1
    Port: (auto)
    Log Fail Threshold: (none)
    Retry Timeout: 120 seconds
    Compress Traffic: Disabled
    Conflict Reporting Suspend: 20
    Conflict Reporting Resume: 10

1 replication scheme found.

2つのMASTERIP句とSUBSCRIBERIP句を使用したNetworkOperation句の例を示します。

CREATE REPLICATION r ELEMENT e DATASTORE
MASTER rep1 SUBSCRIBER rep2 RETURN RECEIPT
MASTERIP "1.1.1.1" PRIORITY 1 SUBSCRIBERIP "2.2.2.2"
    PRIORITY 1
MASTERIP "3.3.3.3" PRIORITY 2 SUBSCRIBERIP "4.4.4.4"
    PRIORITY 2;

NetworkOperation句の例を示します。送信側にはデフォルトのインタフェースを使用しますが、受信側には特定のネットワークを使用します。

CREATE REPLICATION r
ELEMENT e DATASTORE
MASTER rep1 SUBSCRIBER rep2
ROUTE MASTER rep1 ON "machine1" SUBSCRIBER rep2 ON "machine2"
SUBSCRIBERIP "rep2nic2" PRIORITY 1;

複数のサブスクライバを使用するNetworkOperation句の使用例を示します。

CREATE REPLICATION r ELEMENT e DATASTORE
MASTER rep1 SUBSCRIBER rep2,rep3
ROUTE MASTER rep1 ON "machine1" SUBSCRIBER rep2 ON "machine2"
MASTERIP "1.1.1.1" PRIORITY 1 SUBSCRIBERIP "2.2.2.2"
    PRIORITY 1
ROUTE MASTER Rep1 ON "machine1" SUBSCRIBER Rep3 ON "machine2"
MASTERIP "3.3.3.3" PRIORITY 2 SUBSCRIBERIP "4.4.4.4";

関連項目


「ALTER ACTIVE STANDBY PAIR」
「ALTER REPLICATION」
「CREATE ACTIVE STANDBY PAIR」
「DROP ACTIVE STANDBY PAIR」
「DROP REPLICATION」