サブスクライバへのマスター・データベースの複製
サブスクライバ・データベースに内容を移入する最も簡単な方法は、マスター・データベースの内容を複製する方法です。
また、障害が発生したデータベースのリカバリ時にも、この方法でデータベースを複製する必要があります(データベースのフェイルオーバーおよびリカバリの管理を参照)。ttRepAdmin
-duplicate
ユーティリティまたはttRepDuplicateEx
C関数を使用して、データベースを複製できます。
データベースを複製する場合は、次の条件を満たす必要があります。
-
インスタンス管理者が複製操作を実行します。
-
インスタンス管理者のユーザー名は、複製に含まれる両方のインスタンスで同じである必要があります。
-
ソース・データベースで、
ADMIN
権限があるユーザーのユーザー名とパスワードを入力する必要があります。 -
ターゲットDSNにクライアント属性およびサーバー属性を含めることはできません。
ノート:
Preallocate
属性を有効化すると、新しいデータベースに十分な領域があることを確認できます。Oracle TimesTen In-Memory DatabaseリファレンスのPreallocateを参照してください。
マスター・データベースの内容をサブスクライバ・データベースに複製するには、次のタスクを実行します。
-
レプリケーション・スキームを作成または変更して、新しいサブスクライバ・データベースおよびそのホストを指定します。「クラシック・レプリケーション・スキームの定義」または「サブスクライバ・データベースの作成とクラシック・レプリケーション・スキームへの追加」を参照してください。
-
レプリケーション・スキームをマスター・データベースに適用します。「データベースへのクラシック・レプリケーション・スキームの適用」を参照してください。
-
マスター・データベースのレプリケーション・エージェントを起動します。「レプリケーション・エージェントの起動および停止」を参照してください。
-
ソース(マスター)・データベースで、次のように入力してユーザーを作成し、そのユーザーに
ADMIN
権限を付与します。CREATE USER ttuser IDENTIFIED BY ttuser; User created. GRANT admin TO ttuser;
-
インスタンス管理者のユーザー名が
timesten
であるとします。ターゲット・ホスト(サブスクライバ)でtimesten
としてログインし、次のようにhost1
のデータベースmasterDSN
をsubscriber1DSN
に複製します。ttRepAdmin -duplicate -from masterDSN -host host1 subscriber1DSN Enter internal UID at the remote datastore with ADMIN privileges: ttuser Enter password of the internal Uid at the remote datastore:
リモート・データベースの内部ユーザーのパスワードを入力するよう要求されたら、
ttuser
と入力します。ノート:
ホスト・エントリは、リモート・ホストの名前またはTCP/IPアドレスのいずれかで指定できます。TCP/IPアドレスを使用してホストを指定する場合は、
-localhost
オプションを使用してローカル・ホスト(この例ではhost1
)のアドレスを指定する必要があります。ソース・ホストとターゲット・ホストのローカルおよびリモートのネットワーク・インタフェースを指定するには、
ttRepAdmin -duplicate
の-localIP
オプションと-remoteIP
オプションを使用します。一方または両方のネットワーク・インタフェースが指定されていない場合、TimesTen Classicによって選択されます。『Oracle TimesTen In-Memory Databaseリファレンス』のttRepAdminを参照してください。
-
サブスクライバ・データベースでレプリケーション・エージェントを起動します。