1つのサブスクライバがあるアクティブ・スタンバイ・ペアの構成

単一サブスクライバがあるアクティブ・スタンバイ・ペアを作成できます。

この項では、1つのサブスクライバを持つアクティブ・スタンバイ・ペアの作成方法について説明します。アクティブ・データベースはmaster1です。スタンバイ・データベースはmaster2です。サブスクライバ・データベースはsubscriber1です。わかりやすくするために、すべてのデータベースは同じコンピュータserver1に存在することとします。

図2-1にこの構成を示します。

図2-1 1つのサブスクライバがあるアクティブ・スタンバイ・ペア

図2-1の説明が続きます。
「図2-1 1つのサブスクライバがあるアクティブ・スタンバイ・ペア」の説明
  1. マスター・データベースおよびサブスクライバ・データベースのDSNを作成します。

    Oracle TimesTen In-Memory Databaseオペレーション・ガイドTimesTenデータベースの管理に従って、master1master2およびsubscriber1というDSNを作成します。

    テキスト・エディタを使用して、次のodbc.iniファイルを作成します:

    [master1]
    DataStore=/tmp/master1
    DatabaseCharacterSet=AL32UTF8
    ConnectionCharacterSet=AL32UTF8
    
    [master2]
    DataStore=/tmp/master2
    DatabaseCharacterSet=AL32UTF8
    ConnectionCharacterSet=AL32UTF8
    
    [subscriber1]
    DataStore=/tmp/subscriber1
    DatabaseCharacterSet=AL32UTF8
    ConnectionCharacterSet=AL32UTF8
  2. オプション: レプリケーション・エージェント間の通信を暗号化するためにTLSを有効にします。

    接続を介した通信を暗号化するために相互認証を必要とするTransport Layer Security (TLS)を使用して、レプリケーション・エージェント(およびレプリケーション・エージェントと通信するユーティリティ)間のセキュアなTCP/IPネットワーク接続を有効にできます。証明書を生成することもできます。『Oracle TimesTen In-Memory Databaseセキュリティ・ガイド』TimesTenレプリケーションのTransport Layer Securityを参照してください。

  3. いずれかのマスター・データベースで表を作成します。

    1. ttIsqlユーティリティを使用して、master1データベースに接続します。

      % ttIsql master1
       
      Copyright (c) 1996-2011, Oracle.  All rights reserved.
      Type ? or "help" for help, type "exit" to quit ttIsql.
       
      connect "DSN=master1";
      Connection successful: DSN=master1;UID=timesten;DataStore=/tmp/master1;
      DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;
      (Default setting AutoCommit=1)
      Command>
    2. employees表を作成します。

      Command> CREATE TABLE employees
          ( employee_id   NUMBER(6) PRIMARY KEY,
           first_name     VARCHAR2(20),
           last_name      VARCHAR2(25) NOT NULL,
           email          VARCHAR2(25) NOT NULL UNIQUE,
           phone_number   VARCHAR2(20),
           hire_date      DATE NOT NULL,
           job_id         VARCHAR2(10) NOT NULL,
           salary         NUMBER(8,2),
           commission_pct NUMBER(2,2),
           manager_id     NUMBER(6),
           department_id  NUMBER(4)
        ) ;
  4. アクティブ・スタンバイ・ペアを定義します。

    次は、master1で、アクティブ・スタンバイ・ペアを定義します。

    Command> CREATE ACTIVE STANDBY PAIR master1, master2
            SUBSCRIBER subscriber1;

    アクティブ・スタンバイ・ペアのレプリケーション・スキームの定義を参照してください。

  5. マスター・データベースでレプリケーション・エージェントを起動します。

    次は、master1で、レプリケーション・エージェントを起動します。

    Command> CALL ttRepStart;

    「レプリケーション・エージェントの起動および停止」を参照してください。

  6. マスター・データベースの状態をACTIVEに設定します。

    アクティブ・スタンバイ・ペアの新しいデータベースの状態は、アクティブ・データベースが設定されるまでIDLEです。

    ttRepStateSet組込みプロシージャを使用して、master1をアクティブ・データベースとして指定します。

    CALL ttRepStateSet('ACTIVE');

    master1の状態を確認します。

    Command> CALL ttRepStateGet;
    < ACTIVE >
    1 row found.
  7. アクティブ・データベースでのユーザーの作成

    ttuserというパスワードを持つユーザーttuserを作成し、ttuserADMIN権限を付与します。ADMIN権限を持つユーザーの作成は、次のステップのアクセス制御で必要です。

    Command> CREATE USER ttuser IDENTIFIED BY ttuser;
    User created.
    Command> GRANT ADMIN TO ttuser;
  8. アクティブ・データベースをスタンバイ・データベースに複製します。

    ttIsqlを終了し、ttuser (ADMIN権限を持つ、作成されたユーザー)としてttRepAdminユーティリティを-duplicateオプションとともに使用して、アクティブ・データベースをスタンバイ・データベースに複製します。2つの異なるホストを使用している場合は、ターゲット・ホストからttRepAdminコマンドを入力してください。

    % ttRepAdmin -duplicate -from master1 -host server1 -uid ttuser -pwd ttuser 
    master2
  9. スタンバイ・データベースでレプリケーション・エージェントを起動します。

    ttIsqlを使用してmaster2データベースに接続し、レプリケーション・エージェントを起動します。

    % ttIsql master2
    Copyright (c) 1996-2011, Oracle.  All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
     
    connect "DSN=master2";
    Connection successful: DSN=master2;UID=timesten;DataStore=/tmp/master2;
    DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;
    (Default setting AutoCommit=1)
    
    Command> CALL ttRepStart;

    スタンバイ・データベースのレプリケーション・エージェントを起動すると、状態が自動的にSTANDBYに設定されます。master2の状態を確認します。

    Command> CALL ttRepStateGet;
    < STANDBY >
    1 row found.
  10. サブスクライバへのスタンバイ・データベースの複製

    ttIsqlを終了し、ttuser (ADMIN権限を持つ、作成されたユーザー)としてttRepAdminユーティリティを使用し、スタンバイ・データベースをサブスクライバ・データベースに複製します。

    % ttRepAdmin -duplicate -from master2 -host server1 -uid ttuser -pwd ttuser 
    subscriber1
  11. サブスクライバでレプリケーション・エージェントを起動します。

    ttIsqlを使用してsubscriber1に接続し、レプリケーション・エージェントを起動します。subscriber1の状態を確認します。サブスクライバ・データベースのレプリケーション・エージェントを開始すると、自動的に、サブスクライバ・データベースの状態が「IDLE」に設定されます。すべてのサブスクライバ・データベースの状態が、「IDLE」に設定されます。

    % ttIsql subscriber1
     
    Copyright (c) 1996-2011, Oracle.  All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
     
    connect "DSN=subscriber1";
    Connection successful: DSN=subscriber1;UID=timesten;DataStore=/stmp/subscriber1;
    DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;
    (Default setting AutoCommit=1)
    
    Command> CALL ttRepStart;
    
    Command> call ttRepStateGet;
    < IDLE >
    1 row found.
  12. アクティブ・データベースにある表にデータを挿入します。

    1. ttIsqlユーティリティを使用して、master1データベースに接続します。

      % ttIsql master1
       
      Copyright (c) 1996-2011, Oracle.  All rights reserved.
      Type ? or "help" for help, type "exit" to quit ttIsql.
       
      connect "DSN=master1";
      Connection successful: DSN=master1;UID=timesten;DataStore=/tmp/master1;
      DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;
      (Default setting AutoCommit=1)
      Command>
    2. master1employees表に行を1つ挿入します。

      Command> INSERT INTO employees VALUES
            ( 202, 
              'Pat', 
              'Fay',
              'PFAY',
              '603-123-7777',
              TO_DATE('17-AUG-1997', 'dd-MON-yyyy'),
              'MK_REP',
              6000,
              NULL,
              201,
              20
         );
      1 row inserted.
      Command> SELECT * FROM employees;
      < 202, Pat, Fay, PFAY, 603-123-7777, 1997-08-17 00:00:00, MK_REP, 
       6000, <NULL>, 201, 20 >
      1 row found.
    3. master2およびsubscriber1に挿入がレプリケートされたことを確認します。ttIsqlを使用して、master2に接続します。

      % ttIsql master2
      Copyright (c) 1996-2011, Oracle.  All rights reserved.
      Type ? or "help" for help, type "exit" to quit ttIsql.
       
      connect "DSN=master2";
      Connection successful: DSN=master2;UID=timesten;DataStore=/tmp/master2;
      DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;
      (Default setting AutoCommit=1)
    4. データがmaster2にレプリケートされていることを確認します。

      Command> SELECT * FROM employees;
      < 202, Pat, Fay, PFAY, 603-123-7777, 1997-08-17 00:00:00, MK_REP, 
      6000, <NULL>, 201, 20 >
      1 row found.
    5. 同じステップをsubscriber1で実行して、データがサブスクライバにレプリケートされていることを確認します。

  13. アクティブ・スタンバイ・ペアおよび表を削除します。

    1. ttIsqlを使用して各データベースに接続し、各データベースでレプリケーション・エージェントを終了します。

      Command> CALL ttRepStop;
    2. 各データベースでアクティブ・スタンバイ・ペアを削除します。その後、アクティブ・スタンバイ・ペアを削除した任意のデータベースにあるemployees表を削除できます。

      Command> DROP ACTIVE STANDBY PAIR;
      Command> DROP TABLE employees;