メモリーからのデータベースのロードとアンロード

TimesTenはインメモリー・データベースです。そのため、データベースを最初にファイル・システムからメモリーにロードして、接続に使用できるようにする必要があります。

データベースをメモリーにロードする際に、ファイル・システム上のチェックポイント・ファイルから永続メモリー領域の内容が読み取られます。一時メモリー領域は、データベースをメモリーにロードする際に作成され、データベースをアンロードする際に削除されます。永続メモリーおよび一時メモリーの詳細は、「データベースのメモリー領域サイズの指定」を参照してください。

  • TimesTen Scaleoutの場合: グリッド管理者は、ttGridAdminユーティリティを使用して、データベースをロードおよびアンロードする方法を制御します。詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』ttGridAdminを参照してください。

  • TimesTen Classicの場合: RAMポリシーは、データベースが予期せずアンロードされた場合にデータベースを自動的にメモリーに再ロードするかどうかなど、データベースをメモリーにロードする方法とタイミングを指定します。様々なRAMポリシーの詳細は、「RAMポリシーの指定」を参照してください。

    インスタンス管理者のみがデータベースを手動でロードできます。デフォルトでは、TimesTenでは、アイドル・データベース(接続のないデータベース)は、それに対する最初の接続が確立されたときに自動的にメモリーにロードされます。「TimesTen Classicの場合のメモリーへのデータベースのロード」を参照してください。

    データベースがメモリーにロードされた後には、使用している機能、およびttAdminユーティリティで設定したキャッシュ・ポリシーおよびレプリケーション・ポリシーに応じて、データベースのキャッシュ・エージェントおよびレプリケーション・エージェントを明示的に起動する必要がある場合があります。

ノート:

データベースをロードおよびアンロードするかわりに、共有メモリー・セグメントをメモリー内に残したまま、デタッチまたはアタッチできます。これは、データベースのロードおよびアンロードよりも大幅に高速です。「共有メモリー・セグメントのデタッチ、アタッチおよび解放」を参照してください。

メモリーからのTimesTen Classicのデータベースのロードとアンロードについては、次の各項で説明します。

TimesTen Classicの場合のメモリーへのデータベースのロード

TimesTen Classicの場合のメモリーへのデータベースのロードは、特定のRAMポリシーが設定されている場合は自動的に実行でき、ttAdminユーティリティを使用すると手動で実行できます。

  1. TimesTen Classicのデータベースをメモリーにロードしようとする前に、ttStatusユーティリティを使用してTimesTenデーモンが実行中であることを確認します。次の出力は、TimesTenデーモンが稼働していないことを示します。
    % ttStatus
    ttStatus: Could not connect to the TimesTen daemon.
    If the TimesTen daemon is not running, please start it by running "ttDaemonAdmin -start".
  2. 必要に応じてTimesTenデーモンを起動します。
    ttDaemonAdmin -start
  3. RAMポリシー設定は、データベースをメモリーからロードまたはアンロードするかどうか、その方法およびタイミングを指定するものであるため重要です。TimesTenデータベースのデフォルトのRAMポリシーは、inUseです。

    データベースをメモリーにロードする前に、RAMポリシーを設定できます。「RAMポリシーの指定」を参照してください。

    次の例では、TimesTenデータベースのRAMポリシーをmanualに設定します。

    % ttAdmin -ramPolicy manual database1
    
    RAM Residence Policy            : manual
    Manually Loaded In RAM          : False
    Replication Agent Policy        : manual
    Replication Manually Started    : False
    Cache Agent Policy              : manual
    Cache Agent Manually Started    : False
    Database state                  : open
  4. ttAdminユーティリティを使用して、データベースをメモリーにロード(または再ロード)するか、データベースをメモリーからアンロードします。

    RAMポリシーがデータベースdatabase1に対してmanualに設定されている場合は、ttAdmin -ramLoadユーティリティを使用してTimesTenデータベースをメモリーにロードします。ttAdminユーティリティの-ramLoadオプションは、RAMポリシーがmanualまたはenduringのときにしか使用できません。

    % ttAdmin -ramLoad database1
    
    RAM Residence Policy            : manual
    Manually Loaded In RAM          : True
    Replication Agent Policy        : manual
    Replication Manually Started    : False
    Cache Agent Policy              : manual
    Cache Agent Manually Started    : False
    Database state                  : open

    RAMポリシーがmanualの場合は、それをalwaysに変更して、データベースを常に再ロードするように指定できます。

    ttAdmin -ramPolicy always database1

    RAMポリシーがinUseの場合は、猶予期間を0より大きくして、アイドル状態のときにその期間の間データベースがメモリーに保持されるようにします。

    % ttAdmin -ramPolicy inUse -ramGrace 200 database1
    
    RAM Residence Policy            : inUse plus grace period
    RAM Residence Grace (Secs)      : 200
    Replication Agent Policy        : manual
    Replication Manually Started    : False
    Cache Agent Policy              : manual
    Cache Agent Manually Started    : False
    Database state                  : open

    データベースdatabase1のRAMポリシーがmanualで、データベースが以前に受信接続でクローズしていた場合は、ttAdmin -ramload -openコマンドを使用して、TimesTenデータベースのメモリーへのロードとオープンの両方を行うことができます。

    % ttAdmin -ramLoad -open database1
    
    RAM Residence Policy            : manual
    Manually Loaded In RAM          : True
    Replication Agent Policy        : manual
    Replication Manually Started    : False
    Cache Agent Policy              : manual
    Cache Agent Manually Started    : False
    Database state                  : open
  5. データベースがレプリケーションに対して構成済である、またはデータベースのキャッシュである場合、ttAdminユーティリティを実行してレプリケーション・エージェントおよびキャッシュ・エージェントを起動します。

    レプリケーション・エージェントを起動するには:

    ttAdmin -repStart database1

    キャッシュ・エージェントを起動するには:

    ttAdmin -cacheStart database1

Oracle TimesTen In-Memory DatabaseリファレンスttAdminおよびttDaemonAdminを参照してください。

TimesTen Classicの場合のメモリーからのデータベースのアンロード

TimesTen Classicデータベースは、アプリケーションまたはTimesTenエージェント(キャッシュ・エージェントやレプリケーション・エージェントなど)が接続している場合は共有メモリーにロードされたままになります。また、TimesTen Classicデータベースは、アプリケーションやエージェントが接続されていなくても、特定のRAMポリシーが設定されている場合に共有メモリーに保持されることがあります。

TimesTen Classicのデータベースをメモリーからアンロードする前に、まずデータベースを閉じ、データベースへのアクティブな接続をすべて閉じ、データベースのRAMポリシーをmanualまたはinUseに設定する必要があります。

ノート:

次のステップで使用する例では、database1が、アンロードされるデータベースです。これがレプリケーション・スキーム内のアクティブなマスターであり、キャッシュを使用して構成されていることを前提としています。データベースには、レプリケーションとキャッシュの両方を構成でき、manual以外のRAMポリシーを設定できます。

  1. データベースを閉じて、データベースに接続するための新しい要求を拒否します。
    ttAdmin -close database1
  2. すべてのアプリケーションをデータベースから切断します。

    データベースへのアクティブな接続をすべて閉じるには、ttAdmin -disconnectコマンドを実行します。このマニュアル内の「データベースからの切断」、および『Oracle TimesTen In-Memory Databaseリファレンス』ttAdminを参照してください。

  3. レプリケーション・エージェントがデータベースで実行されている場合は、レプリケーションの状態をpauseに設定し、レプリケーション・エージェントを停止します。この例では、アクティブ・マスターdatabase1からスタンバイ・マスターstandbydbへのレプリケーション状態をpauseに設定してから、アクティブ・マスターdatabase1でレプリケーション・エージェントを停止します。
    ttRepAdmin -receiver -name database1 -state pause standbydb
    ttAdmin -repStop database1
  4. キャッシュ・エージェントがデータベースで実行されている場合は、キャッシュ・エージェントを停止します。
    ttAdmin -cacheStop database1
  5. RAMポリシーがmanualまたはinUseに設定されていることを確認します。次に、データベースをメモリーからアンロードします。「RAMポリシーの指定」を参照してください。

    RAMポリシーがalwaysに設定されている場合は、それをmanualに変更してから、ttAdmin -ramPolicy -ramUnloadユーティリティ・オプションを使用してデータベースをメモリーからアンロードします。

    ttAdmin -ramPolicy manual -ramUnload database1

    RAMポリシーがmanualに設定されている場合は、ttAdmin -ramUnloadユーティリティを使用してデータベースをアンロードします。

    ttAdmin -ramUnload database1

    RAMポリシーがinUseに設定されており、猶予期間が設定されている場合は、猶予期間に0(ゼロ)を設定するか、猶予期間に設定した時間が経過するまで待機します。これでデータベースがアンロードされます。アクティブな接続をすべてクローズすると、RAMポリシーがinUseのデータベースがメモリーからアンロードされます。

    ttAdmin -ramGrace 0 database1
  6. ttStatusユーティリティを実行して、データベースがメモリーからアンロードされ、データベースが閉じられていることを確認します。プロセスがない場合、データベースはアンロードされます。出力に「Closed for user connections」と表示されていれば、そのデータベースはクローズされています。

    『Oracle TimesTen In-Memory Databaseリファレンス』ttStatusを参照してください。

  7. 必要に応じてTimesTenデーモンを停止します。
    ttDaemonAdmin -stop

Oracle TimesTen In-Memory DatabaseリファレンスttAdminを参照してください。