データベースの複製
レプリケーション・スキームの設定またはリカバリの管理における共通のタスクは、データベースの複製です。ttRepAdmin
ユーティリティの-duplicate
オプションまたはttRepDuplicateEx
C関数を使用して、データベースを複製します。
データベースを複製する場合は、次の条件を満たす必要があります。
-
インスタンス管理者が複製操作を実行します。
-
インスタンス管理者のユーザー名は、複製に含まれる両方のインスタンスで同じである必要があります。
-
ソース・データベースで、
ADMIN
権限があるユーザーのユーザー名とパスワードを入力する必要があります。 -
キャッシュ・グループを持つアクティブ・マスター・データベースを複製する場合は
-keepCG
オプションを使用し、キャッシュ管理ユーザー名およびパスワードを指定する必要があります。 -
ターゲットDSNにクライアント属性およびサーバー属性を含めることはできません。
ノート:
Preallocate
属性を有効化すると、新しいデータベースに十分な領域があることを確認できます。有効な場合、複製中に新しいデータベースのデータベース・チェックポイント・ファイルにファイル・システムの領域が事前に割り当てられます。Oracle TimesTen In-Memory DatabaseリファレンスのPreallocateを参照してください。
ソース・データベースで、次のように入力してユーザーを作成し、そのユーザーにADMIN
権限を付与します。
Command> CREATE USER ttuser IDENTIFIED BY ttuser; User created. Command> GRANT ADMIN TO ttuser;
インスタンス管理者のユーザー名がtimesten
であるとします。ターゲット・ホストでtimesten
としてログインし、次のようにhost1
のデータベースdsn1
をdsn2
に複製します。
ttRepAdmin -duplicate -from dsn1 -host host1 dsn2 Enter internal UID at the remote datastore with ADMIN privileges: ttuser Enter password of the internal Uid at the remote datastore:
リモート・データベースの内部ユーザーのパスワードを入力するよう要求されたら、ttuser
と入力します。
『Oracle TimesTen In-Memory Databaseリファレンス』のttRepAdmin、および『Oracle TimesTen In-Memory Database C開発者ガイド』のttRepDuplicateExを参照してください。
次の項では、複製時のオプションについて説明します。
特定のネットワーク・インタフェースでの複製
データベースの複製が行われる特定のローカルまたはリモートのネットワーク・インタフェースを使用する場合は、オプションでネットワーク・インタフェースの別名またはIPアドレスを指定できます。
ソース・ホストとターゲット・ホストのローカルおよびリモートのネットワーク・インタフェースを指定するには、ttRepAdmin -duplicate
の-localIP
オプションと-remoteIP
オプションを使用します。一方または両方のネットワーク・インタフェースが指定されていない場合、TimesTen Classicによって選択されます。
キャッシュ・グループがある場合の複製
定義されているキャッシュ・グループが含まれるアクティブ・データベースを複製している場合は、-keepCG
オプションを使用します。
また、-cacheUid
および-cachePwd
オプションを使用して、キャッシュ管理ユーザー名およびパスワードを指定する必要もあります。キャッシュ管理ユーザー・パスワードを指定しない場合、ttRepAdmin
によってパスワードが要求されます。キャッシュ管理ユーザー名がorauser
で、パスワードがorapwd
である場合、host1
のデータベースdsn1
を複製します。
ttRepAdmin -duplicate -from dsn1 -host host1 -keepCG -connStr "DSN=dsn2;UID=;PWD=" Enter internal UID at the remote datastore with ADMIN privileges: ttuser Enter password of the internal Uid at the remote datastore:
パスワードを求めるプロンプトが表示されたら、ttuser
と入力します。次に、ttRepAdmin
ユーティリティにより、キャッシュ管理ユーザーとパスワードを求めるプロンプトが表示されます。
Enter cache administrator UID: orauser Enter cache administrator password:
キャッシュ管理パスワードを要求されたら、orapwd
と入力します。
dsn2
のUID
およびPWD
は、インスタンス管理者である現在のOSユーザーとして接続が確立されるように、接続文字列でNULL値として指定されます。インスタンス管理者のみがttRepAdmin -duplicate
を実行できます。dsn2
がPWD
ではなくPWDCrypt
で構成されている場合は、接続文字列がDSN=dsn2;UID=;PWDCrypt=
となります。
キャッシュ・グループが構成されたスタンバイ・データベースを読取り専用サブスクライバに複製する場合は、-nokeepCG
オプションを使用します。この例では、dsn2
がスタンバイ・データベース、sub1
が読取り専用サブスクライバです。
ttRepAdmin -duplicate -from dsn2 -host host2 -nokeepCG -connStr "DSN=sub1;UID=;PWD="
ttRepAdmin
ユーティリティによって-uid
および-pwd
の値を入力するよう要求されます。
AWTキャッシュ・グループまたは増分自動リフレッシュを使用したキャッシュ・グループを含むレプリケーション・スキームの複製を実行中に、Oracleデータベースにアクセスできない場合(Oracleデータベースが停止しているか、接続できない場合)、ttRepAdmin -duplicate
コマンドではAWTキャッシュ・グループまたは増分自動リフレッシュを使用したキャッシュ・グループが複製された後に、Oracleデータベース上の(AWTキャッシュ・グループおよび自動リフレッシュを使用したキャッシュ・グループを管理するためにキャッシュが使用する)メタデータを更新できません。この場合、次のいずれかのオプションを使用して複製を実行します。
-
すべてのAWTキャッシュ・グループまたは増分自動リフレッシュを使用したキャッシュ・グループがアクティブ・スタンバイ・ペアのレプリケーション・スキームに含まれている状況で、障害が発生したアクティブ・マスターまたはスタンバイ・マスターのいずれかをリカバリするために
ttRepAdmin -duplicate
を使用している場合は、-keepCG -recoveringNode
オプションを使用します。このオプションを使用する場合は、複製処理の間に発生する変更が追跡されるので、完全な自動リフレッシュを開始する必要がなくなります。 -
これを使用しない場合は、
-keepCG -deferCacheUpdate
オプションを使用します。このオプションでは完全な自動リフレッシュが開始されることがあります。
-keepCG -recoveringNode
オプションまたは-keepCG -deferCacheUpdate
オプションを使用して複製処理を完了した後に、複製処理は正常に終了したがOracle Databaseメタデータへの更新は、キャッシュ・エージェントとレプリケーション・エージェントが起動するまで保留されるという警告メッセージが表示されます。したがって、複製処理が完了したら、新しいノードでキャッシュ・エージェントとレプリケーション・エージェントの両方を起動します。TimesTenのノード障害が次々に発生し、Oracle Databaseとの接続で問題が断続的に発生する場合、キャッシュ・エージェントとレプリケーション・エージェントを起動すると完全自動リフレッシュが開始されることがあります。
ノート:
「アクティブ・スタンバイ・ペア内のキャッシュ・グループのレプリケート」を参照してください。