RAM操作の実行
オプション
ttAdmin
には、RAMポリシーを設定したり、データベースを起動したり、データベースを停止するための次のオプションがあります。
オプション | 説明 |
---|---|
|
データベースの場所、ドライバ、および必要に応じてその他の接続属性設定を指定するODBC接続文字列。 |
|
管理するデータベースのODBCデータソース名。 |
|
|
|
|
|
|
|
データベースをシステムRAMにロードするタイミングを決定するために使用するポリシーを定義します。
これにより、データベースの不要なロードまたはアンロードを回避できるため、このRAMポリシーをお薦めします。
この機能を使用すると、データベースをアンロードするかわりに共有メモリー・セグメントからデタッチできるため、高速パッチ・アップグレードを実行できます。アップグレード後に、データベースをロードせずに、この共有メモリー・セグメントにアタッチできます。 RAMポリシーenduringでは、-shmFree オプションを使用することもできます。
|
|
サブデーモンを切断し、共有メモリー・セグメントを破棄することによって、データベースの正常な停止を実行します。ディスクに書き込まれたチェックポイント・ファイルでは、
|
|
データベースの起動時に、保持された共有メモリー・セグメントに再アタッチできます。 前提条件は、RAMポリシーを終了中に設定し、共有メモリー・セグメントを |
|
共有メモリー・セグメントを(破棄ではなく)デタッチしてデータベースを停止できます。 共有メモリー・セグメントから切断する前に、
|
|
-shmDetach オプションを使用するが、セグメントを再アタッチしない場合は、-shmFree オプションを使用してセグメントを解放できます。その後は、-ramLoad オプションを使用してチェックポイント・ファイルからデータベースをロードできます。
|
ノート:
時間がかかる可能性があるデータのアンロードと再ロードが不要であるため、RAMポリシーenduringは、高速パッチ・アップグレードを実行する場合に役立ちます。-ramPolicy enduring
を使用すると、次のことができます。
-shmDetach
を使用して、データベースの停止中に共有メモリー・セグメントを保持します。- 高速アップグレードを実行します。
-shmAttach
を使用して、データベースの起動中に保持されているメモリー・セグメントにアタッチします。
例
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
オプションを使用してデータベースをリロードする必要があります。