データベースの複製

次の形式のttRepAdminを使用すると、マスター・データベースと同じコンテンツを持つ新しいデータベースを作成できます。

ttRepAdmin -duplicateを実行するには、次の条件を満たす必要があります。

  • インスタンス管理者のみがttRepAdmin -duplicateを実行できます。

  • ttRepAdmin -duplicateを実行するには、インスタンス管理者のオペレーティング・システム・ユーザー名がソース・コンピュータとターゲット・コンピュータで同じである必要があります。

  • -UIDオプションおよび-PWDオプションを使用して、ソース・データベースに対してADMIN権限を持つ内部ユーザーのユーザー名およびパスワードを指定する必要があります。

  • ターゲット・ホストに対してttRepAdminを実行する必要があります。

  • DSNの指定は、サーバーDSNではなく、ダイレクトモードDSNである必要があります。

ttRepAdmin -duplicateコマンドを実行する前に、ttStatusを使用して、ソース・データベースに対してレプリケーション・エージェントが起動していることを確認します。

ttRepAdmin -duplicate -from srcDataStoreName
       -host srcDataStoreHost
      [-localIP localIPAddress] [-remoteIP remoteIPAddress]
      [-setMasterRepStart | -noSetMasterRepStart] [-ramLoad] [-delXla]
      -UID userId (-PWD pwd | -PWDCrypt encryptedPwd)
      [-drop { [owner.]table ... | [owner.]sequence |ALL }]
      [-truncate { [owner.]table ... | ALL }]
      [-compression 0 | 1] [-bandwidthmax maxKbytesPerSec]
      [ ( -activeDataGuard [-cacheUid cacheUid [-cachePwd cachePwd]]
         | -initCacheDr [-cacheUid cacheUid [-cachePwd cachePwd]] 
                [-noDRTruncate] [-nThreads]
         | ( -keepCG [-cacheUid cacheUid [-cachePwd cachePwd]] 
             ( [-recoveringNode | -deferCacheUpdate] ))| -nokeepCG  ) ]
      [-remoteDaemonPort portNo] [-verbosity {0|1|2}]
      [-localhost localHostName]
      [-open | -close]
      {destDSN | -connStr connection_string}

オプション

ttRepAdmin -duplicateには、次のオプションがあります。

オプション 説明

-close

ユーザー接続に対してデータベースをクローズします。

データベースがユーザー接続に対してクローズされると、新しい接続の試行は失敗しますが、既存の接続に影響はありません。

-bandwidthmax maxKbytesPerSec

複製処理によってmaxKbytesPerSecKB/秒を超えるデータがネットワークに配置されないように指定します。値0は、帯域幅に制限がないことを示します。デフォルトは0です。最大値は9999999です。

-compression 0 | 1

複製処理中の圧縮を有効または無効にします。デフォルトは0(無効)です。

-connStr connection_string

複製先データベースの接続文字列(データベースの場所、ドライバ、および必要に応じてその他の接続属性設定を指定するODBC接続文字列)を指定します。

-delXla

複製処理の一部として、すべてのXLAブックマークを削除します。このオプションは、複製データベースにブックマークをコピーしない場合に使用します。

destDSN

新しいデータベースのデータソース名を示します。

-drop {[owner.]table ... |[owner.]sequence |ALL

-duplicate処理中にコピーされたものの、レプリケーション・スキームには含まれていない表または順序を破棄します。表がキャッシュ・グループ表の場合には、ttRepAdminはオプションを無視します。

-duplicate

ネットワーク間でデータベースの内容を転送するために、指定したデータベースの複製をレプリケーションを使用して作成します。『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』「データベースの複製」を参照してください。

-from srcDataStoreName

-duplicateとともに使用して、送信側データベース(またはマスター・データベース)の名前を指定します。srcDataStoreNameは、データベース・パス名の最後の部分です。

-host srcDataStoreHost

送信側データベース(またはマスター・データベース)のホスト名またはTCP/IPアドレスを定義します。

-initCacheDr [-cacheUid cacheUid -cachePwd cachePwd]

障害時リカバリを初期化します。キャッシュ管理者のユーザーIDとパスワードを指定する必要があります。

  • cacheUidは、キャッシュ管理ユーザーIDです。

  • cachePwdは、キャッシュ管理者ユーザーのパスワードです。

パスワードを指定しなかった場合、ttRepAdminからパスワードの入力を求められます。

( -keepCG [-cacheUid cacheUid -cachePwd cachePwd] ([-recoveringNode | -deferCacheUpdate])) | -noKeepCG

-keepCGおよび-noKeepCGでは、キャッシュ・グループの表をキャッシュ・グループ表として維持するか、またはターゲット・データベースの通常の表に変換するかを指定します。デフォルトは-noKeepCGです。

  • cacheUidは、キャッシュ管理ユーザーIDです。

  • cachePwdは、キャッシュ管理者ユーザーのパスワードです。

パスワードを指定しなかった場合、ttRepAdminからパスワードの入力を求められます。

Oracle Databaseに接続できない場合またはOracle Databaseが停止している場合は、-duplicateを使用しているときに-recoveringNodeオプションを指定して、すべてのAWTまたは増分自動リフレッシュ・キャッシュ・グループを含むレプリケーション・スキームの失敗したノードをリカバリします。あるいは、-deferCacheUpdateオプションを指定します。これらのオプションにより、(AWTまたは増分自動リフレッシュ・キャッシュ・グループの管理に使用される)Oracle Databaseにあるメタデータに対する変更は、複製操作が完了し、キャッシュ・エージェントおよびレプリケーション・エージェントが起動し、これらのエージェントがOracle Databaseに接続できるようになるまで遅延します。詳細は、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』「データベースの複製」を参照してください。

-localhost hostName

-duplicateおよび-setMasterRepStartとともに使用して、ローカル・ホストの名前またはIPアドレスを明示的に指定します。

-localIP localIPAddress

使用するローカル・ネットワーク・インタフェースの別名またはIP(IPv4またはIPv6)アドレスを指定します。指定しない場合は、ttRepAdminによって互換性のあるインタフェースが選択されます。

-noDRTruncate

-initCacheDrオプションとともに使用した場合、-noDRTruncateは障害時リカバリ・サイトでのリモート・サブスクライバの初期導入プロセスにおけるOracle表の切捨てを無効にします。–noDRTruncateを指定した場合、TimesTenはアクティブ・スタンバイ・ペアのレプリケーション・スキームの非同期のWRITETHROUGHキャッシュ・グループ表に対応するOracle Database表を切り捨てません。

-nThreads n

-initCacheDrオプションとともに使用した場合、-nThreadsは、初期化プロセスにおけるOracle Database表の切捨ておよびOracleへのキャッシュ・データのプッシュに使用するスレッドの数を示します。

-open

ユーザー接続に対してデータベースをオープンします。

作成時、デフォルトでデータベースはユーザー接続に対してオープンです。

-PWD pwd

-UIDオプションに指定した内部ユーザーのパスワード。

-PWDCrypt encryptedPwd

-UIDオプションに指定したユーザーの暗号化されたパスワード。

-ramLoad

複製処理の完了時に、メモリー内にデータベースを保持します。このオプションによって、大規模なデータベースをコピーする場合にデータベースのアンロードとリロードのサイクルが回避され、複製処理のパフォーマンスが改善されます。複製オプションの後、データベースのRAMポリシーはmanualに設定されます。RAMポリシーをさらに変更するには、ttAdminユーティリティを使用します。

-remoteDaemonPort portNo

リモート・メイン・デーモンのポート番号。

このオプションの引数に指定された値が0(ゼロ)以外の場合、その値をポート番号として使用します。値が0(ゼロ)の場合は、デフォルトの動作を使用してポート番号を決定します。

-remoteDaemonPortオプションは、自動ポート構成を使用しているストアを持つデータベースの複製には使用できません。

-remoteIP remoteIPAddress

使用するリモート/接続先ネットワーク・インタフェースの別名またはIP(IPv4またはIPv6)アドレスを指定します。指定しない場合は、ttRepAdminによって互換性のあるインタフェースが選択されます。

-setMasterRepStart

これはデフォルトでオンになっています。

-duplicateオプションを設定すると、新しく作成されたデータベースのレプリケーション状態は、ネットワーク間でデータベースがコピーされる前にstart状態に設定されます。これにより、複製操作の開始後にソース・データベースに行われたすべての変更が、新しく複製されたターゲット・データベースに確実にレプリケートされます。データベースの不要なトランザクション・ログ・ファイルは削除されます。

この動作を行わない場合は、-noSetMasterRepStartオプションを設定します。

-noSetMasterRepStart

-duplicateオプションとともに使用します。ターゲット・データベースのレプリケーション状態は、複製操作中に変更されません。したがって、ターゲット・データベースの状態がstoppedまたはfailedに設定されている場合、複製操作の開始後にソース・データベースに加えられた変更は、新しく複製されたターゲット・データベースにレプリケートされません。

-truncate [owner.]table ...| ALL

-duplicate処理中にコピーされたものの、レプリケーション・スキームには含まれていない表を切り捨てます。表がキャッシュ・グループ表の場合には、ttRepAdminはオプションを無視します。

-UID userid

ソース・データベースに対してADMIN権限を持つユーザーのユーザーIDを指定する必要があります。これは内部ユーザーである必要があります。

-verbosity {0 | 1 | 2}

複製処理で実行される通信段階の詳細を表示し、複製の転送の進捗情報をレポートします。

0(デフォルト) - 診断は返されません。

1 - stdoutに複製パラメータの詳細をレポートします。

2 - 複製パラメータの詳細と、複製の転送処理の詳細をstdoutにレポートします。

データベースの複製

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

CREATE USER sampleuser IDENTIFIED BY sampleuser;
User created.

GRANT admin TO sampleuser;

インスタンス管理者のユーザー名が、複製元と複製先のインスタンスで同じである必要があります。インスタンス管理者としてログインして、server1ds1データベースをds2データベースに複製します。

% ttRepAdmin -duplicate -from ds1 -host "server1" 
           -UID sampleuser -PWD sampleuser
           -connStr "dsn=ds2;UID=sampleuser;PWD=sampleuser" 

キャッシュ・グループを持つデータベースの複製

データベースを複製するときにキャッシュ・グループ表を保持するには、-keepCGオプションを使用します。-cacheuidオプションおよび-cachepwdオプションで、キャッシュ管理ユーザーIDおよびパスワードを指定します。キャッシュ管理ユーザーのパスワードを指定しなかった場合は、ttRepAdminからパスワードの入力が求められます。

キャッシュ管理ユーザーIDがorauserで、パスワードがorapwdである場合、host1のデータベースdsn1を複製します。

% ttRepAdmin -duplicate -from dsn1 -host host1 -uid sampleuser -pwd sampleuser 
        -keepCG -cacheuid orauser -cacheuid orapwd "DSN=dsn2;UID=;PWD="

dsn2UIDおよびPWDは、インスタンス管理者である現在のオペレーティング・システム・ユーザーとして接続が確立されるように、接続文字列でNULL値として指定されます。インスタンス管理者のみがttRepAdmin -duplicateを実行できます。dsn2PWDではなくPWDCryptで構成されている場合は、接続文字列がDSN=dsn2;UID=;PWDCrypt=となります。

ソース・データベースのレプリケーション状態の設定

-setMasterRepStartオプションによって、srcDataStoreNameデータベースのレプリケーション状態がネットワーク間でコピーされる前にStart状態に設定され、メモリーにデータベースが保持されます。これにより、複製処理後にマスターに対して行われた更新がサブスクライバに確実にコピーできます。

ローカル・ホストをホスト名またはIPアドレスで識別するには、-localhostオプションを使用します。これらのオプションを使用すると、複製処理後にリモート・データベースで行われたすべての更新が、新しく作成またはリストアされたローカル・データベースにレプリケートされます。

ttRepAdmin -duplicate -from srcDataStoreName -host srcDataStoreHost
        -setMasterRepStart -ramLoad
        -UID timesten_user -PWD timesten_user]
        -localhost localHostName 
        [destDSN | -connStr connection_string ]

ノート

このユーティリティでは、データベースに一時表定義は複製できますが、一時表の内容はレプリケートしません。

このユーティリティを使用して、TimesTenのメジャー・リリースをまたいでデータベースを複製することはできません。