メインコンテンツまでスキップ
に最終更新

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

戻り値​

列名データ型説明
TabletIdIntタブレットの一意の識別子。
ReplicaIdIntレプリカの一意の識別子。
BackendIdIntレプリカが配置されている Backend(BE)ノードの ID。
VersionIntレプリカの現在のバージョン。
LastFailedVersionIntレプリカが最後に失敗したときのバージョン。-1 は失敗がないことを示します。
LastSuccessVersionIntレプリカが最後に成功したときのバージョン。
CommittedVersionIntレプリカのコミット済みバージョン。
SchemaHashIntレプリカのスキーマを表すハッシュ値。
VersionNumIntレプリカが経たバージョンの数。
IsBadBooleanレプリカが異常な状態かどうかを示します(true/false)。
IsUserDropBooleanユーザーによる削除対象としてレプリカがマークされているかどうかを示します。
StateStringレプリカの現在の状態(例: NORMAL)。
StatusStringレプリカの健全性を示す状態(例: 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";