ヘッダーをスキップ
Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド
リリース7.0
E05169-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

単純なレプリケーション・スキーム

この項では、マスター・データ・ストア内の単一表の内容をサブスクライバ・データ・ストアにレプリケートする単純なレプリケーション・スキームの設定方法について説明します。わかりやすくするために、両方のデータ・ストアは同じコンピュータに存在することとします。

図2.1 単純なレプリケーション・スキーム
単純なレプリケーション・スキーム[説明]

手順は次のとおりです。

手順1: マスター・データ・ストアおよびサブスクライバ・データ・ストアの作成

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というデータ・ストア名を使用する必要があります。

図2.2 マスター・データ・ストアおよびサブスクライバ・データ・ストア
マスター・データ・ストアおよびサブスクライバ・データ・ストア[説明]

masterdsは、次のように設定します。

他のすべての設定には、デフォルト値を使用します。

subscriberdsは、次のように設定します。

他のすべての設定には、デフォルト値を使用します。

手順2: 表およびレプリケーション・スキームの作成

図2.3 マスターからサブスクライバへのrepl.tabのレプリケート
マスターからサブスクライバへのrep1.tabのレプリケート[説明]

テキスト・エディタを使用して、repscheme.sqlというSQLファイルを作成し、次の文を入力します。

repscheme.sqlの内容は、次のようになります。

例2.1

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

手順3: レプリケーション・エージェントの起動

ttAdminユーティリティを使用して、マスターおよびサブスクライバのレプリケーション・エージェントを起動します。

> ttAdmin -repStart masterds

> ttAdmin -repStart subscriberds

図2.4 マスターおよびサブスクライバのレプリケーション・エージェント
マスターおよびサブスクライバのレプリケーション・エージェント[説明]

各ttAdmin -repStartコマンドの出力には、「Replication Manually Started: True」と表示されます。

例2.2

> 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

手順4: レプリケート表へのデータの挿入

コマンド・プロンプト・ウィンドウで、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.


注意: 環境によっては、サブスクライバでデータが使用可能になるまでに少し時間がかかる場合があります。

図2.5 サブスクライバ・データ・ストアへの変更のレプリケート
サブスクライバ・データ・ストアへの変更のレプリケート[説明]

masterdsデータ・ストア内のrepl.tab表に対してさらに変更を行うと、それらの変更はsubscriberdsデータ・ストア内の表にレプリケートされます。

masterdsからsubscriberdsにレプリケートできた場合は、「手順5: レプリケーション・スキームおよび表の削除」に進みます。そうでない場合は、「レプリケーションの問題」のトラブルシューティングのヒントを参照してください。

手順5: レプリケーション・スキームおよび表の削除

レプリケーションのテストを完了した後、ttIsqlを終了し、ttAdminユーティリティを使用してマスターおよびサブスクライバのレプリケーション・エージェントを停止します。

Command> exit

> ttAdmin -repStop masterds

> ttAdmin -repStop subscriberds

repl.tab表およびrepl.schemeレプリケーション・スキームをマスターおよびサブスクライバのデータ・ストアから削除するには、テキスト・エディタを使用して、次の内容を含む別のSQLファイルdropRepscheme.sqlを作成します。

例2.3

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