RESTART DATABASE コマンド

RESTART DATABASE コマンドは、異常終了して不整合な状態のままになっているデータベースを再始動します。 ユーザーが CONNECT 特権を持っている場合には、RESTART DATABASE が正常終了すると、アプリケーションはデータベースに接続されたままとなります。

範囲

このコマンドは、それが実行されたデータベース・パーティションに対してだけ影響を与えます。 Db2® pureScale® 環境では、このコマンドはすべての中断状態のメンバーに対して入出力書き込み操作を再開します。

Db2 pureScale 環境では、このコマンドは必要に応じて、グループ・クラッシュ・リカバリー (グループのすべてのメンバーに対してクラッシュ・リカバリーを実行する) またはメンバー・クラッシュ・リカバリーをトリガーする場合があります。

許可

None.

必要な接続

このコマンドは、データベース接続を確立します。

コマンド構文

Read syntax diagramSkip visual syntax diagramRESTARTDATABASEDBdatabase-aliasUSERusernameUSINGpasswordDROP PENDING TABLESPACES(,tablespace-name)WRITE RESUME

コマンド・パラメーター

DATABASE database-alias
再始動するデータベースを識別します。
USER username
データベースが再始動する際のユーザー名を識別します。
USING password
username を認証するのに使用されるパスワード。 パスワードを省略すると、ユーザーに入力を求めるプロンプトが出ます。
DROP PENDING TABLESPACES tablespace-name
表スペース・コンテナーに問題が発生しても、 データベース再始動操作を正常に完了するよう指定します。

指定した表スペース用のコンテナーで再始動処理中に問題が発生した場合、 それに対応する表スペースは、再始動操作後に使用できなくなります (ドロップ・ペンディング状態になります)。 表スペースがドロップ・ペンディング状態のとき、 実行可能なアクションは表スペースをドロップすることだけです。

メンバー・クラッシュ・リカバリー中にコンテナーで問題が生じた場合、メンバー・クラッシュ・リカバリー操作は失敗します。 この状態を修正するには、db2stop -force コマンドを使用してすべてのメンバーをシャットダウンし、RESTART DATABASE コマンドを再発行することにより、グループ・クラッシュ・リカバリーを手動で開始します。 グループ・クラッシュ・リカバリーの後は、問題のコンテナーに対応する表スペースは使用不可になります (詳しくは、損傷した表スペースでのリカバリーに関するトピックを参照してください)。

循環ロギングの場合には、問題の発生している表スペースが再始動障害の原因となります。 問題の発生している表スペース名のリストは、 データベースの再始動操作が失敗した原因がコンテナーの問題である場合には、 管理通知ログに含まれています。 データベースに SYSTEM TEMPORARY 表スペースが 1 つしかなく、 しかもその SYSTEM TEMPORARY 表スペースがドロップ・ペンディング状態である場合は、 データベースの再始動操作が正常に完了したらすぐに新しい TEMPORARY 表スペースを作成する必要があります。

WRITE RESUME
入出力書き込み操作が中断状態だったときにクラッシュしたデータベースの再始動を強制します。 クラッシュ・リカバリーを実行する前に、このパラメーターは入出力書き込み操作を再開します。 Db2 pureScale 環境では、このパラメーターはすべての中断状態のメンバーに対して入出力書き込み操作を再開します。

I/O書き込み操作を一時停止するために使用した接続が現在ハングしていて、その後のすべての接続試行もハングしている場合にも、このWRITE RESUMEパラメーターを使用できます。 このケースでパラメーターを使用する場合、RESTART DATABASE コマンドは、クラッシュ・リカバリーを実行せずに、データベースに対する入出力書き込み操作を再開します。 WRITE RESUME パラメーターを指定した RESTART DATABASE コマンドは、データベースのクラッシュ後に使用した場合にのみ、クラッシュ・リカバリーを実行します。

使用上の注意

データベースへの接続を試行すると、 データベースを再始動する必要があることを示すエラー・メッセージが戻される場合、 このコマンドを発行してください。 このエラー・メッセージは、このデータベースを用いた前のセッションが異常終了した (例えば、電源障害により) 場合にのみ生成されます。

Partitioned database environments

パーティション・データベース・システムでは、未確定トランザクションを解決するために、以下の例で示すように、すべてのデータベース・パーティション上で RESTART DATABASE コマンドを発行する必要があります。

db2_all "db2 restart database database-alias"

パーティション・データベース環境内の 1 つのデータベース・パーティションだけでデータベースを再始動した場合、データベースを再始動する必要があることを示すメッセージが、後続のデータベース照会で戻されることがあります。 このメッセージは、照会が依存しているデータベース・パーティションのデータベースを再始動しなかったために戻されます。 すべてのデータベース・パーティションでデータベースを再始動すれば、問題を解決できます。

Db2 pureScale environments

Db2 pureScale 環境では、 RESTART DATABASE コマンドがクラッシュ・リカバリーを手動で呼び出す唯一の方法です。 データベース・マネージャーは、グループ・クラッシュ・リカバリーまたはメンバー・クラッシュ・リカバリーが必要かどうかを自動的に判別します。 グループ・クラッシュ・リカバリーの完了後に、グループ・クラッシュ・リカバリーを実行しなかったいずれかのメンバーに未確定トランザクションが存在する場合には、そうした未確定トランザクションの解決を可能にするために、それらのメンバーにメンバー・クラッシュ・リカバリーを実行する必要があります。

クラッシュの時点で、データベースに対する書き込み操作が中断の途中だった場合には、RESTART DATABASE コマンドを使用することにより、クラッシュ・リカバリーを実行してください。 SET WRITE SUSPEND 操作が別のメンバーで実行されている場合、クラッシュ・リカバリーを実行する前に、SET WRITE SUSPEND 操作の完了を待機する必要があるかもしれません。 それが完了した後に、RESTART DATABASE コマンドを WRITE RESUME パラメーター付きで発行して、データベースを再始動し、すべての中断状態メンバーの書き込み操作を再開してください。

クラッシュの時点で、データベースでの書き込み操作が正常に中断状態に入っていた場合には、クラッシュ・リカバリーを実行できる 2 つの方法があります。
  • WRITE RESUME パラメーターを指定した RESTART DATABASE コマンドを使用できます。
  • アクティブなメンバーから、SET WRITE コマンドに RESUME パラメーターを付けて発行し、次いでクラッシュしたメンバーから RESTART DATABASE コマンドを発行する。