1つのサブスクライバがあるアクティブ・スタンバイ・ペアの構成
単一サブスクライバがあるアクティブ・スタンバイ・ペアを作成できます。
この項では、1つのサブスクライバを持つアクティブ・スタンバイ・ペアの作成方法について説明します。アクティブ・データベースはmaster1
です。スタンバイ・データベースはmaster2
です。サブスクライバ・データベースはsubscriber1
です。わかりやすくするために、すべてのデータベースは同じコンピュータserver1
に存在することとします。
図2-1にこの構成を示します。
-
マスター・データベースおよびサブスクライバ・データベースのDSNを作成します。
Oracle TimesTen In-Memory Databaseオペレーション・ガイドのTimesTenデータベースの管理に従って、
master1
、master2
および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
-
オプション: レプリケーション・エージェント間の通信を暗号化するためにTLSを有効にします。
接続を介した通信を暗号化するために相互認証を必要とするTransport Layer Security (TLS)を使用して、レプリケーション・エージェント(およびレプリケーション・エージェントと通信するユーティリティ)間のセキュアなTCP/IPネットワーク接続を有効にできます。証明書を生成することもできます。『Oracle TimesTen In-Memory Databaseセキュリティ・ガイド』のTimesTenレプリケーションのTransport Layer Securityを参照してください。
-
いずれかのマスター・データベースで表を作成します。
-
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>
-
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) ) ;
-
-
アクティブ・スタンバイ・ペアを定義します。
次は、
master1
で、アクティブ・スタンバイ・ペアを定義します。Command> CREATE ACTIVE STANDBY PAIR master1, master2 SUBSCRIBER subscriber1;
アクティブ・スタンバイ・ペアのレプリケーション・スキームの定義を参照してください。
-
マスター・データベースでレプリケーション・エージェントを起動します。
次は、
master1
で、レプリケーション・エージェントを起動します。Command> CALL ttRepStart;
「レプリケーション・エージェントの起動および停止」を参照してください。
-
マスター・データベースの状態を
ACTIVE
に設定します。アクティブ・スタンバイ・ペアの新しいデータベースの状態は、アクティブ・データベースが設定されるまで
IDLE
です。ttRepStateSet
組込みプロシージャを使用して、master1
をアクティブ・データベースとして指定します。CALL ttRepStateSet('ACTIVE');
master1
の状態を確認します。Command> CALL ttRepStateGet; < ACTIVE > 1 row found.
-
アクティブ・データベースでのユーザーの作成
ttuser
というパスワードを持つユーザーttuser
を作成し、ttuser
にADMIN
権限を付与します。ADMIN
権限を持つユーザーの作成は、次のステップのアクセス制御で必要です。Command> CREATE USER ttuser IDENTIFIED BY ttuser; User created. Command> GRANT ADMIN TO ttuser;
-
アクティブ・データベースをスタンバイ・データベースに複製します。
ttIsql
を終了し、ttuser
(ADMIN
権限を持つ、作成されたユーザー)としてttRepAdmin
ユーティリティを-duplicate
オプションとともに使用して、アクティブ・データベースをスタンバイ・データベースに複製します。2つの異なるホストを使用している場合は、ターゲット・ホストからttRepAdmin
コマンドを入力してください。% ttRepAdmin -duplicate -from master1 -host server1 -uid ttuser -pwd ttuser master2
-
スタンバイ・データベースでレプリケーション・エージェントを起動します。
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.
-
サブスクライバへのスタンバイ・データベースの複製
ttIsql
を終了し、ttuser
(ADMIN
権限を持つ、作成されたユーザー)としてttRepAdmin
ユーティリティを使用し、スタンバイ・データベースをサブスクライバ・データベースに複製します。% ttRepAdmin -duplicate -from master2 -host server1 -uid ttuser -pwd ttuser subscriber1
-
サブスクライバでレプリケーション・エージェントを起動します。
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.
-
アクティブ・データベースにある表にデータを挿入します。
-
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>
-
master1
のemployees
表に行を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.
-
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)
-
データが
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.
-
同じステップを
subscriber1
で実行して、データがサブスクライバにレプリケートされていることを確認します。
-
-
アクティブ・スタンバイ・ペアおよび表を削除します。
-
ttIsql
を使用して各データベースに接続し、各データベースでレプリケーション・エージェントを終了します。Command> CALL ttRepStop;
-
各データベースでアクティブ・スタンバイ・ペアを削除します。その後、アクティブ・スタンバイ・ペアを削除した任意のデータベースにある
employees
表を削除できます。Command> DROP ACTIVE STANDBY PAIR; Command> DROP TABLE employees;
-