クラシック・レプリケーション・スキームの定義

クラシック・レプリケーション・スキームを設計した後、SQL文CREATE REPLICATIONを使用してそのスキームをデータベースに適用できます。CREATE REPLICATION文を使用するには、ADMIN権限が必要です。

表9-2に、レプリケーション・スキームのコンポーネントおよびこの章の内容に関連する句を示します。『Oracle TimesTen In-Memory Database SQLリファレンス』CREATE REPLICATIONを参照してください。

表9-2 レプリケーション・スキームのコンポーネント

コンポーネント 参照先

CREATE REPLICATION Owner.SchemeName

クラシック・レプリケーション・スキームおよびレプリケートされたオブジェクトの所有者

ELEMENT ElementName ElementType

レプリケーション要素の定義

[CheckConflicts]

表要素に対するレプリケーション競合の確認

{MASTER|PROPAGATOR} DatabaseName ON "HostName"

データベース名

[TRANSMIT {NONDURABLE|DURABLE}]

DATASTORE要素に対する送信永続性の設定

SUBSCRIBER DatabaseName ON "HostName"

データベース名

[ReturnServiceAttribute]

クラシック・レプリケーション・スキームでのRETURNサービスの使用

INCLUDE|EXCLUDE

DATASTORE要素の定義

STORE DatabaseName DataStoreAttributes

クラシック・レプリケーション・スキームでのSTORE属性の設定

[NetworkOperation]

クラシック・レプリケーション・スキーム用のネットワーク操作の構成

ノート:

CREATE REPLICATION文でのネーミング・エラーは、多くの場合、解決が困難であるため、要素名、データベース名、ホスト名に間違いがないよう時間をかけて十分に確認してください。

データベースで使用されるクラシック・レプリケーション・スキームは、システムを再起動しても有効です。クラシック・レプリケーション・スキームを変更するには、ALTER REPLICATION文を使用します。クラシック・レプリケーション・スキームの変更を参照してください。

クラシック・レプリケーション・スキームおよびレプリケートされたオブジェクトの所有者

クラシック・レプリケーション・スキームとレプリケート・オブジェクトは、レプリケーション・スキームのすべてのデータベースで、同じユーザーによって所有されている必要があります。すべてのデータベースで所有者を共通にするには、CREATE REPLICATION文にユーザーとレプリケーション・スキームを明示的に指定する必要があります。

たとえば、ユーザーreplによって所有されているrepschemeという名前のレプリケーション・スキームを作成します。repschemeCREATE REPLICATION文の先頭行は次のようになります。

CREATE REPLICATION rep1.repscheme

データベース名

クラシック・レプリケーション・スキームでのデータベースの3つの役割を示します。

  • マスター: アプリケーションは、マスター・データベースを更新します。マスターは、更新をプロパゲータに送信するか、またはサブスクライバに直接送信します。

  • プロパゲータ: プロパゲータ・データベースは、マスター・データベースから更新を受信し、受信した更新をサブスクライバ・データベースに送信します。

  • サブスクライバ: サブスクライバは、プロパゲータまたはマスターから更新を受信します。

クラシック・レプリケーション・スキームを定義する前に、そのレプリケーション・スキームのデータベースのデータ・ソース名(DSN)を定義する必要があります。UNIXまたはLinuxプラットフォームの場合は、odbc.iniファイルを作成します。例については、「1つのマスターと1つのサブスクライバがあるクラシック・レプリケーション・スキームの構成」を参照してください。

クラシック・レプリケーション・スキームで指定された各データベースの名前は、DSN定義内のDataStoreデータ・ストア属性で指定された、パスを除くデータベース・ファイル名の接頭辞と一致する必要があります。各DSN定義内のDataStoreデータ・ストア属性とData Source Nameデータ・ストア属性に同じ名前を使用します。データベースのパスがdirectory/subdirectory/foo.ds0の場合、使用するデータベース名はfooになります。たとえば、odbc.iniファイルのこのエントリはmasterdsData Source Name (DSN)を示す一方で、DataStore値はmasterdsのパスを示します。

[masterds]
DataStore=/tmp/masterds
DatabaseCharacterSet=AL32UTF8
ConnectionCharacterSet=AL32UTF8