すべての接続の強制切断(dbDisconnect)
dbDisconnectコマンドは、指定されたデータベースへのすべてのユーザー接続を強制的に切断します。これはメンテナンス操作の前に行うと便利です。スムーズに停止してデータ損失がないようにするには、接続を閉じる必要があります。
ttGridAdmin dbDisconnect name -transactional|-immediate|-abort [-nowait | -wait [timeout]]
コマンドを実行するまで、新しいトランザクションは許可されません。
切断リクエストがグリッド内の各データ・インスタンスに送信されます。
関連情報については、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』の「メモリーからのデータベースのアンロード」を参照してください。
ノート:
dbDisconnectコマンドはサブデーモン接続には影響しません。
オプション
dbDisconnectコマンドには、次のオプションがあります。
| オプション | 説明 |
|---|---|
|
|
データベースの名前。 |
|
- |
切断処理のモードを指定します。次のいずれかのモードを指定する必要があります(デフォルトはありません)。
推奨されるベスト・プラクティスは、必要に応じて abortモードは、transactionalレベルおよびimmediateレベルですべての接続が閉じられない場合に、最後の手段としてのみ使用します。中断するとデータが失われる可能性があります。突然中断すると、データベースに接続されているすべてのユーザーおよび ノート: 即時モードで実行すると、アイドル接続も切断されます。transactionalモードでの実行では切断されません。 |
|
|
コマンドがすぐに戻るようにするか(デフォルト)、すべての切断が終了するまで待機するかを指定します。 データベース管理コマンドは状態の変更を開始し、それはグリッドのアクティブ管理インスタンスに記録されます。具体的には、
多数の接続がある場合は、 ノート: |
例
次に例を示します:
-
dbStatusを使用して既存の接続を表示します。 -
データベースをクローズして確認します。
-
transactionalモード(待機なし)で切断します。
-
dbDisconnectStatusでdbDisconnectコマンドのステータス、およびdbStatusで接続のステータスを確認します。(dbDisconnectコマンドが進行中であり、接続がまだ存在します。) -
接続が閉じられるように、immediateモード(待機なし)で切断します。
-
dbDisconnectStatusでdbDisconnectコマンドのステータス、およびdbStatusで接続のステータスを再度確認します。(dbDisconnectコマンドが完了し、接続がなくなります。)
% ttGridAdmin dbStatus database1 -connections Host Instance ConnId Name Pid Type CHost CAddr CPid ---------- --------- ------ --------- ----- ------ ----- ----- ---- mysys5host instance3 1 database1 20233 Direct mysys4host instance2 1 database1 26529 Direct mysys3host instance1 1 database1 1600 Direct mysys6host instance4 1 database1 1678 Direct % ttGridAdmin dbClose database1 Database database1 close started % ttGridAdmin dbStatus database1 Database database1 summary status as of Tue Sep 27 16:12:16 PST 2021 created,loaded-complete,closed Completely created elements: 4 (of 4) Completely loaded elements: 4 (of 4) Completely created replica sets: 2 (of 2) Completely loaded replica sets: 2 (of 2) Open elements: 0 (of 4)
最初にtransactionalモードで接続を切断することを試みます。
% ttGridAdmin dbDisconnect database1 -transactional Database database1 dbDisconnect started
% ttGridAdmin dbDisconnectStatus database1
Database Host Instance Elem State Started
--------- ---------- --------- ---- ------------- ------------------------
database1 Disconnecting 2021-09-27T16:12:55.000Z
mysys5host instance3 1 Disconnecting
mysys4host instance2 2 Disconnecting
mysys3host instance1 3 Disconnecting
mysys6host instance4 4 Disconnecting
% ttGridAdmin dbStatus -connections
Database database1:
Host Instance ConnId Name Pid Type CHost CAddr CPid
---------- --------- ------ --------- ----- ------ ----- ----- ----
mysys5host instance3 1 database1 20233 Direct
mysys4host instance2 1 database1 26529 Direct
mysys3host instance1 1 database1 1600 Direct
mysys4host instance4 1 database1 1678 Direct
immediateモードで再度試みます。
% ttGridAdmin dbDisconnect database1 -immediate Database database1 dbDisconnect started
ステータスを再度確認し、接続がなくなったことを確認します。
% ttGridAdmin dbDisconnectStatus database1
Database Host Instance Elem State Started
--------- ---------- --------- ---- ------------ ------------------------
database1 Complete 2021-09-27T16:14:03.000Z
mysys5host instance3 1 Disconnected
myshs4host instance2 2 Disconnected
mysys3host instance1 3 Disconnected
mysys6host instance4 4 Disconnected
% ttGridAdmin dbStatus database1 -connections
Host Instance ConnId Name Pid Type CHost CAddr CPid
---- -------- ------ ---- --- ---- ----- ----- ----
%ノート
-
このコマンドを実行する前に、データベースがクローズ状態である必要があります。(データベースをクローズしても既存の接続には影響しませんが、新しい接続は確立されません)。
-
TimesTen Scaleoutでは、強制切断機能は常に有効であり、
forceDisconnectEnabled接続属性は無視されます。