すべてのプロダクト
Search
ドキュメントセンター

PolarDB:メタデータロックを表示

最終更新日:May 24, 2024

このトピックでは、PolarDB-X 1.0のSHOW METADATA LOCKステートメントを使用して、メタデータロックを保持するトランザクションを照会する方法について説明します。

概要

PolarDB-X 1.0がグローバルセカンダリインデックス (GSI) を作成するとき、組み込みのメタデータロックを使用してトランザクションとデータの一貫性を確保します。 通常、既存のテーブルのGSIを作成するには長い時間がかかります。 GSIの作成時にメタデータロックを保持するトランザクションが実行されている場合、トランザクションが完了する前にスキーマを変更することはできません。 この場合、SHOW METADATA LOCKステートメントを使用して、メタデータロックを保持するトランザクションと、実行中の対応するSQLステートメントを照会できます。 これにより、スキーマの変更をブロックしている実行時間の長いトランザクションをトラブルシューティングできます。

説明 PolarDB-X 1.0は、オンラインスキーマ変更機能を提供します。 GSIの作成中、メタデータバージョンは4回切り替えられます。 これらのスイッチのうちの2つは、メタデータロックの書き込みロックを取得し、メタデータがロードされた直後にロック解除されます。 書き込みロックは、残りの時間は保持されない。

構文

SHOW METDATA {ロック | ロック} [schema_name[.table_name]]

schema_nameおよびtbl_nameはオプションで、表示されるデータベース名またはテーブル名をフィルタリングするために使用されます。

show metadata lock; ## ノードでメタデータロックを保持するすべての接続を表示します。
show metadata lock xxx_db; # ノードのxxx_dbにメタデータロックを保持するすべての接続を表示します。
show metadata lock xxx_db.tb_name; # ノード上のxxx_dbのtb_nameにメタデータロックを保持するすべての接続を表示します。

mysql> show metadata lock;
--------- -------- ----------------- --------------------- ------------- ------------------ ----------------- ------------------------------- ------------------------------------- + -----------------------------------------------
| CONN_ID | TRX_ID | TRACE_ID | スキーマ | テーブル | タイプ | 期間 | 有効 | フロントエンド | SQL |
--------- -------- ----------------- --------------------- ------------- ------------------ ----------------- ------------------------------- ------------------------------------- + -----------------------------------------------
| 4 | 0 | f88cf71cbc00001 | XXXX_DRDS_LOCAL_APP | full_gsi_ddl | MDL_SHARED_WRITE | MDL_TRANSACTION | 1 | XXXX_DRDS_LOCAL_APP@127.0.0.1:54788 | 'full_gsi_ddl ' (id) VALUE (null) に挿入; |
| 5 | 0 | f88cf71cbc00000 | XXXX_DRDS_LOCAL_APP | full_gsi_ddl | MDL_SHARED_WRITE | MDL_TRANSACTION | 1 | XXXX_DRDS_LOCAL_APP@127.0.0.1:54789 | 'full_gsi_ddl ' (id) VALUE (null) に挿入する |
--------- -------- ----------------- --------------------- ------------- ------------------ ----------------- ------------------------------- ------------------------------------- + -----------------------------------------------
セットの2列 (0.00秒) 
説明 このステートメントは、すでにメタデータロックを保持している接続を表示するためにのみ使用されます。 メタデータロックを待つ接続の表示には使用できません。
表1. 列名のリスト
列名説明
CONN_IDメタデータロックを保持する接続のID。
TRX_IDメタデータロックを保持するトランザクションのID。
TRACE_IDメタデータロックを保持するSQL文のトレースID。
スキーマデータベースの名前。
テーブルテーブルの名前。
タイプ保持されているメタデータロックのタイプ。
期間メタデータロックが保持されている期間。
有効メタデータロックが解放されているかどうかを示します。
フロントフロントエンド接続情報。
SQLメタデータロックを保持するSQL文。