SHOW REPLICA STATUS
説明
この文は、テーブルまたはパーティションのレプリカの状態情報を表示するために使用します。
構文
SHOW REPLICA STATUS FROM [ <database_name>.]<table_name> [<partition_list>]
[where_clause]
ここで、
partition_list
: PARTITION (<partition_name>[ , ... ])
また、
where_clause
: WHERE <output_column_name> = <value>
必須パラメータ
1. <table_name>
テーブルの識別子(名前)。データベース(Database)内で一意である必要があります。
識別子は英字(Unicode 名のサポートが有効な場合は、サポート対象言語の文字も可)で始める必要があります。識別子全体をバッククォートで囲まない限り、スペースや特殊文字は使用できません(例: My Object)。
予約済みキーワードは識別子として使用できません。
詳細は、識別子の要件と予約済みキーワードを参照してください。
オプションパラメータ
1. <db_name>
データベースの識別子(名前)。クラスター(Cluster)内で一意である必要があります。
識別子は英字(Unicode 名のサポートが有効な場合は、サポート対象言語の文字も可)で始める必要があります。識別子全体をバッククォートで囲まない限り、スペースや特殊文字は使用できません(例: My Object)。
予約済みキーワードは識別子として使用できません。
詳細は、識別子の要件と予約済みキーワードを参照してください。
2. <partition_list>
パーティションの識別子(名前)をカンマで区切った一覧。各識別子はテーブル(Table)内で一意である必要があります。
識別子は英字(Unicode 名のサポートが有効な場合は、サポート対象言語の文字も可)で始める必要があります。識別子全体をバッククォートで囲まない限り、スペースや特殊文字は使用できません(例: My Object)。
予約済みキーワードは識別子として使用できません。
詳細は、識別子の要件と予約済みキーワードを参照してください。
3. WHERE <output_column_name> = <value>
出力に対する絞り込み条件を指定します。output_column_name は出力フィールドの一覧に含まれている必要があります。
output_column_name が STATUS の場合、値には次のいずれかを指定できます。
- DEAD: レプリカが配置されている Backend が利用できません。
- VERSION_ERROR: レプリカのデータバージョンが不完全です。
- SCHEMA_ERROR: レプリカのスキーマハッシュが正しくありません。
- MISSING: レプリカが存在しません。
戻り値
| 列名 | データ型 | 説明 |
|---|---|---|
| TabletId | Int | タブレットの一意の識別子。 |
| ReplicaId | Int | レプリカの一意の識別子。 |
| BackendId | Int | レプリカが配置されている Backend(BE)ノードの ID。 |
| Version | Int | レプリカの現在のバージョン。 |
| LastFailedVersion | Int | レプリカが最後に失敗したときのバージョン。-1 は失敗がないことを示します。 |
| LastSuccessVersion | Int | レプリカが最後に成功したときのバージョン。 |
| CommittedVersion | Int | レプリカのコミット済みバージョン。 |
| SchemaHash | Int | レプリカのスキーマを表すハッシュ値。 |
| VersionNum | Int | レプリカが経たバージョンの数。 |
| IsBad | Boolean | レプリカが異常な状態かどうかを示します(true/false)。 |
| IsUserDrop | Boolean | ユーザーによる削除対象としてレプリカがマークされているかどうかを示します。 |
| State | String | レプリカの現在の状態(例: NORMAL)。 |
| Status | String | レプリカの健全性を示す状態(例: OK)。 |
アクセス制御要件
この SQL コマンドを実行するユーザーには、少なくとも次の権限が必要です。
| 権限 | オブジェクト | 備考 |
|---|---|---|
| Admin_priv | データベース | テーブルやパーティションの管理、システムレベルのコマンドなど、データベースに対する管理操作の実行に必要です。 |
例
-
テーブルのすべてのレプリカの状態を表示します。
SHOW REPLICA STATUS FROM db1.tbl1;+----------+-----------+-----------+---------+-------------------+--------------------+------------------+------------+------------+-------+------------+--------+--------+
| TabletId | ReplicaId | BackendId | Version | LastFailedVersion | LastSuccessVersion | CommittedVersion | SchemaHash | VersionNum | IsBad | IsUserDrop | State | Status |
+----------+-----------+-----------+---------+-------------------+--------------------+------------------+------------+------------+-------+------------+--------+--------+
| 10145 | 10146 | 10009 | 14 | -1 | 14 | 14 | 182881783 | 1 | false | false | NORMAL | OK |
| 10147 | 10148 | 10009 | 14 | -1 | 14 | 14 | 182881783 | 1 | false | false | NORMAL | OK |
| 10149 | 10150 | 10009 | 14 | -1 | 14 | 14 | 182881783 | 1 | false | false | NORMAL | OK |
| 10151 | 10152 | 10009 | 14 | -1 | 14 | 14 | 182881783 | 1 | false | false | NORMAL | OK |
+----------+-----------+-----------+---------+-------------------+--------------------+------------------+------------+------------+-------+------------+--------+--------+ -
VERSION_ERROR 状態にある、指定したパーティションのレプリカを表示します。
SHOW REPLICA STATUS FROM tbl1 PARTITION (p1, p2)
WHERE STATUS = "VERSION_ERROR"; -
テーブル内で健全でない状態にあるすべてのレプリカを表示します。
SHOW REPLICA STATUS FROM tbl1
WHERE STATUS != "OK";