この項では、マスター・データ・ストア内の単一表の内容をサブスクライバ・データ・ストアにレプリケートする単純なレプリケーション・スキームの設定方法について説明します。わかりやすくするために、両方のデータ・ストアは同じコンピュータに存在することとします。
手順は次のとおりです。
masterDSN およびsubscriberDSN という2つのシステム・データソース(システムDSN)を作成します。『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のTimesTenデータ・ストアの作成に関する説明を参照してください。
注意: | レプリケーション・スキームで指定された各データ・ストアの名前は、そのデータ・ストアのDSN定義内のDataStore属性で指定された(パスを除く)ファイル名の接頭辞と一致する必要があります。Data Source Name属性で指定された名前を使用しているレプリケーション・スキームは機能しません。混乱を避けるには、各DSN定義内のDataStore属性とData Source Name属性に同じ名前を使用します。たとえば、データ・ストア・パスがdirectory/subdirectory/foo.ds0 の場合、CREATE REPLICATION文ではfoo というデータ・ストア名を使用する必要があります。 |
masterds
は、次のように設定します。
他のすべての設定には、デフォルト値を使用します。
subscriberds
は、次のように設定します。
他のすべての設定には、デフォルト値を使用します。
repl.tab
のレプリケート テキスト・エディタを使用して、repscheme.sql
というSQLファイルを作成し、次の文を入力します。
repscheme.sql
の内容は、次のようになります。
CREATE TABLE repl.tab (a NUMBER NOT NULL,
b NUMBER,
c CHAR(8),
PRIMARY KEY (a));
CREATE REPLICATION repl.repscheme
ELEMENT e TABLE repl.tab
MASTER masterds
SUBSCRIBER subscriberds;
コマンド・プロンプト・ウィンドウを開き、ttIsqlユーティリティを使用してrepscheme.sql
ファイルに指定されているSQLコマンドをマスターおよびサブスクライバの両方のデータ・ストアに適用します。
> ttIsql -f repscheme.sql masterds
> ttIsql -f repscheme.sql subscriberds
ttAdminユーティリティを使用して、マスターおよびサブスクライバのレプリケーション・エージェントを起動します。
> ttAdmin -repStart masterds
> ttAdmin -repStart subscriberds
各ttAdmin -repStart
コマンドの出力には、「Replication Manually Started: True」と表示されます。
> ttAdmin -repStart masterds
RAM Residence Policy : inUse
Manually Loaded In Ram : False
Replication Agent Policy : manual
Replication Manually Started : True
Oracle Agent Policy : manual
Oracle Agent Manually Started : False
> ttAdmin -repStart subscriberds
RAM Residence Policy : inUse
Manually Loaded In Ram : False
Replication Agent Policy : manual
Replication Manually Started : True
Oracle Agent Policy : manual
Oracle Agent Manually Started : False
コマンド・プロンプト・ウィンドウで、ttIsqlを使用してマスター・データ・ストアに接続し、INSERTコマンドでrepl.tab
表に行を挿入します。
> ttIsql masterds
Command> INSERT INTO repl.tab VALUES (1, 22, `Hello');
Command> INSERT INTO repl.tab VALUES (3, 86, `World');
サブスクライバ用に2つ目のコマンド・プロンプト・ウィンドウを開き、サブスクライバ・データ・ストアに接続してrepl.tab
表の内容を確認します。
> ttIsql subscriberds
Command> SELECT * FROM repl.tab;
< 1, 22, Hello>
< 3, 86, World>
2 rows found.
注意: | 環境によっては、サブスクライバでデータが使用可能になるまでに少し時間がかかる場合があります。 |
masterds
データ・ストア内のrepl.tab
表に対してさらに変更を行うと、それらの変更はsubscriberds
データ・ストア内の表にレプリケートされます。
masterds
からsubscriberds
にレプリケートできた場合は、「手順5: レプリケーション・スキームおよび表の削除」に進みます。そうでない場合は、「レプリケーションの問題」のトラブルシューティングのヒントを参照してください。
レプリケーションのテストを完了した後、ttIsqlを終了し、ttAdminユーティリティを使用してマスターおよびサブスクライバのレプリケーション・エージェントを停止します。
Command> exit
> ttAdmin -repStop masterds
> ttAdmin -repStop subscriberds
repl.tab
表およびrepl.scheme
レプリケーション・スキームをマスターおよびサブスクライバのデータ・ストアから削除するには、テキスト・エディタを使用して、次の内容を含む別のSQLファイルdropRepscheme.sql
を作成します。
DROP REPLICATION repl.scheme;
DROP TABLE repl.tab;
注意: | レプリケート表を削除する前に、レプリケーション・スキームを削除する必要があります。そうしない場合、「Cannot drop replicated table or index」というエラーを受信します。 |
コマンド・プロンプト・ウィンドウで、ttIsqlユーティリティを使用して、dropRepscheme.sql
ファイルに指定されているSQLコマンドをマスターおよびサブスクライバの両方のデータ・ストアに適用します。
> ttIsql -f dropRepscheme.sql masterds
> ttIsql -f dropRepscheme.sql subscriberds