ヘッダーをスキップ

Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド リリース6.0 B25769-01 |
| 目次 | 索引

前へ | 次へ |

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

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

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

手順は次のとおりです。

- 手順1: マスター・データ・ストアおよびサブスクライバ・データ・ストアの作成
- 手順2: 表およびレプリケーション・スキームの作成
- 手順3: レプリケーション・エージェントの起動
- 手順4: レプリケート表へのデータの挿入
- 手順5: レプリケーション・スキームおよび表の削除

注意: アクセス制御を有効にしてTimesTenをインストールした場合、この項の手順を実行するには、データ・ストアに対するADMIN権限が必要です。詳細は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』のアクセス制御とroot以外のインストールに関する章を参照してください。

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

masterDSNおよびsubscriberDSNという2つのシステム・データソース（システムDSN）を作成します。『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のTimesTenデータ・ストアの作成に関する章を参照してください。

注意: レプリケーション・スキームに指定された各データ・ストアの名前は、データ・ストアに関するDSN定義内のData Store Path and Name属性に指定されたファイル名（パスなし）の接頭辞と一致する必要があります。Data Source Name属性に指定された名前を使用するレプリケーション・スキームは機能しません。混乱を避けるには、各DSN定義内のData Store Path and Name属性とData Source Name属性に同じ名前を使用します。たとえば、データ・ストア・パスがディレクトリ/サブディレクトリ/foo.ds0の場合は、CREATE REPLICATION文にfooというデータ・ストア名を使用する必要があります。

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

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

- データ・ストア・パスおよび名前:

       UNIX:      DataStore=/tmp/masterds
       Windows:   c:\temp\masterds

- 永続データのサイズ（MB）: 16
- 一時データのサイズ（MB）: 16

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

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

- データ・ストア・パスおよび名前:

       UNIX:      DataStore=/tmp/subscriberds
       Windows:   c:\temp\subscriberds

- 永続データのサイズ（MB）: 16
- 一時データのサイズ（MB）: 16

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

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

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

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

- 3つの列A、BおよびCを持つ空の表repl.tabを作成するためのCREATE TABLE文
- マスター・データ・ストアからサブスクライバにrepl.tab表をレプリケートするレプリケーション・スキームrepl.schemeを定義するためのCREATE REPLICATION文

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

##### 例2.1

    CREATE TABLE repl.tab (a SMALLINT NOT NULL,
                           b SMALLINT,
                           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 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