RAM操作の実行

オプション

ttAdminには、RAMポリシーを設定したり、データベースを起動したり、データベースを停止するための次のオプションがあります。

オプション 説明

-connStr connection_string

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

DSN

管理するデータベースのODBCデータソース名。

-autoreload | -noautoreload

-autoreload (デフォルト)に設定すると、無効化の後、TimesTenはデータベースをリロードします。

-noautoreloadに設定すると、無効化の後、TimesTenがデータベースを自動的にリロードすることはありません。

-ramGrace secs

-ramPolicyinUseに設定されている場合にのみ有効です。0 (ゼロ)以外の場合は、最後のアプリケーションがデータベースとの接続を切断した後、データベースはアンロードされる前にsecs秒間、RAMに保持されます。

-ramLoad

-ramPolicymanualまたはenduringの場合にのみ有効です。これにより、データベースがRAMにロードされます。既存のデータベース共有メモリー・セグメント-ramLoadがある場合は、新しいメモリー・セグメントを作成する前に、そのセグメントを破棄します。これにより、ttAdmin -shmAttachによってエラーが返される場合に-ramLoadをクリーンアップできます。共有メモリー・セグメントは、-ramLoadがそれを破棄できるように、最初に解放する必要があります。

-ramPolicy policy

データベースをシステムRAMにロードするタイミングを決定するために使用するポリシーを定義します。

manual - ユーザーが-ramLoadオプションを使用して明示的にロードする場合にのみ、データベースはシステムRAMにロードされます。-ramUnload-ramPolicy manualとともに使用してデータベースをアンロードすると、デーモンは、メモリー・データベースの前の場所からデタッチされて残っている共有メモリー・セグメントをすべて破棄します。

これにより、データベースの不要なロードまたはアンロードを回避できるため、このRAMポリシーをお薦めします。

enduring - このRAMポリシーは、RAMポリシーの手動に似ていますが、-shmDetachおよび-shmAttachオプションを使用して、データベースを含む共有メモリー・セグメントを破棄せずに、データベースをそれぞれ停止および再起動できる点が異なります。

この機能を使用すると、データベースをアンロードするかわりに共有メモリー・セグメントからデタッチできるため、高速パッチ・アップグレードを実行できます。アップグレード後に、データベースをロードせずに、この共有メモリー・セグメントにアタッチできます。

RAMポリシーenduringでは、-shmFreeオプションを使用することもできます。

inUse (デフォルト) - データベースが使用中(アプリケーションの接続時)の場合にのみシステムRAMにロードされます。-ramGraceオプションを使用して、このポリシーの動作を変更することもできます。

always - データベースはシステムRAMに常時存在します。

-ramUnload

サブデーモンを切断し、共有メモリー・セグメントを破棄することによって、データベースの正常な停止を実行します。ディスクに書き込まれたチェックポイント・ファイルでは、ttAdmin -ramLoadオプションを使用してデータベースをリロードできます。

-ramUnloadオプションは、 -ramPolicy manualまたは-ramPolicy enduringでのみ有効です。

-shmAttach

データベースの起動時に、保持された共有メモリー・セグメントに再アタッチできます。

前提条件は、RAMポリシーを終了中に設定し、共有メモリー・セグメントを-shmDetachオプションでデタッチしていることです。

-shmDetach [-ckpt | -noCkpt]

共有メモリー・セグメントを(破棄ではなく)デタッチしてデータベースを停止できます。

共有メモリー・セグメントから切断する前に、–ckptオプション(デフォルト)を使用して静的チェックポイントを実行するようにサブデーモンを指定することも、–noCkptオプションを使用して静的チェックポイントを実行しないこように指定することもできます。

-shmDetachを使用するには、データベースをクローズし、データベースへの接続が存在しない必要があります。

-shmFree

-shmFreeオプションは、ttAdmin -shmDetach操作後にメモリー内に残った保持された共有メモリー・セグメントを破棄します。

-shmDetachオプションを使用するが、セグメントを再アタッチしない場合は、-shmFree オプションを使用してセグメントを解放できます。その後は、-ramLoadオプションを使用してチェックポイント・ファイルからデータベースをロードできます。

ノート:

時間がかかる可能性があるデータのアンロードと再ロードが不要であるため、RAMポリシーenduringは、高速パッチ・アップグレードを実行する場合に役立ちます。-ramPolicy enduringを使用すると、次のことができます。
  1. -shmDetachを使用して、データベースの停止中に共有メモリー・セグメントを保持します。
  2. 高速アップグレードを実行します。
  3. -shmAttachを使用して、データベースの起動中に保持されているメモリー・セグメントにアタッチします。
詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』「RAMポリシーの指定」および「共有メモリー・セグメントのデタッチ、アタッチおよび解放」を参照してください。
詳細は、『Oracle TimesTen In-Memory Databaseインストレーション、移行およびアップグレード・ガイド』「高速パッチ・アップグレードの実行について」を参照してください。

database1をRAMにロードするかどうかを手動で制御し、すぐにロードするには、次のコマンドを実行します。

% ttAdmin -ramPolicy manual -ramLoad database1

通常、database1データベースは、RAMに常駐しています。ただし、これは常に使用されるわけではないため、アプリケーションが接続するときにのみロードすることをお薦めします。RAMポリシーを変更するには、次のコマンドを実行します。

ttAdmin -ramPolicy inUse database1

database1のRAMポリシーをenduringに設定するには:

$ ttAdmin -ramPolicy enduring database1
RAM Residence Policy            : enduring
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

ここで、database1は常に使用されるわけではないとします。これを永続的にRAMにロードしていると、不必要にメモリーが使用されることがあります。このデータベースは、長期にわたりアイドル状態にありますが、使用される場合は、連続して複数のユーザーから接続されます。パフォーマンスを向上させるには、アプリケーションからの接続時にデータベースをRAMに格納し、最後のユーザーが切断した後、RAM内でそれを5分間(300秒間)保持するようにします。このRAMポリシーでは、アプリケーションがデータベースに接続している場合には、データベースはRAMに保持されます。このポリシーを設定するには、次のコマンドを実行します。

% ttAdmin -ramPolicy inUse -ramGrace 300 History

パフォーマンスが重要な一部のアプリケーションでは、DSN database1によって参照されるデータベースが使用されています。データベースがディスクからRAMにロードされるのをアプリケーションが待機する必要がないように、このデータベースは常時RAMに存在している必要があります。これを行うには、次のコマンドを実行します:

% ttAdmin -ramPolicy always database1

database1 DSNのポリシーの設定のサマリーを表示するには、次のコマンドを実行します。

% ttAdmin -query database1
RAM Residence Policy            : inUse
Replication Agent Policy        : manual
Replication Manually Started    : False
Cache Agent Policy              : manual
Cache Agent Manually Started    : False
Database State                  : Open

ノート

データベースを破棄する必要がある場合は、ttDestroyユーティリティを使用します。(-shmDetachユーティリティでデタッチされたために)データベースに保持された共有メモリー・セグメントがある場合は、ttDestroy -forceオプションを使用する必要があります。データベースの破棄の詳細は、「ttDestroy」を参照してください。

大規模なデータベースを使用する本番システムでは、RAMポリシーをinUseに設定することはお薦めしません。データベースが予期せずアンロードまたはリロードされることがあり、遅延が長くなり、オーバーヘッドが過剰になる可能性があります。

RAMポリシーalwaysは、強制切断のgranularityのunloadと競合します(「強制切断」を参照)。両方を同時に使用するとエラーが発生し、切断要求は無視されます。

always RAMポリシーは注意して使用する必要があります。障害が発生した場合、データベースを自動的にリロードすることが有益であるとはかぎりません。また、システムのブート時にすべてのデータベースが同時にロードされると、システム起動のパフォーマンスに影響を与える場合があります。

共有メモリー・セグメントを手動で破棄する場合(たとえば、ipcrmを使用)、-shmFreeは、共有メモリー・セグメントがないことを示すエラーを返します。ただし、-shmFreeコマンドは、データベースのDBIファイルおよびメイン・デーモンのブックキーピングを更新します。その後、データベースは-ramLoadで正常にロードでき、ttAdmin -ramPolicyを使用してデータベースRAMポリシーをenduring以外の別のポリシーに変更できます。

-ramLoadを使用してデータベースをロードしようとしたときに、以前にデタッチされた共有メモリー・セグメントがそのデータベースに存在する場合、コマンドはエラーを返し、失敗します。-ramLoadのかわりに-shmAttachを使用してセグメントをアタッチするか、-shmFreeを使用してセグメントを破棄してから、-ramLoad オプションを使用してデータベースをリロードする必要があります。