SHOW REPLICA STATUS
説明
このステートメントは、Tableまたはパーティションのレプリカステータス情報を表示するために使用されます。
構文
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>
Tableの識別子(すなわち、名前)。データベース(Database)内で一意である必要があります。
識別子は文字で始まる必要があり(Unicode名前サポートが有効な場合、サポートされている言語の任意の文字)、スペースや特殊文字を含むことはできません。ただし、識別子文字列全体がバッククォートで囲まれている場合は除きます(例:My Object)。
識別子は予約キーワードを使用することはできません。
詳細については、識別子の要件と予約キーワードを参照してください。
オプションパラメータ
1. <db_name>
データベースの識別子(すなわち、名前)。クラスタ(Cluster)内で一意である必要があります。
識別子は文字で始まる必要があり(Unicode名前サポートが有効な場合、サポートされている言語の任意の文字)、スペースや特殊文字を含むことはできません。ただし、識別子文字列全体がバッククォートで囲まれている場合は除きます(例:My Object)。
識別子は予約キーワードを使用することはできません。
詳細については、識別子の要件と予約キーワードを参照してください。
2. <partition_list>
パーティション識別子(すなわち、名前)のカンマ区切りリスト。Table(Table)内で一意である必要があります。
識別子は文字で始まる必要があり(Unicode名前サポートが有効な場合、サポートされている言語の任意の文字)、スペースや特殊文字を含むことはできません。ただし、識別子文字列全体がバッククォートで囲まれている場合は除きます(例:My Object)。
識別子は予約キーワードを使用することはできません。
詳細については、識別子の要件と予約キーワードを参照してください。
3. WHERE <output_column_name> = <value>
出力のフィルタ条件を指定します。output_column_nameは出力フィールドリストの一部である必要があります。
output_column_nameがSTATUSの場合、valueは以下のいずれかになります:
- 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 | 注釈 |
|---|---|---|
| Admin_priv | Database | Table、パーティション、システムレベルコマンドの管理を含む、データベースの管理操作を実行するために必要です。 |
例
-
Tableのすべてのレプリカのレプリカステータスを表示する
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";
-
異常状態にあるTableのすべてのレプリカを表示する
SHOW REPLICA STATUS FROM tbl1
WHERE STATUS != "OK";