QUIESCE TABLESPACES FOR TABLE コマンド
QUIESCE TABLESPACES FOR TABLE コマンドは、特定の表の表スペースを静止させます。 有効な静止モードは、共有、更新意図、および排他の 3 つです。
- 静止モードでの共有
- 静止モードでの更新
- 静止モードでの排他
範囲
単一パーティション環境では、ロード操作中に排他モードのロード操作を起動すると、 このコマンドは表スペースをすべて静止します。 パーティション・データベース環境では、このコマンドはデータベース・パーティションでローカルに活動します。 このコマンドは、ロード操作を実行しているデータベース・パーティションに属する表スペースの部分のみを静止します。 パーティション表の場合、表に関連付けられている SYSDATAPARTITIONS.TBSPACEID および SYSDATAPARTITIONS.LONG_TBSPACEID の中のリストに含まれているすべての表スペースのうち、状況が「正常」、「アタッチ」、または「デタッチ」であるもの (例えば SYSDATAPARTITIONS.STATUS が '"'、'A'、または 'D') が静止されます。
許可
- SYSADM
- SYSCTRL
- SYSMAINT
- DBADM
- LOAD
必要な接続
データベース
コマンド構文
コマンド・パラメーター
- TABLE
- tablename
- 非修飾表名を指定します。 システム・カタログ表を指定することはできません。
- schema.tablename
- 修飾表名を指定します。 schema が指定されていない場合は、CURRENT SCHEMA が使用されます。 システム・カタログ表を指定することはできません。
- SHARE
- 静止が共有モードであることを指定します。
「静止モードでの共有」要求を行うと、トランザクションは、表スペースに対して意図的共有ロックを、および表に対して共有ロックを要求します。 トランザクションがロックを獲得すると、 表スペースの状態が QUIESCED SHARE に変更されます。 この状態は、他のユーザーがこれと矛盾する状態を保持していない場合に限り、 静止者に付与されます。 表スペースの状態は、その状態が持続されるように、 許可 ID およびそのユーザーのデータベース・エージェント ID とともに、 表スペースにある表に記録されます。 ある表の表スペースが QUIESCED SHARE 状態である間は、その表を変更できません。 表および表スペースに要求するその他の共有モードは、認められます。 トランザクションがコミットまたはロールバックされる際、 ロックは解除されますが、その表の表スペースはその状態が明示的にリセットされるまで、 QUIESCED SHARE 状態のまま残ります。
- INTENT TO UPDATE
- 静止モードが更新意図モードであることを指定します。
「静止モードでの更新意図」要求を行うと、表スペースは意図的排他 (IX) モードでロックされ、表は更新 (U) モードでロックされます。 表スペースの状態は、表スペースの表に記録されます。
- EXCLUSIVE
- 静止が排他モードであることを指定します。
「静止モードでの排他」要求を行うと、トランザクションは、 表スペースに対する特別な排他ロックと、表に対する特別な排他ロックを要求します。 トランザクションがロックを獲得すると、 表スペースの状態が QUIESCED EXCLUSIVE に変更されます。 表スペースの状態は、 静止者の許可 ID およびデータベース・エージェント ID とともに、 表スペース表に記録されます。 表スペースは、スーパー排他モードで保留されているため、 表スペースへの他のアクセスは認められません。 静止プログラム機能を呼び出すユーザー (静止プログラム) は、 その表と表スペースへの排他的アクセスを行うことができます。
- RESET
- 表スペースの状態が、「正常」にリセットされることを指定します。 静止要求を発行した接続がまだアクティブである場合、静止状態をリセットすることはできません。
静止者がリセットを発行すると、 その静止者に関する静止モードのみリセットされます。 静止者が複数存在する場合は、表スペースの状態が変化していないように見えます。
システム期間テンポラル表および関連した履歴表を操作している場合、 リセット操作は、最初に静止モードを設定したときに使用したものと同じ表に対して実行する必要があります。
例
db2 quiesce tablespaces for table staff share
db2 quiesce tablespaces for table boss.org intent to update
使用上の注意
このコマンドは、 Db2® pureScale® 環境ではサポートされていません。
静止は持続ロックです。 その利点は、それがトランザクション障害、接続障害、 およびシステム障害 (電源障害や、リブートなど) が生じても持続することです。
静止は接続によって所有されます。 接続が失われた場合、静止は残りますが、非所有の状態に移り、 ファントム静止 と呼ばれます。 例えば、ロード操作の削除フェーズ中に停電が発生して中断すると、ロード中の表の表スペースは静止排他状態のままになります。 データベースの再始動時に、この静止は非所有 (ファントム) の状態になります。 ファントム静止を取り除くには、 静止モードが設定されたときに使用されたのと同じユーザー ID による接続が必要です。
- 静止モードが設定されたときに使用されたのと同じユーザー ID でデータベースと接続する。
- LIST TABLESPACES コマンドを使用して、静止させる表スペースを決定する。
- 現行の静止状態を使用して、表スペースを再静止させる。 以下に例を示します。
db2 quiesce tablespaces for table mytable exclusive
完了すると、新しい接続が静止を所有するようになり、ロード操作を再開できるようになります。
1 つの表スペースに対する静止者の限度は、常に 5 人です。
静止プログラムは表スペースの状態を、あまり制限的でない状態から、 より制限的な状態へ (例えば、S から U へ、または U から X へ) 変更できます。 しかし、ユーザーが既に保持している状態より低い状態を要求しても、 元の状態が戻されます。 つまり、状態がダウングレードされることはありません。
システム期間テンポラル表に対する静止操作を実行すると、そのシステム期間テンポラル表および履歴表に関連付けられたすべての表スペースが静止されます。 履歴表に対する静止操作を実行すると、その履歴表に関連付けられたすべての表スペースと、関連付けられたシステム期間テンポラル表が静止されます。