メモリーからのデータベースのアンロード
TimesTen Scaleoutでは、データベースは作成時にメモリーに自動的にロードされます。データベースは、メモリーにロードされると、明示的にアンロードされるまでメモリー内に残ります。データベースへのすべての接続を閉じても、データベースがメモリーから自動的にアンロードされることはありません。
データベースのアンロードが必要な場合がある1つの理由は、PermSize属性の値を増加するなど、初期接続属性の値を変更するためです。
メモリーからデータベースをアンロードするには、次のタスクを実行します。
-
データベースにキャッシュ・グループが含まれている場合は、すべてのデータ・インスタンスでキャッシュ・エージェントを停止します。
ttGridAdmin dbCacheStopにより、すべてのデータ・インスタンスまたは指定したデータ・インスタンスでキャッシュ・エージェントを停止します。 -
ユーザー接続に対してデータベースを閉じます。
ttGridAdmin dbCloseコマンドにより、データベースへの新しいユーザー接続を無効にします。 -
すべてのアプリケーションをデータベースから切断します。
ttGridAdmin dbDisconnectコマンドは、データベースへのすべてのユーザー接続を終了します。 -
データベースをメモリーからアンロードします。
ttGridAdmin dbUnloadコマンドにより、それぞれのホストのメモリーからデータベースの各要素をアンロードします。
database1データベースのすべてのデータ・インスタンスでキャッシュ・エージェントを停止します。
% ttGridAdmin dbCacheStop database1 -wait
Database database1 : Stopping cache agents.ユーザー接続からdatabase1データベースをクローズします。
% ttGridAdmin dbClose database1
Database database1 close startedノート:
ttGridAdmin dbCloseコマンドでは、データベースへの既存の接続は閉じられず、かわりに、新しいユーザー接続の作成が禁止されます。開かれているすべての接続を個別に終了する必要があります。データベースのクローズは、要素ごとにそのデータ・インスタンスによって個別に実行される非同期操作です。
また、インスタンス管理者は、データベースがクローズされているかどうか関係なく、データベースへの新しい接続をいつでも作成できます。
database1データベースのすべての要素がユーザー接続に対してクローズされていることを確認します。
% ttGridAdmin dbStatus database1 -element
Database database1 element level status as of Tue Nov 27 13:35:45 PST 2018
Host Instance Elem Status CA Status Date/Time of Event Message
----- --------- ---- ------ –-------- ------------------- -------
host3 instance1 1 loaded stopped 2018-11-27 13:35:43
host4 instance1 2 loaded stopped 2018-11-27 13:35:43
host5 instance1 3 loaded stopped 2018-11-27 13:35:43
host6 instance1 4 loaded stopped 2018-11-27 13:35:43
host7 instance1 5 loaded stopped 2018-11-27 13:35:43
host8 instance1 6 loaded stopped 2018-11-27 13:35:43ノート:
ttGridAdmin dbStatusユーティリティでは、要素のステータスは、要素がユーザー接続に対してクローズされるとオープン済ではなくロード済として表示されます。
すべてのアプリケーションをdatabase1データベースから切断します。ワークロードを停止し、データベースからすべてのアプリケーションを正常に切断する必要があります。データベースからすべてのアプリケーションを個別に切断できない場合は、ttGridAdmin dbDisconnectコマンドを使用して、データベースからすべてのユーザー接続を切断します。
% ttGridAdmin dbDisconnect database1 -transactional
Database database1 dbDisconnect startedノート:
-transactionalオプションを指定した場合は、すべてのオープン・トランザクションがコミットまたはロールバックされると、database1データベースからすべてのユーザー接続が切断されます。-transactionalオプションが失敗したか時間がかかりすぎる場合は、ttGridAdmin dbDisconnectコマンドの-immediateオプションを使用することで、すべてのオープン・トランザクションでロールバックを強制的に実行し、アプリケーションを切断します。また、-immediateオプションですべての接続をクローズできない場合は、-abortオプションを使用できます。このオプションでは、すべてのアプリケーションを正常に切断することはできないため、データが失われる可能性があります。
ttGridAdmin dbDisconnectStatusコマンドを使用して切断プロセスのステータスを確認します。
% ttGridAdmin dbDisconnectStatus database1
Database Host Instance Elem State Started
--------- ----- --------- ---- ------------ ------------------------
database1 Complete 2018-11-27T13:38:43.000Z
host3 instance1 1 Disconnected
host4 instance1 2 Disconnected
host5 instance1 3 Disconnected
host6 instance1 4 Disconnected
host7 instance1 5 Disconnected
host8 instance1 6 Disconnected 次に、ttGridAdmin dbStatusコマンドの-connectionsオプションを使用して、データベースへの接続がないことを確認します。
% ttGridAdmin dbStatus database1 -connections
Host Instance ConnId Name Pid Type CHost CAddr CPid
---- -------- ------ ---- --- ---- ----- ----- ----database1データベースをアンロードします。
% ttGridAdmin dbUnload database1
Database database1 unload startedデータベースのアンロードは、各データ・インスタンスによって個別に実行される非同期的な操作です。データベースへの開かれたユーザー接続がある場合、この操作ではエラーが返されます。
ノート:
ttGridAdmin dbDisconnect -abortコマンドを使用した場合は、一部の要素が無効化されてttGridAdmin dbUnloadが失敗する可能性があります。ttGridAdmin dbUnloadコマンドの-forceオプションを使用して、アンロードを続行できるようにします。このオプションでは、データが失われる可能性があります。
ttGridAdmin dbStatusコマンドを使用して、データベース・アンロード・プロセスのステータスを確認できます。次の例のレポートではデータベースのすべての要素がクローズ済およびアンロード済として示されていることに注目してください。
% ttGridAdmin dbStatus database1
Database database1 summary status as of Tue Nov 27 13:41:18 PST 2018
created,unloaded,closed
Completely created elements: 6 (of 6)
Completely loaded elements: 0 (of 6)
Completely created replica sets: 2 (of 2)
Completely loaded replica sets: 0 (of 2)
Open elements: 0 (of 6)前述のコマンドの詳細は、次を参照してください。
-
『Oracle TimesTen In-Memory Databaseリファレンス』のキャッシュ・エージェントの停止(dbCacheStop)
-
『Oracle TimesTen In-Memory Databaseリファレンス』のデータベースのクローズ(dbClose)
-
『Oracle TimesTen In-Memory Databaseリファレンス』のすべての接続を強制的に切断(dbDisconnect)
-
『Oracle TimesTen In-Memory Databaseリファレンス』のデータベースのアンロード(dbUnload)
-
『Oracle TimesTen In-Memory Databaseリファレンス』のデータベースのステータスのモニター(dbStatus)
-
『Oracle TimesTen In-Memory Databaseリファレンス』の強制切断のステータスの確認(dbDisconnectStatus)