-STOP DATABASE コマンド ( )Db2

-STOP DATABASE コマンドは、指定されたオブジェクトをアプリケーションから利用できなくし、そのデータセットをクローズする。

指定できるオブジェクトは、次のとおりです。
  • データベース
  • 表スペース
  • 索引スペース
  • パーティション化表スペースまたは索引スペース (データ・パーティション化副次索引を収容する索引スペースも含む) の物理パーティション
  • 非パーティション化副次索引の論理パーティション

このコマンドを 2 次索引の論理パーティションを停止するために使用した場合、このコマンドは、その索引に 関連するデータ・セットをクローズしません。

データ共用環境においては、このコマンドはデータ共用グループのメンバー すべてに適用されます。 GBP依存オブジェクトがコマンド STOP DATABASE で停止された場合、 Db2 は、そのオブジェクトが GBP に依存しなくなるよう必要な処理を行います。

省略形: -STO DB

環境 -STOP DATABASE

このコマンドは、 z/OS® コンソール、TSO下のDSNセッション、 DB2I パネル( DB2 COMMANDS)、 IMS または CICS® 端末、または計装機能インターフェース(IFI)を使用するプログラムから発行できます。

データ共有範囲 :グループ

承認 -STOP DATABASE

このコマンドを実行するには、次のいずれかの特権または権限を含む処理の特権セットを 使用する必要があります。
  • STOPDB 特権
  • DBMAINT 権限
  • DBCTRL 権限
  • DBADM 権限
  • システム DBADM 権限
  • SYSCTRL 権限
  • SYSADM 権限

このコマンドで指定されたデータベースに対する STOPDB 特権が上記権限セットにないと、 このデータベースに対してエラー・メッセージが出されます。

暗黙に作成されたデータベースの場合、データベース特権または権限は、暗黙に作成されたデータベース または DSNDB04 で保持されます。 暗黙に作成されたデータベース内の特定の表スペースまたは索引スペース に対して STOP DATABASE コマンドが発行される場合、表スペースの所有権には、これらの表スペース を停止するのに十分な権限があります。 これは、暗黙に作成された表スペースまたは索引スペースの名前をコマンドで明示的に指定した場合、所有者はその表スペースまたは索引スペースに関する情報を表示できるということを意味します。

ログオンしている z/OS コンソールまたは TSO SDSF から発行された Db2 コマンドは、1 次および 2 次許可 ID を使用して Db2 許可によって検査することができます。 変更の開始 z/OS でログインしたユーザーIDは、 または同様のセキュリティサーバーで定義されている必要があります。 RACF変更の終わり

データ定義制御がアクティブであれば、データベース、 表スペース、あるいは登録表や索引を含む索引スペース を停止するのに、インストール SYSOPR またはインストール SYSADM 権限が必要です。

データベース DSNDB06 に含まれる表スペースと索引スペース は、許可を検査する必要があります。 START DATABASE 許可検査が必要な表スペースまたは索引スペース を停止させると、それを再始動するのにインストール SYSADM 権限が必要になります。

構文 -STOP DATABASE

構文図を読むビジュアルシンタックスダイアグラムをスキップするSTOP DATABASE(,database-name*dbname1: dbname2dbname**dbname*dbname**dbstring1*dbstring2*)SPACENAM(,スペース名*spacename1: spacename2spacename**spacename*spacename**spacestring1*spacestring2*)PART(,整数integer1: integer2)CLONEAT(COMMIT)

オプションの説明 -STOP DATABASE

以下の 2 つのオプションのいずれかが必要です。
( database-name, …)
停止するデータベースの名前、または停止する表スペースまたは索引スペースを含むデータベースの名前を 指定します。 以下のバリエーションが受け入れられます。
(データベース名,...)
1 つ以上のデータベース名をコンマまたはブランクで区切って指定します。
(*)
プロセスの特権セットに必要な許可がある Db2 サブシステムに定義されている、すべてのデータベース。
( データベース名1 : データベース名2 )
名前が UNICODE で、dbname1dbname2 の間 (両方を含む) にあるすべてのデータベース。
(dbname*)
dbnameという文字列で始まる名前で、1~7文字のデータベース。
(*dbname)
dbnameという文字列で終わる名前で、1~7文字のデータベース。
(*dbname*)
dbnameという文字列を含むすべてのデータベース。dbnameは 1~6文字で構成される。
(* dbstring1 * dbstring2 *)
名前に文字列を含むすべてのデータベース dbstring1dbstring2 合わせて2文字から5文字の文字列を含むすべてのデータベース。
SPACENAM( スペース名、…)
指定された、停止するデータベース内の表スペースまたは索引の名前を示します。
省略形: SPACE、SP
スペース名
停止する、1 つ以上の表スペースまたは索引スペースの名前。 次のバリエーションが受け入れられます。 スペースネーム スペーストリング は、次のリストのどの形式でもかまいません( spacename1spacename2 は1~8文字の任意の文字列を表し、 スペースネーム は1~7文字の任意の文字列を表します)
(spacename, ...)
コンマまたはブランクで区切られた 1 つ以上の索引スペース名。
(*)
プロセスの特権セットに必要な許可がある Db2 サブシステムに定義されている、すべての表スペースまたは索引スペース。
(スペース名1 :スペース名2 )
名前が UNICODE で、spacename1spacename2 の間 (両方を含む) にあるすべての表スペースまたは索引スペース
(spacename*)
1~7文字の文字列 spacename で始まる名前を持つすべてのテーブル空間またはインデックス空間。
(*spacename)
1~7文字の文字列 spacename で終わる名前を持つすべてのテーブル空間またはインデックス空間。
(*spacename*)
名前に1~6文字の文字列spacename を含むすべてのテーブル空間またはインデックス空間。
(* スペース文字列1 * スペース文字列2 *)
名前に文字列を含むすべてのテーブル空間またはインデックス空間 spacestring1spacestring2 合計2~5文字を含むもの。
部分 (整数,...)
指定された表スペースまたは索引のパーティションの内、停止する 1 つ以上のパーティションのパーティション番号を指定します。 他のパーティションの START または STOP 状態は変更されません。

指定する integer は、対応するスペース名およびデータベース名 の有効なパーティション番号でなければなりません。 指定したパーティション番号が無効であると、無効な番号ごとにエラー・メッセージが出されます が、指定したパーティションが有効であればそれらはすべて停止されます。

以下のいずれかのように指定して、 integer をコーディングできます。
  • 1 つ以上のパーティションのリスト
  • 照合順序が integer1 以上 で integer2 以下のすべてのパーティション番号の範囲
  • リストと範囲の組み合わせ

PART は、パーティション化表スペース、パーティション化索引、およびパーティション化表スペースの非パーティション化タイプ 2 索引について有効です。 以下のオブジェクトタイプのいずれかに PART を指定した場合、 Db2 はエラーメッセージを発行し、オブジェクトは停止されません:

  • パーティションで区切られていないテーブルスペース
  • パーティショニングされていないタイプ1インデックス
  • パーティショニングされたテーブル・スペースに定義されていないタイプ2インデックス
  • 変更の開始ワークファイル・データベースにおけるパーティション・バイ・グロース(PBG)テーブル・スペース変更の終わり

論理パーティションが停止していると、 その索引はクローズされません。 索引をクローズするには、PART を使用せずに非パーティション索引を停止する必要があります。

CLONE
クローン・オブジェクトを停止します。 CLONE キーワードが指定されていない場合、基本表オブジェクト が停止され、クローン表オブジェクトは処理されません。 CLONE キーワードを指定すると、 クローン・オブジェクトのみが処理されます。
AT(COMMIT)
指定されたオブジェクトを現在 STOP 状況としてマークして 新しいリクエスターがアクセスしないようにします。 現時点で実行中のアプリケーションについては、次のコミットまでは アクセスを続けることができます。 コミット後には、コミットしたアプリケーションによるそれ以上のアクセス は禁止されます。 すべてのジョブがクレームを解放し、かつすべてのユーティリティー がこれに対するドレーン・ロックを解放した時点で、オブジェクトは実際に停止され、STOP 状況に置かれ ます。 RELEASE(DEALLOCATE) でバインドされたスレッドを中断するには AT(COMMIT) を指定 します (特にスレッドの再使用が頻繁に行われる状態では)。

このオプションは、宣言済みの一時データベースとそのデータベース内 の表スペースについては無視されます。

使用上の注意事項 -STOP DATABASE

明示的に停止したデータベース
テーブル空間およびインデックスが明示的に停止された場合(STOP DATABASEコマンドのSPACENAMオプションを使用)、START DATABASEコマンドを使用して明示的に開始する必要があります。 データベースを開始しても、明示的に停止されている 表スペースまたは索引は開始しません。
テーブルスペース、インデックス、パーティションを停止
STOP DATABASEコマンドが発行されると、テーブルスペース、インデックス、およびパーティションは物理的に閉じられますが、パーティショニングされたテーブルスペースの非パーティショニングインデックスの論理パーティションは例外です。 宣言済みの 一時表用の索引スペースを停止または開始することはできません。
TSOでの操作、 z/OS、およびバッチ

TSOまたは z/OS コンソールからSTOP DATABASEコマンドが発行された場合、端末を解放するために、コマンドは非同期で動作します。 コマンドがバッチ・ジョブから出されると、 停止しているデータベースに後のステップが依存している場合には、 コマンドは非同期的に働きます。 STOP DATABASE コマンドはデータベースを停止する前に、そのデータベースに対する進 行中の処理をドレーンします。 最初の要求の時点でドレーン・ロックを獲得できないと、 ロックの獲得を繰り返し試みます。 ロック獲得の試行回数が 15 回を超えてタイムアウトになるか、 あるいは重大なデッドロック状態が生じると、このコマンドは失敗します。

すべてのデータベースが停止していることを確認する

STOP DATABASEコマンドが非同期で処理されている場合、コマンドが完了する前に DSN9022I というメッセージが発行される場合があります。 メッセージ DSNT736I は、STOP DATABASE コマンドの非同期処理が完了したことを示すために発行されます。

データベース内の表スペースおよび索引の停止状況を検査する には、DISPLAY DATABASE コマンドを使用します。 状況が STOPP であれば、 そのオブジェクトが停止の処理中であることを示します。 また、 状況が STOP であれば、停止は既に完了してそのオブジェクトが 停止状態にあることを示します。 オブジェクトは、現在そのオブジェクトに アクセスしているすべてのアクティブ・スレッドが静止するまで、停止しません。

STOP DATABASE コマンドが正常に処理を完了しないと、 オブジェクトは STOP ペンディング (STOPP) 状況のままになる場合があります。

通信データベースとリソース制限データベースの停止
通信データベース(CDB)とリソース制限データベース(RLST)がアクティブな場合、それらを停止することはできません。 それらのデータベースは作成時にアクティブとなり、 Db2 によってアクティベートされます。
SYSCONTXカタログ・テーブル空間またはSYSCONTXカタログ・テーブル空間内のテーブルのインデックスを停止する
SYSCONTXまたは関連インデックスを停止する際に信頼済みコンテキストが使用されている場合、すでに定義されている信頼済みコンテキストは引き続き使用できます。
停止 DSNDB01
アプリケーションプランまたはパッケージの実行中に DSNDB01 データベースを停止しようとすると、 DSNDB01 のロック競合によりタイムアウトが発生する場合があります。 これは、 Db2 が起動されてから初めてアプリケーションプランまたはパッケージが実行された場合、またはプラン用のスケルトンカーソルテーブル(SKCT)またはパッケージ用のスケルトンパッケージテーブル(SKPT)がEDMプールからスワップアウトされた場合に発生する可能性が高いです。
制限付きステータスのテーブルスペース
アプリケーションプロセスが制限付きステータス(RECP)にあるテーブルスペース、または制限付きステータスにある必要なインデックスに対してトランザクションロックを要求した場合、 Db2 はロックを取得し、アプリケーションがテーブルスペースまたはインデックスにアクセスしようとするまでステータスを検出しません。 その後、アプリケーションは SQLCODE -904 (リソースが使用不可) を受け取り、ロックをコミットまたはロールバックすることにより (RELEASE オプションの値が COMMIT の場合)、または終了することにより (RELEASE の値が DEALLOCATE の場合) 解放します。 コマンド STOP DATABASE を 表スペースまたは索引スペースのいずれかに出した時点で トランザクション・ロックが有効であれば、そのコマンドは中断します。 このコマンドはデータベースを停止する前に、 進行中の作業をドレーンするのに必要なロックを獲得する試みを繰り返します。 そして、ロックを獲得する試行回数が 15 回を超えると タイムアウトになり、コマンドは失敗します。
PRO制限状態のテーブルスペースパーティションを停止する
永続的読み取り専用(PRO)制限ステータスにあるテーブルスペースが停止された場合、パーティションはPRO制限ステータスのままになります。
ディスク故障後
故障したデバイスと Db2 間のI/Oインターフェースを遮断する前にSTOP DATABASEコマンドを発行すると、I/Oリクエストが不完全になる可能性があります。 このハング状態を防ぐには、 z/OS コマンドのFORCEオプションを使用してデバイスを強制的にオフラインにするか、障害が発生する前にデバイスのI/Oタイミング間隔を設定して、中断を作成します。 I/Oタイミング間隔は、IECIOSxx z/OS parmlib メンバーを通じて、または z/OS コマンドを発行することで設定できます
SETIOS MIH,DEV=dddd,IOTIMING=mm:ss
LOBテーブルスペースの停止

次の表は、STOP DATABASE コマンドが使用するロックを要約しています。

表 1. STOP DATABASE コマンドが使用するロッキング
コマンド 表スペース・タイプ   獲得されるロック
コミットする パーティション PART 変更の開始指定されたパーティションにドレインオール。変更の終わり
  変更の開始すべてのパーティションにドレインオール。変更の終わり
非パーティション   変更の開始テーブルスペースの水切り。変更の終わり
STOP パーティション PART 指定したパーティションに対する X ロック。 指定されたパーティションに対する一括ドレーン。
  全パーティションの X ロック。 すべてのパーティションに対する一括ドレーン。
非パーティション   表スペース X ロック。 表スペースに対する一括ドレーン。
データ共有メンバーのトレース情報
グループスコープを持つこのコマンドが Db2 のデータ共有メンバーで発行されると、他のすべてのアクティブなメンバーでも実行されます。 他のグループメンバーのIFICID 090トレース記録を見ると、元の命令が発行されたメンバーからのトレース記録に加えて、 016.TLPKN5F の相関IDからSYSOPR権限IDによって同じ命令が発行されたことがわかります。 Db2 のデータ共有におけるコマンドの適用範囲を参照してください。

-STOP DATABASE

例 1: データベース DSN8D81A の表スペース DSN8S81E を 停止し、この表スペースに属するデータ・セットをクローズします。
-STOP DATABASE(DSN8D81A) SPACENAM(DSN8S81E)
例 2: すべてのデータベース (DSNDB01、DSNDB06、および 作業ファイル・データベースを除く) を停止します。
-STOP DATABASE(*)
例 3: すべてのジョブがクレームを解放し、しかもすべてのユーティリティー がドレーン・ロックを解放した時点で、 すべてのデータベース (DSNDB01、DSNDB06、および 作業ファイル・データベースを除く) を停止します。
-STOP DATABASE(*) AT(COMMIT)
例 4: データベース DSN8D81A のパーティション化表スペース の非パーティション索引である XEMP2 の先頭パーティションを停止します。 パーティション 1 は論理的に 停止し、アプリケーションからアクセスできません。しかし、非パーティション索引の 各部分は個別の物理的データ・セットに関連付けられていないため、クローズ されるデータ・セットはありません。
-STOP DATABASE(DSN8D81A) SPACENAM(XEMP2) PART(1)
例 5: データベース DSN8D81A 内の、名前が「T」で 始まり、「IQUA03」のストリングで終わる、すべての表スペースを停止します。
-STOP DATABASE(DSN8D81A) SPACENAM(T*IQUA03)
次のような出力により、コマンドが正常に終了したことが示されます。
DSN9022I - DSNTDDIS 'STOP DATABASE' NORMAL COMPLETION
DSNT736I - ASYNCHRONOUS STOP DATABASE COMMAND HAS
COMPLETED FOR COMMAND: STOP DB(DSN8D81A) SPACE(T*IQUA03)
例 6: クローン・オブジェクトを停止します。
-STOP DATABASE(MYDB*) SPACENAM(MYDB*SP) CLONE