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: レプリカが存在するバックエンドが利用できません。
- VERSION_ERROR: レプリカのデータバージョンが不完全です。
- SCHEMA_ERROR: レプリカのスキーマハッシュが不正です。
- MISSING: レプリカが存在しません。
戻り値
| Column | DataType | Note |
|---|---|---|
| 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コマンドを実行するユーザーは、少なくとも以下の権限を持っている必要があります:
| Privilege | Object | Notes |
|---|---|---|
| Admin_priv | Database | テーブル、パーティション、システムレベルコマンドの管理を含む、データベース上の管理操作を実行するために必要です。 |
例
-
テーブルの全レプリカのレプリカステータスを表示する
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";