ALTER REPLICATION

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

TimesTen Classicの場合:

ALTER REPLICATION文では、レプリケーション要素の追加、変更、削除を行い、クラシック・レプリケーション・スキームに関連するデータベースのレプリケーション属性を変更します。

ほとんどのALTER REPLICATION処理は、レプリケーション・エージェントが停止している場合(ttAdmin -repStop)にのみサポートされます。ただし、レプリケーション・エージェントの実行中にサブスクライバ・データベースをレプリケーション・スキームに動的に追加することは可能です。詳細は、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』「クラシック・レプリケーション・スキームの変更」を参照してください。

必要な権限

ADMIN

TimesTen Scaleoutでの使用

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

SQL構文

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

ALTER REPLICATION [Owner.]ReplicationSchemeName
  ElementOperation [...] | StoreOperation |
  NetworkOperation [...]

ElementOperationを1回以上指定します。

ADD ELEMENT ElementName
  { DATASTORE | 
  { TABLE [Owner.]TableName [CheckConflicts] } | 
    SEQUENCE [Owner.]SequenceName }
  { MASTER | PROPAGATOR } FullStoreName
  { SUBSCRIBER FullStoreName [,... ] [ReturnServiceAttribute] } [ ... ] 
  { INCLUDE | EXCLUDE } { TABLE [[Owner.]TableName[,...]] | 
    SEQUENCE [[Owner.]SequenceName[,...]] } [,...]

ALTER ELEMENT { ElementName | * IN FullStoreName }
  ADD SUBSCRIBER FullStoreName [,...] [ReturnServiceAttribute] |
  ALTER SUBSCRIBER FullStoreName [,...]|
  SET [ReturnServiceAttribute] 
  DROP SUBSCRIBER FullStoreName [,... ]

ALTER ELEMENT * IN FullStoreName
  SET { MASTER | PROPAGATOR } FullStoreName

ALTER ELEMENT ElementName
  {SET NAME NewElementName | SET CheckConflicts}

ALTER ELEMENT ElementName 
  { INCLUDE | EXCLUDE } { TABLE [Owner.]TableName |
    SEQUENCE [Owner.]SequenceName }[,...] 

DROP ELEMENT { ElementName | * IN FullStoreName }

CheckConflictsは、TABLE要素をレプリケートした場合にのみ設定できます。構文の要件は、「CHECK CONFLICTS」を参照してください。

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

{ RETURN RECEIPT [BY REQUEST] | NO RETURN }

StoreOperation句:

ADD STORE FullStoreName [StoreAttribute [... ]]
ALTER STORE FullStoreName SET StoreAttribute [... ]

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

NetworkOperationを1回以上指定します。

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

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

パラメータ

パラメータ 説明

[Owner.]ReplicationSchemeName

クラシック・レプリケーション・スキームに割り当てる名前です。

ADD ELEMENT ElementName

新しい要素を既存のクラシック・レプリケーション・スキームに追加します。ElementNameは、30文字以下の識別子です。DATASTORE要素を使用する場合、ElementNameの最初の20文字を、他のDATASTORE要素名に対して一意にする必要があります。

要素がDATASTOREの場合、すべての表がデータベースに含まれます。データベースの一部にSEQUENCE要素が含まれる場合、その要素のRETURNサービスはこの文では変更されません。

ADD ELEMENT ElementName DATASTORE

{INCLUDE | EXCLUDE}

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

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

新しいDATASTORE要素を既存のクラシック・レプリケーション・スキームに追加します。ElementNameは、30文字以下の識別子です。DATASTORE要素を使用する場合、ElementNameの最初の20文字を、他のDATASTORE要素名に対して一意にする必要があります。

INCLUDEは、指定された表と順序のみをデータベースに含めます。INCLUDE句は、オブジェクト型(表または順序)ごとに1つ使用します。

EXCLUDEは、指定された表と順序を除外して、すべての表と順序をデータベースに含めます。EXCLUDE句は、オブジェクト型(表または順序)ごとに1つ使用します。

要素が順序の場合、RETURN属性は適用されず、競合チェックはサポートされず、循環する順序はエラーを返します。

ADD SUBSCRIBER FullStoreName

追加のサブスクライバ・データベースを指定します。FullStoreNameは、DSNの記述のDataStore属性で指定したデータベース・ファイル名です。

ALTER ELEMENT * IN FullStoreName

SET { MASTER | PROPAGATOR } FullStoreName

FullStoreNameMASTERまたはPROPAGATORであるすべての要素を変更します。FullStoreNameは、DSNの記述のDataStore属性で指定したデータベース・ファイル名です。

この構文を一連の要素名に使用すると、次の操作を実行できます。

  • サブスクライバの追加、変更、削除。

  • 要素セットのMASTERまたはPROPAGATORのステータスの設定。

変更されるデータベースの一部にSEQUENCE要素が含まれる場合、その要素のRETURNサービスはこの文では変更されません。

ALTER ELEMENT ElementName

サブスクライバが追加または削除される要素の名前です。

ALTER ELEMENT

ElementName1

SET NAME ElementName2

ElementName1ElementName2の名前に変更します。TABLE型の要素の名前のみを変更できます。

ALTER ELEMENT ElementName

{INCLUDE|EXCLUDE}

{TABLE [Owner.]TableName |

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

ElementNameは、変更する要素の名前です。

INCLUDEは、指定された表と順序をデータベースに追加します。INCLUDE句は、オブジェクト型(表または順序)ごとに1つ使用します。

EXCLUDEは、指定された表と順序をデータベースから削除します。EXCLUDE句は、オブジェクト型(表または順序)ごとに1つ使用します。

要素が順序の場合、RETURN属性は適用されず、競合チェックはサポートされず、循環する順序はエラーを返します。

ALTER SUBSCRIBER FullStoreName

SET RETURN RECEIPT

[BY REQUEST]|NO RETURN

RETURN RECEIPTサービスを有効化、無効化または変更するように、サブスクライバ・データベースを変更します。FullStoreNameは、DSNの記述のDataStore属性で指定したデータベース・ファイル名です。

CheckConflicts

データベース間でTABLE要素を双方向にレプリケートするための同時書込みで、レプリケーションの競合をチェックします。DATASTORE型の要素をレプリケートする場合は、競合をチェックできません。「CHECK CONFLICTS」を参照してください。

COMPRESS TRAFFIC {ON | OFF}

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

CONFLICT REPORTING SUSPEND AT Value

競合解消のレポートを一時停止します。

Valueは、負ではない整数です。競合のレポートは、競合の割合がValueを超えると一時的に停止されます。デフォルトは0です。これは、競合レポートが常にオンになり、一時停止されないことを意味します。

この句は、表レベルのレプリケーションで有効です。

CONFLICT REPORTING RESUME AT Value

競合解消のレポートを再開します。

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

この句は、表レベルのレプリケーションで有効です。

DISABLE RETURN {SUBSCRIBER | ALL} NumFailures

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

DISABLE RETURNが指定され、RESUME RETURNが指定されていない場合、データベースのレプリケーション・エージェントが再起動されるまでRETURNサービスはオフのままです。

DURABLE COMMIT {ON | OFF}

DurableCommits一般接続属性設定を上書きします。DURABLE COMMIT ONは、レプリケーション・エージェントが実行中か停止しているかに関係なく、永続コミットを有効にします。

DROP ELEMENT * IN FullStoreName

FullStoreNameMASTERであるすべての要素のレプリケーションの記述を削除します。FullStoreNameは、DSNの記述のDataStore属性で指定したデータベース・ファイル名です。

DROP ELEMENT ElementName

ElementNameのレプリケーションの記述を削除します。

DROP SUBSCRIBER FullStoreName

指定したサブスクライバ・データベースに更新が送信されないように指定します。この処理は、クラシック・レプリケーション・スキームの持つサブスクライバが1つのみの場合に失敗します。FullStoreNameは、DSNの記述のDataStore属性で指定したデータベース・ファイル名です。

FAILTHRESHOLD Value

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

0を指定すると、この上限は設定されません。これがデフォルトです。

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

FullStoreName

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

  • SELF

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

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

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

DataStoreName [ON Host]

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

LOCAL COMMIT ACTION {NO ACTION | COMMIT}

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

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

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

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

MASTER FullStoreName

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

NO RETURN

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

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

PORT PortNumber

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

相互にレプリケートするすべてのTimesTenデータベースで、同じポート番号を使用する必要があります。

PROPAGATOR FullStoreName

レプリケートされた更新を受け取って他のデータベースに渡すデータベース。

RESUME RETURN Milliseconds

DISABLE RETURNによってRETURNサービスのブロッキングが無効になった場合、この属性によって、RETURNサービスのブロッキングを再度有効にするタイミングに関するポリシーを設定します。RETURNサービスのブロッキングは、障害が発生したサブスクライバが、Millisecondsで指定された時間よりも短い間隔でレプリケートされた更新を確認するとすぐに再度有効になります。

DISABLE RETURNが指定され、RESUME RETURNが指定されていない場合、データベースのレプリケーション・エージェントが再起動されるまでRETURNサービスはオフのままです。

RETURN RECEIPT [BY REQUEST]

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

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

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

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

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

RETURN TWOSAFE [BY REQUEST]

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

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

RETURN WAIT TIME Seconds

RETURNサービスの応答を待機する秒数を指定します。デフォルト値は10秒です。値が0(ゼロ)の場合は、タイムアウトがないことを意味します。ttRepSyncSetプロシージャにreturnWaitパラメータを設定してアプリケーションからコールすることによって、このタイムアウト設定を上書きできます。

SET {MASTER | PROPAGATOR} FullStoreName

任意のデータベースを任意の要素のMASTERまたはPROPAGATORに設定します。FullStoreNameは、データベースのファイルの基本名にする必要があります。

SUBSCRIBER FullStoreName

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

TABLE DEFINITION CHECKING {EXACT|RELAXED}

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

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

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

デフォルトはRELAXEDです。

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

TIMEOUT Seconds

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

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

ADD ROUTE MASTER FullStoreName SUBSCRIBER FullStoreName

レプリケーション・スキームにNetworkOperationを追加します。各サブスクライバ・ストアへのすべてのアウトバウンド接続に対してマスター・ストアが使用するネットワーク・インタフェースを制御できます。

複数回指定できます。

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

DROP ROUTE MASTER FullStoreName SUBSCRIBER FullStoreName

クラシック・レプリケーション・スキームからNetworkOperationを削除します。

複数回指定できます。

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

MASTERIP MasterHost | SUBSCRIBERIP SubscriberHost

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

句は複数回指定できます。ADDおよびDROP ROUTE MASTERの両方に対して有効です。

PRIORITY Priority

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

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

説明

  • ALTER ELEMENT DROP SUBSCRIBERは、特定のレプリケーション要素のサブスクライバを削除します。

  • レプリケーション要素の名前が、別のデータベースにすでに定義されているレプリケーション要素の名前と競合する場合は、ALTER ELEMENT SET NAMEを使用してレプリケーション要素の名前を変更できます。SET NAMEでは* IN FullStoreNameは使用できません。FullStoreNameは、データベースのファイルの基本名である必要があります。たとえば、データベースのファイル名がdata.ds0の場合、ファイルの基本名はdataになります。

  • ALTER ELEMENT SET MASTERを使用して、レプリケーション要素のマスター・データベースを変更できます。MASTER操作には、* IN FullStoreNameオプションを使用する必要があります。つまり、マスター・データベースは、そのレプリケーション要素すべての所有権を送信して、マスター・ロールを完全に放棄する必要があります。通常、このオプションは、(共通の)MASTERの障害の後に、SUBSCRIBERデータベースで要求されるALTER REPLICATION文で使用します。

  • マスター要素の所有権をサブスクライバに送信するには、次の手順を実行します。

    1. レプリケートされた各表に対してALTER REPLICATION DROP ELEMENTを実行し、レプリケートされた要素を手動で削除します。

    2. 新しく指定したMASTER/SUBSCRIBERロールを付けてALTER REPLICATION ADD ELEMENTを使用して、各表をレプリケーション・スキームに追加します。

  • ALTER REPLICATION ALTER ELEMENT SET MASTERでは、以前のマスターは自動的にはサブスクライバとしてスキームに保持されません。保持する必要がある場合は、ALTER REPLICATION ALTER ELEMENT ADD SUBSCRIBER文を実行します。

    ノート:

    ALTER ELEMENT DROP MASTERという文はありません。各レプリケーション要素のMASTERデータベースは1つのみである必要があり、現在指定されているMASTERはレプリケーション・スキームから削除できません。

  • NetworkOperation 句を使用する前に、レプリケーション・エージェントを停止してください。

  • 次のレプリケーション・スキームはALTER REPLICATION文で変更できません。

    • アクティブ・スタンバイ・ペア。かわりに、ALTER ACTIVE STANDBY PAIRを使用します。

    • クラスタウェア管理のアクティブ・スタンバイ・ペア。かわりに、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』「スキーマの変更」で説明されているタスクを実行します。

この例では、データベースwest上で更新してデータベースeastにレプリケートする追加の表westleadsのクラシック・レプリケーション・スキームを設定します。

ALTER REPLICATION r1
   ADD ELEMENT e3 TABLE westleads
     MASTER west ON "westcoast"
     SUBSCRIBER east ON "eastcoast";

この例では、表westleadsにサブスクライバ(backup)を追加します。

ALTER REPLICATION r1
   ALTER ELEMENT e3
     ADD SUBSCRIBER backup ON "backupserver";

この例では、表westleadsの要素名をe3からnewelementnameに変更します。

ALTER REPLICATION r1
   ALTER ELEMENT e3
     SET NAME newelementname;

この例では、現在のマスターwestのすべての要素について、newwestをマスターに指定します。

ALTER REPLICATION r1
   ALTER ELEMENT * IN west
     SET MASTER newwest;

この要素は、eastのポート番号を変更します。

ALTER REPLICATION r1
   ALTER STORE east ON "eastcoast" SET PORT 22251;

この例では、my.tab1表をmy.rep1レプリケーション・スキームのds1データベース要素に追加します。

ALTER REPLICATION my.rep1
  ALTER ELEMENT ds1 DATASTORE
     INCLUDE TABLE my.tab1;

この例では、ds1データベースをmy.rep1レプリケーション・スキームに追加します。データベースにmy.tab2表を含めます。

ALTER REPLICATION my.rep1
  ADD ELEMENT ds1 DATASTORE
     MASTER rep2
     SUBSCRIBER rep1, rep3
     INCLUDE TABLE my.tab2;

この例では、ds2データベースをレプリケーション・スキームに追加しますが、my.tab1表は除外されます。

ALTER REPLICATION my.rep1
  ADD ELEMENT ds2 DATASTORE
     MASTER rep2
     SUBSCRIBER rep1
     EXCLUDE TABLE my.tab1;

NetworkOperation句を追加します:

ALTER REPLICATION r
ADD ROUTE MASTER rep1 ON "machine1" SUBSCRIBER rep2 ON "machine2"
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句を削除します:

ALTER REPLICATION r
DROP ROUTE MASTER repl ON "machine1" SUBSCRIBER rep2 ON "machine2"
MASTERIP "1.1.1.1" SUBSCRIBERIP "2.2.2.2"
MASTERIP "3.3.3.3" SUBSCRIBERIP "4.4.4.4";

関連項目

データベースから表を削除するには、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』「クラシック・レプリケーション・スキームでのレプリケートされた表の変更」を参照してください。