クラシック・レプリケーション・スキームの定義
クラシック・レプリケーション・スキームを設計した後、SQL文CREATE REPLICATION
を使用してそのスキームをデータベースに適用できます。CREATE REPLICATION
文を使用するには、ADMIN
権限が必要です。
表9-2に、レプリケーション・スキームのコンポーネントおよびこの章の内容に関連する句を示します。『Oracle TimesTen In-Memory Database SQLリファレンス』のCREATE REPLICATIONを参照してください。
表9-2 レプリケーション・スキームのコンポーネント
コンポーネント | 参照先 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ノート:
CREATE REPLICATION
文でのネーミング・エラーは、多くの場合、解決が困難であるため、要素名、データベース名、ホスト名に間違いがないよう時間をかけて十分に確認してください。
データベースで使用されるクラシック・レプリケーション・スキームは、システムを再起動しても有効です。クラシック・レプリケーション・スキームを変更するには、ALTER REPLICATION
文を使用します。クラシック・レプリケーション・スキームの変更を参照してください。
クラシック・レプリケーション・スキームおよびレプリケートされたオブジェクトの所有者
クラシック・レプリケーション・スキームとレプリケート・オブジェクトは、レプリケーション・スキームのすべてのデータベースで、同じユーザーによって所有されている必要があります。すべてのデータベースで所有者を共通にするには、CREATE REPLICATION
文にユーザーとレプリケーション・スキームを明示的に指定する必要があります。
たとえば、ユーザーrepl
によって所有されているrepscheme
という名前のレプリケーション・スキームを作成します。repscheme
のCREATE 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
ファイルのこのエントリはmasterds
のData Source Name
(DSN)を示す一方で、DataStore
値はmasterds
のパスを示します。
[masterds] DataStore=/tmp/masterds DatabaseCharacterSet=AL32UTF8 ConnectionCharacterSet=AL32UTF8