web-dev-qa-db-ja.com

データベース(DB2)がロック状態になっている原因を見つける方法

DBがロック状態にあるかどうかを確認する方法は知っていますが、私の質問は、どのクエリがテーブル/ dbをロックしたかを調べる方法です。

データベースに予期しない事態が発生した場合に作成されるログファイルはありますか?

7
Govind Kailas

現在のデータベースアクティビティを一覧表示します。

db2top -d [dbname]

このコマンドは、データベースロックを表示します。

db2pd -d [dbname] -lock wait 
3
Govind Kailas

この同じ投稿で説明されているdb2pdは非常に良いオプションです。

さらに、次の手順を使用できます。

db2 "call monreport.lockwait()"

この手順では、データベースに現在存在するロックを非常に整理された方法で示します。

ロックを保持しているアプリケーションIDを確認した後、ロックを引き起こしているSQLステートメントを特定してください。存在しない場合は、すべてのアプリケーションのスナップショットを取得し、アプリケーションIDを検索して、実行中のクエリ(および必要な追加情報)を確認してください。

db2 get snapshot for applications on (DATABASE_NAME) > applications_snapshot.txt

ロックのスナップショットを確認する場合は、それも可能です。

db2 get snapshot for locks on (DATABASE_NAME) > locks_snapshot.txt

最後に重要なことではありませんが、db2topは、ロック、ロック待機などを監視し、「ライブ」で実行するための優れたツールです。

db2top -d (database_name)

オプション「U」

必要に応じて、オプション "U、L"

それが役に立てば幸い。ロドリゴ・トロンベタ