メインコンテンツまでスキップ
バージョン: 4.x

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: レプリカが存在しません。

戻り値

ColumnDataTypeNote
TabletIdIntタブレットの一意識別子。
ReplicaIdIntレプリカの一意識別子。
BackendIdIntレプリカが配置されているBackend(BE)ノードのID。
VersionIntレプリカの現在のバージョン。
LastFailedVersionIntレプリカが最後に失敗した時のバージョン。-1は失敗がないことを意味します。
LastSuccessVersionIntレプリカが最後に成功した時のバージョン。
CommittedVersionIntレプリカのコミット済みバージョン。
SchemaHashIntレプリカのスキーマを表すハッシュ値。
VersionNumIntレプリカが経過したバージョンの数。
IsBadBooleanレプリカが不良状態にあるかどうかを示します(true/false)。
IsUserDropBooleanレプリカがユーザー主導の削除対象としてマークされているかどうかを示します。
StateStringレプリカの現在の状態(例:NORMAL)。
StatusStringレプリカの健全性ステータス(例:OK)。

アクセス制御要件

このSQLコマンドを実行するユーザーは、少なくとも以下の権限を持つ必要があります:

PrivilegeObject注釈
Admin_privDatabaseTable、パーティション、システムレベルコマンドの管理を含む、データベースの管理操作を実行するために必要です。

  • 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";