サブスクライバへのマスター・データベースの複製

サブスクライバ・データベースに内容を移入する最も簡単な方法は、マスター・データベースの内容を複製する方法です。

また、障害が発生したデータベースのリカバリ時にも、この方法でデータベースを複製する必要があります(データベースのフェイルオーバーおよびリカバリの管理を参照)。ttRepAdmin -duplicateユーティリティまたはttRepDuplicateEx C関数を使用して、データベースを複製できます。

データベースを複製する場合は、次の条件を満たす必要があります。

  • インスタンス管理者が複製操作を実行します。

  • インスタンス管理者のユーザー名は、複製に含まれる両方のインスタンスで同じである必要があります。

  • ソース・データベースで、ADMIN権限があるユーザーのユーザー名とパスワードを入力する必要があります。

  • ターゲットDSNにクライアント属性およびサーバー属性を含めることはできません。

ノート:

Preallocate属性を有効化すると、新しいデータベースに十分な領域があることを確認できます。Oracle TimesTen In-Memory DatabaseリファレンスPreallocateを参照してください。

マスター・データベースの内容をサブスクライバ・データベースに複製するには、次のタスクを実行します。

  1. レプリケーション・スキームを作成または変更して、新しいサブスクライバ・データベースおよびそのホストを指定します。「クラシック・レプリケーション・スキームの定義」または「サブスクライバ・データベースの作成とクラシック・レプリケーション・スキームへの追加」を参照してください。

  2. レプリケーション・スキームをマスター・データベースに適用します。「データベースへのクラシック・レプリケーション・スキームの適用」を参照してください。

  3. マスター・データベースのレプリケーション・エージェントを起動します。「レプリケーション・エージェントの起動および停止」を参照してください。

  4. ソース(マスター)・データベースで、次のように入力してユーザーを作成し、そのユーザーにADMIN権限を付与します。

    CREATE USER ttuser IDENTIFIED BY ttuser;
    User created.
    
    GRANT admin TO ttuser;
  5. インスタンス管理者のユーザー名がtimestenであるとします。ターゲット・ホスト(サブスクライバ)でtimestenとしてログインし、次のようにhost1のデータベースmasterDSNsubscriber1DSNに複製します。

    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を参照してください。

  6. サブスクライバ・データベースでレプリケーション・エージェントを起動します。