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 | Уникальный идентификатор tablet. |
| ReplicaId | Int | Уникальный идентификатор реплики. |
| BackendId | Int | ID узла Backend (BE), на котором находится реплика. |
| 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 | 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";