CREATE ACTIVE STANDBY PAIR

この文は、TimesTen Scaleoutではサポートされていません。

TimesTen Classicの場合:

この文は、アクティブ・スタンバイ・ペアを作成します。アクティブ・マスター・データベースとスタンバイ・マスター・データベースが含まれており、1つ以上の読取り専用サブスクライバが含まれる場合もあります。アクティブ・マスター・データベースはスタンバイ・マスター・データベースへ更新をレプリケートし、スタンバイ・マスター・データベースはサブスクライバへ更新を伝播します。

必要な権限

ADMIN

TimesTen Scaleoutでの使用

この文は、TimesTen Scaleoutではサポートされていません。

SQL構文

CREATE ACTIVE STANDBY PAIR
  FullStoreName, FullStoreName [ReturnServiceAttribute]
    [SUBSCRIBER FullStoreName [,...]]
    [STORE FullStoreName [StoreAttribute [...]]]
    [NetworkOperation [...] ]
    [{ INCLUDE | EXCLUDE }{TABLE [[Owner.]TableName [,...]]|
         CACHE GROUP [[Owner.]CacheGroupName [,...]]|
         SEQUENCE [[Owner.]SequenceName [,...]]} [,...]]

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 
  TABLE DEFINITION CHECKING {RELAXED|EXACT}

NetworkOperationの構文:

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

パラメータ

パラメータ 説明

FullStoreName

次のいずれかとして指定されたデータベースです。

  • SELF

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

たとえば、データベースのパスがdirectory/subdirectory/data.ds0の場合、使用するデータベース名はdataになります。

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

DataStoreName [ON Host]

Hostは、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』「ネットワークの構成」で説明されているように、IPアドレスか、または1つ以上のIPアドレスに割り当てられたリテラル・ホスト名です。ホスト名に特殊文字が含まれている場合は、二重引用符で囲む必要があります。たとえば、"MyHost-500"のようになります。

RETURN RECEIPT [BY REQUEST]

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

RETURN RECEIPTを指定すると、すべてのトランザクションにサービスが適用されます。RETURN RECEIPT BY REQUESTを指定した場合は、ttRepSyncSetプロシージャを使用して、選択したトランザクションに対してRETURN RECEIPTサービスを有効にできます。RETURNサービスの使用の詳細は、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』「RETURNサービスの使用」を参照してください。

RETURN TWOSAFE [BY REQUEST]

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

RETURN TWOSAFEを指定すると、すべてのトランザクションにサービスが適用されます。RETURN TWOSAFE BY REQUESTを指定した場合は、ttRepSyncSetプロシージャを使用して、選択したトランザクションに対してRETURN RECEIPTサービスを有効にできます。

RETURNサービスの使用の詳細は、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』「RETURNサービスの使用」を参照してください。

DISABLE RETURN {SUBSCRIBER | ALL} NumFailures

NumFailuresで指定されているタイムアウト回数を経過した後、RETURNサービスのブロッキングを無効にするようにRETURNサービス障害ポリシーを設定します。

SUBSCRIBERを指定することは、ALLを指定することと同じです。両方の設定でスタンバイ・マスター・データベースが参照されます。

この障害ポリシーは、RETURN RECEIPTまたはRETURN TWOSAFEサービスのいずれかで指定できます。

RETURN SERVICES {ON | OFF} WHEN [REPLICATION] STOPPED

レプリケーションが無効になっている場合のRETURNサービスのオンまたはオフを設定します。

OFFは、レプリケーション無効時にRETURNサービスを無効する設定であり、RETURN RECEIPTサービスのデフォルトです。ONは、レプリケーション無効時にもRETURNサービスを有効のままにできる設定であり、RETURN TWOSAFEサービスのデフォルトです。

『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』「RETURNサービスの障害およびリカバリのポリシーの設定」を参照してください。

RESUME RETURN Milliseconds

DISABLE RETURNによってRETURNサービスのブロッキングが無効になった場合、この属性で、RETURNサービスを再度有効にするタイミングに関するポリシーを設定します。

NO RETURN

RETURNサービスを使用しないように指定します。これがデフォルトです。

RETURNサービスの使用の詳細は、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』「RETURNサービスの使用」を参照してください。

RETURN WAIT TIME Seconds

RETURNサービスの応答を待機する秒数を指定します。値が0(ゼロ)の場合は、待機しないことを意味します。デフォルト値は10秒です。

このタイムアウト設定は、アプリケーションからttRepSyncSet組込みプロシージャのreturnWaitパラメータを使用して上書きできます。

SUBSCRIBER FullStoreName [,...]]

マスター・データベースから更新を受け取るデータベース。FullStoreNameは、DSNの記述のDataStore属性で指定したデータベース・ファイル名です。

STORE FullStoreName [StoreAttribute [...]]

指定されたデータベースの属性を定義します。属性には、PORTTIMEOUTおよびFAILTHRESHOLDがあります。FullStoreNameは、DSNの記述のDataStore属性で指定したデータベース・ファイル名です。

TABLE DEFINITION CHECKING {EXACT|RELAXED}

StoreAttribute句。

サブスクライバで実行される表定義チェックの種類を指定します。

  • EXACT: マスターおよびサブスクライバで表が一致している必要があります。

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

デフォルトはRELAXEDです。

ノート: TABLE DEFINITION CHECKING EXACTを使用している場合、データベースを移行するにはttMigrate -exactUpgradeを使用します。TABLE DEFINITION CHECKING RELAXEDを使用している場合、データベースを移行するにはttMigrate -relaxedUpgradeを使用します。

{INCLUDE | EXCLUDE}

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

CACHE GROUP

[[Owner.]CacheGroupName

[,...]]|

SEQUENCE

[[Owner.]SequenceName

[,...]]}

[,...]

デフォルトでは、アクティブ・スタンバイ・ペアはデータベース全体をレプリケートします。

INCLUDEを指定すると、指定された表、順序またはキャッシュ・グループのみがレプリケーション・スキームに含まれます。INCLUDE句は、オブジェクト型(表、順序またはキャッシュ・グループ)ごとに1つ使用します。

EXCLUDEを指定すると、表、順序またはキャッシュ・グループがレプリケーション・スキームから除外されます。EXCLUDE句は、オブジェクト型(表、キャッシュ・グループまたは順序)ごとに1つ使用します。

EXCLUDE句はAWTキャッシュ・グループに対して使用しないでください。

COMPRESS TRAFFIC {ON | OFF}

レプリケートされた通信量を圧縮して、ネットワークの帯域幅の量を削減します。ONは、STOREで定義されたデータベースに対してレプリケートされた通信量をすべて圧縮するように指定します。OFF(デフォルト)は、通信量を圧縮しないように指定します。詳細は、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』「レプリケートの通信量の圧縮」を参照してください。

DURABLE COMMIT {ON | OFF}

DurableCommits一般接続属性設定を上書きします。DURABLE COMMIT ONは、レプリケーション・エージェントが実行中か停止しているかに関係なく、永続コミットを有効にします。また、ttRepStateSave組込みプロシージャでスタンバイ・データベースがfailedとしてマークされている場合も、永続コミットが有効になります。

FAILTHRESHOLD Value

サブスクライバ・データベースのために累積できるログ・ファイルの数。この値を超えると、サブスクライバはFailedの状態に設定されます。0を指定すると、この上限は設定されません。これがデフォルトです。

詳細は、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』「トランザクション・ログ障害しきい値の設定」を参照してください。

LOCAL COMMIT ACTION {NO ACTION | COMMIT}

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

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

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

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

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

MASTER FullStoreName

アプリケーションで特定の要素が更新されるデータベース。更新はMASTERデータベースによってSUBSCRIBERデータベースに送信されます。FullStoreNameは、DSNの記述のDataStore属性で指定したデータベースである必要があります。

PORT PortNumber

データベースのレプリケーション・エージェントが接続をリスニングするTCP/IPポート番号です。指定しない場合は、レプリケーション・エージェントによってポート番号が自動的に割り当てられます。

アクティブ・スタンバイ・ペアでは、スタンバイ・マスター・データベースは、アクティブ・マスター・データベースからの更新をリスニングします。読取り専用サブスクライバは、スタンバイ・マスター・データベースからの更新をリスニングします。

ROUTE MASTER FullStoreName SUBSCRIBER FullStoreName

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

  • フェイルオーバーが発生したときのアクティブ・データベースからスタンバイ・データベースおよびスタンバイ・データベースからアクティブ・データベースへのルート

  • 読取り専用サブスクライバからアクティブおよびスタンバイ・データベースへのルート

アクティブ・スタンバイ・ペアを使用する場合、読取り専用サブスクライバがないアクティブ・スタンバイ・ペアに対してROUTEを少なくとも2回指定する必要があります。次に、アクティブ・スタンバイ・ペアの各読取り専用サブスクライバに対してROUTEを2回多く指定する必要があります。

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

MASTERIP MasterHost | SUBSCRIBERIP SubscriberHost

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

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

PRIORITY Priority

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

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

TIMEOUT Seconds

レプリケーション・エージェントがリモート・レプリケーション・エージェントからの応答を待機する最大時間(秒)。デフォルトは120秒です。

アクティブ・スタンバイ・ペアでは、アクティブ・マスター・データベースは、スタンバイ・マスター・データベースにメッセージを送信します。スタンバイ・マスター・データベースは、読取り専用サブスクライバにメッセージを送信します。

ノート: リモート・レプリケーション・エージェントからの応答の遅延の原因となる大規模なトランザクションの場合、エージェントは、トランザクションのサイズに基づいて、タイムアウトをスケーリングします。TIMEOUTを60秒以下に設定した場合、このスケーリングは無効になります。『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』「リモート・レプリケーション・エージェントからの応答の待機タイムアウトの設定」も参照してください。

説明

  • アクティブ・スタンバイ・ペアを作成した後、データベースの1つをアクティブ・データベースにします。そのためには、ttRepStateSet ('ACTIVE')をコールします。次に、ttRepAdminを使用して、アクティブ・データベースをセカンダリ・データベースに複製します。処理が完了すると、セカンダリ・データベースがスタンバイ・データベースになります。詳細は、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』「キャッシュ・グループがないアクティブ・スタンバイ・ペアの設定」を参照してください。

  • SUBSCRIBER句には、1つ以上の読取り専用サブスクライバ・データベースを指定します。最大127のサブスクライバ・データベースを指定できます。

  • アクティブ・マスター・データベースとスタンバイ・マスター・データベースの間のレプリケーションは、RETURN TWOSAFERETURN RECEIPTまたは非同期のいずれかに設定できます。RETURN TWOSAFEに設定すると、トランザクションは失われません。

  • 指定された表、順序およびキャッシュ・グループをレプリケーションから除外する場合、または指定された表、順序およびキャッシュ・グループのみを含めて他は除外する場合は、INCLUDEおよびEXCLUDE句を使用します。

  • アクティブ・スタンバイ・ペアにRETURN TWOSAFE属性があり、キャッシュ・グループをレプリケートしている場合、次のような状態のときにトランザクションが失敗する可能性があります。

    • レプリケートされるトランザクションにALTER TABLE文またはALTER CACHE GROUP文が含まれている。

    • トランザクションに、レプリケートされた表、レプリケートされたキャッシュ・グループまたはASYNCHRONOUS WRITETHROUGHキャッシュ・グループに対するINSERTUPDATEまたはDELETE文が含まれている。

  • アクティブ・スタンバイ・ペアを使用して読取り専用キャッシュ・グループおよびASYNCHRONOUS WRITETHROUGH(AWT)キャッシュ・グループをレプリケートできます。アクティブ・スタンバイ・ペアを使用してSYNCHRONOUS WRITETHROUGH(SWT)キャッシュ・グループまたはユーザー管理キャッシュ・グループをレプリケートすることはできません。

  • EXCLUDE句はAWTキャッシュ・グループに対して使用できません。

  • TimesTenでOracle Clusterwareを使用する場合は、CREATE ACTIVE STANDBY PAIR文は実行できません。

この例では、マスター・データベースがrep1およびrep2であるアクティブ・スタンバイ・ペアを作成します。サブスクライバrep3が1つあります。レプリケーションのタイプはRETURN RECEIPTです。また、この文では、PORTおよびTIMEOUT属性をマスター・データベースに対して設定します。

CREATE ACTIVE STANDBY PAIR rep1, rep2 RETURN RECEIPT
  SUBSCRIBER rep3
  STORE rep1 PORT 21000 TIMEOUT 30
  STORE rep2 PORT 22000 TIMEOUT 30;

NetworkOperation句を指定してネットワーク・インタフェースを制御します。

CREATE ACTIVE STANDBY PAIR rep1,rep2
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 rep2 ON "machine2" SUBSCRIBER rep1 ON "machine1"
MASTERIP "2.2.2.2" PRIORITY 1 SUBSCRIBERIP "1.1.1.1" PRIORITY 1;