Question & Answer
Question
表スペースの状態を確認したところ、「静止モードでの共有」 (または「静止モードでの排他」) 状態になっていました。リセット方法を教えてください。
Answer
表スペースの「静止モードでの共有」または「静止モードでの排他」状態をリセットするには、QUIESCE TABLESPACES FOR TABLE コマンドを使用します。以下の手順に従ってコマンドを実行してください。
補足 1:静止プログラム許可 ID
表スペースの静止モードを設定したユーザーが不明な場合、表スペース・スナップショットを取得してユーザー名を確認できます。スナップショット出力の「静止プログラム許可 ID 」を確認してください。
表スペースの静止は接続によって所有されます。 接続が失われた場合、静止は残りますが、非所有の状態に移り、ファントム静止と呼ばれます。ファントム静止を取り除くには、 静止モードが設定されたときに使用されたのと同じユーザー ID による接続が必要です。
ファントム静止を取り除くには、次のようにします。
関連情報
QUIESCE TABLESPACES FOR TABLE コマンド
LIST TABLESPACES コマンド
GET SNAPSHOT コマンド
- コマンド実行時に表名を指定する必要があるため、まず LIST TABLESPACES SHOW DETAIL コマンドを実行し、静止モードが取られているオブジェクトの表スペース ID と オブジェクト ID を確認してください。
例)
db2 list tablespaces show detail 表スペース ID = 2 名前 = USERSPACE1 タイプ = データベース管理スペース 内容 = すべての永続データ。LARGE 表スペース。 状態 = 0x0001 詳しい説明: 静止モードでの共有 合計ページ数 = 8192 使用できるページ数 = 8160 使用したページ = 3424 フリー・ページ = 4736 最高水準点 (ページ) = 4800 ページ・サイズ (バイト) = 4096 エクステント・サイズ (ページ) = 32 プリフェッチ・サイズ (ページ) = 32 コンテナー数 = 1 静止状態の数 = 1 静止プログラム 1: 表スペース ID = 2 オブジェクト ID = 4
- 1 で確認した表スペース ID とオブジェクト ID を使用して、以下の例のように、SYSCAT.TABLES に対する SELECT ステートメントの出力から、スキーマ名と表名を確認してください。(TABLEID 列にオブジェクト ID を指定します。)
例)
db2 "select char(tabschema,10), char(tabname,10) from syscat.tables where tableid=4 and tbspaceid=2" 1 2 ---------- ---------- DB2INST1 T1 1 レコードが選択されました。
- 表スペースの静止モードを設定したユーザーでデータベースに接続し、2) で確認したスキーマ名、表名を指定して、QUIESCE TABLESPACES FOR TABLE コマンドを実行し、表スペースの状態をリセットします。
例)
db2 connect to testdb user db2inst1 db2 quiesce tablespaces for table db2inst1.t1 reset DB20000I QUIESCE TABLESPACES コマンドが正常に完了しました。
補足 1:静止プログラム許可 ID
表スペースの静止モードを設定したユーザーが不明な場合、表スペース・スナップショットを取得してユーザー名を確認できます。スナップショット出力の「静止プログラム許可 ID 」を確認してください。
- 例)
db2 get snapshot for tablespaces on sample 表スペース名 = USERSPACE1 表スペース ID = 2 表スペース・タイプ = データベース管理スペース 表スペース・コンテンツ・タイプ = すべての永続データ。LARGE 表スペース。 表スペース・ページ・サイズ (バイト) = 4096 表スペース・エクステント・サイズ (ページ) = 32 有効な自動プリフェッチ・サイズ = はい 現在使用中のバッファー・プール ID = 1 次回始動のバッファー・プール ID = 1 自動ストレージの使用 = はい 自動サイズ変更有効 = はい ファイル・システム・キャッシング = いいえ 表スペース状態 = 0x'00000001' 詳しい説明: 静止モードでの共有 表スペース・プリフェッチ・サイズ (ページ) = 32 合計ページ数 = 8192 使用できるページ数 = 8160 使用済みページ数 = 3424 ペンディング中フリー・ページの数 = 0 フリー・ページ数 = 4736 最高水準点 (ページ) = 4800 初期表スペース・サイズ (バイト) = 33554432 現行表スペース・サイズ (バイト) = 33554432 最大表スペース・サイズ (バイト) = NONE 増加サイズ (バイト) = AUTOMATIC サイズ変更が最後に正常に行われた時刻 = 最後に試行されたサイズ変更は失敗 = いいえ Rebalancer モード = 再平衡化なし 最小リカバリー時間 = 静止状態の数 = 1 静止プログラム許可 ID = DB2INST1 静止プログラム・エージェント ID = 7 静止プログラム表スペース ID = 2 静止プログラム・オブジェクト ID = 4 静止状態 = 4
表スペースの静止は接続によって所有されます。 接続が失われた場合、静止は残りますが、非所有の状態に移り、ファントム静止と呼ばれます。ファントム静止を取り除くには、 静止モードが設定されたときに使用されたのと同じユーザー ID による接続が必要です。
ファントム静止を取り除くには、次のようにします。
-
- 静止モードを設定したユーザー ID でデータベースに接続します。
- LIST TABLESPACES コマンドを使用して、静止させる表スペースを決定します。
- 現行の静止状態を使用して、表スペースを再静止させます。
db2 quiesce tablespaces for table 表名 exclusive
- これで新しい接続が静止を所有するようになり、静止をリセットできます。
db2 quiesce tablespaces for table 表明 reset
- 静止のリセットが完了すると、他の接続でもこの表スペースへアクセスできるようになります。
関連情報
QUIESCE TABLESPACES FOR TABLE コマンド
LIST TABLESPACES コマンド
GET SNAPSHOT コマンド
[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PlZAAU","label":"Database Objects-\u003ETablespaces"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]
Was this topic helpful?
Document Information
Modified date:
25 August 2023
UID
swg21595190