patronictl
Patroni предоставляет интерфейс командной строки patronictl , предназначенный главным образом для взаимодействия с REST API Patroni и DCS. Он упрощает операции с кластером и удобен как людям, так и сценариям.
Конфигурация
patronictl использует 3 раздела конфигурации:
- ctl: способ аутентификации в REST API Patroni и проверки подлинности сервера. Подробнее см. параметры ctl ;
- restapi: способ аутентификации в REST API Patroni и проверки подлинности сервера. Используется, только если конфигурации
ctlнедостаточно. patronictl в основном использует разделrestapi.authentication, если отсутствуетctl.authentication, и параметрrestapi.cafile, если отсутствуетctl.cacert. Подробнее см. параметры REST API ; - DCS, например etcd: способ подключения и аутентификации в DCS, используемом Patroni.
Эти параметры можно получить из переменных окружения или файла конфигурации. Способы их задания описаны в соответствующих разделах Параметров конфигурации окружения и Параметров конфигурации YAML .
При использовании переменных окружения Patronictl просто читает и применяет их значения.
При использовании файла конфигурации сообщить о нём patronictl
можно несколькими способами. По умолчанию patronictl
пытается загрузить файл patronictl.yaml из одного из следующих путей в зависимости от системы:
- Mac OS X:
~/Library/Application Support/patroni - Mac OS X (POSIX):
~/.patroni - Unix:
~/.config/patroni - Unix (POSIX):
~/.patroni - Windows (roaming):
C:\Users\<user>\AppData\Roaming\patroni - Windows (not roaming):
C:\Users\<user>\AppData\Local\patroni
Поведение можно переопределить одним из способов:
- задать переменной окружения
PATRONICTL_CONFIG_FILEпуть к пользовательскому файлу конфигурации; - передать путь к пользовательскому файлу в аргументе командной строки
-c/--config-fileкоманды patronictl .
Если patronictl
запускается на том же узле, что и демон patroni, можно использовать один файл конфигурации, если он содержит все разделы, необходимые patronictl
.
Использование
patronictl предоставляет несколько удобных операций. В этом разделе описана каждая из них.
Перед рассмотрением подкоманд patronictl обратите внимание на аргументы командной строки самой patronictl :
-c / --config-file
Как описано выше, задаёт путь к файлу конфигурации patronictl
.
-d / --dcs-url / --dcs
Задаёт строку подключения к DCS, используемому Patroni.
Аргумент переопределяет параметры DCS и namespace из конфигурации patronictl
либо задаёт их, если они отсутствуют.
Значение должно иметь формат DCS://HOST:PORT/NAMESPACE. Например, etcd3://localhost:2379/service подключается к etcd v3 на localhost, где кластер Patroni хранится в пространстве имён service. Отсутствующие части заменяются значениями конфигурации или значениями по умолчанию.
-k / --insecure
Флаг пропуска проверки сертификата SSL сервера REST API.
Синтаксис запуска команды patronictl :
В описании синтаксиса используются следующие правила:
- Параметры в квадратных скобках необязательны;
- Параметры в фигурных скобках означают выбор одного из набора;
- Параметры с
[, ... ]можно указывать несколько раз; - Элементы в верхнем регистре — литералы, которым нужно передать значение.
Тот же синтаксис применяется к подкомандам patronictl
в следующих подразделах. Синтаксис каждой подкоманды следует рассматривать как замену SUBCOMMAND в описании выше.
В следующих подразделах описаны все команды patronictl
. В примерах используются файлы конфигурации из репозитория Patroni на GitHub: postgres0.yml, postgres1.yml и postgres2.yml.
patronictl demote-cluster
Синтаксис
Описание
patronictl demote-cluster преобразует обычный кластер Patroni в резервный кластер
.
Команда добавляет в динамическую конфигурацию раздел standby_cluster, сформированный из параметров подключения к удалённому первичному серверу, а затем ждёт запуска лидера в роли резервного лидера. Перед изменением она выводит текущую топологию кластера и запрашивает подтверждение, если не используется --force.
Необходимо указать хотя бы один из параметров --host, --port или --restore-command.
Параметры
CLUSTER_NAME: имя кластера Patroni.
Если не задано, patronictl
попытается получить его из параметра scope, если тот существует.
--host: адрес удалённого узла.
--port: порт удалённого узла.
--restore-command: команда восстановления записей WAL с удалённого первичного сервера.
--primary-slot-name: имя слота репликации на удалённом узле.
--force: флаг пропуска подтверждений при понижении кластера.
Полезно для сценариев.
Примеры
Преобразовать кластер в резервный, следующий за удалённой конечной точкой первичного сервера:
patronictl dsn
Синтаксис
Описание
patronictl dsn получает строку подключения к одному участнику кластера Patroni.
Если параметрам соответствует несколько участников, выбирается один с приоритетом первичного узла.
Параметры
CLUSTER_NAME: имя кластера Patroni.
Если не задано, patronictl
попытается получить его из параметра scope, если тот существует.
-r / --role
Выбрать участника с заданной ролью.
Допустимые роли:
leader: лидер обычного или резервного кластера Patroni; либоprimary: лидер обычного кластера Patroni; либоstandby-leader: лидер резервного кластера Patroni; либоreplica: реплика кластера Patroni; либоstandby: то же, чтоreplica; либоany: любая роль. Эквивалентно отсутствию параметра; либо
-m / --member
Выбрать участника кластера с заданным именем.
MEMBER_NAME — имя участника.
--group
Выбрать участника заданной группы Citus.
CITUS_GROUP — идентификатор группы Citus.
Примеры
Получить DSN первичного узла:
Получить DSN узла postgresql1:
patronictl edit-config
Синтаксис
Описание
patronictl edit-config изменяет динамическую конфигурацию кластера и обновляет DCS.
При вызове из TTY команда пытается показать различия динамической конфигурации через средство постраничного просмотра. По умолчанию используется less или more. Для другого средства задайте переменной окружения PAGER нужное значение.
Параметры
CLUSTER_NAME: имя кластера Patroni.
Если не задано, patronictl
попытается получить его из параметра scope, если тот существует.
--group
Изменить динамическую конфигурацию заданной группы Citus.
Если не задано, patronictl
попытается получить значение из citus.group, если оно существует.
CITUS_GROUP — идентификатор группы Citus.
-q / --quiet
Флаг пропуска показа различий конфигурации.
-s / --set
Задать указанному параметру динамической конфигурации указанное значение.
CONFIG — путь динамической конфигурации в дереве YAML, уровни которого соединены ..
VALUE — значение CONFIG. Если оно равно null, CONFIG удаляется из динамической конфигурации.
-p / --pg
Задать указанному динамическому параметру Postgres указанное значение.
Это сокращение для --s / --set, где к CONFIG добавляется префикс postgresql.parameters..
PG_CONFIG — имя задаваемого параметра Postgres.
PG_VALUE — значение PG_CONFIG. Если оно равно null, PG_CONFIG удаляется из динамической конфигурации.
--apply
Применить динамическую конфигурацию из заданного файла.
Аналогично нескольким параметрам -s / --set, по одному для каждого параметра из CONFIG_FILE.
CONFIG_FILE — путь к файлу применяемой динамической конфигурации в формате YAML. Для чтения из stdin используйте -.
--replace
Заменить динамическую конфигурацию в DCS конфигурацией из заданного файла.
CONFIG_FILE — путь к файлу новой динамической конфигурации в формате YAML. Для чтения из stdin используйте -.
--force
Флаг пропуска подтверждений при изменении динамической конфигурации.
Полезно для сценариев.
Примеры
Изменить GUC Postgres max_connections:
Изменить параметры loop_wait и ttl:
Удалить maximum_lag_on_failover из динамической конфигурации:
patronictl failover
Синтаксис
Описание
patronictl failover выполняет ручное аварийное переключение в кластере.
Команда предназначена для неисправного кластера, например когда:
- отсутствует лидер; либо
- в синхронном кластере нет доступного синхронного резервного сервера.
При включённом синхронном режиме она также позволяет переключиться на асинхронный узел.
patronictl failover можно запустить и в исправном кластере, однако в таком случае рекомендуется patronictl switchover.
Аварийное переключение может привести к потере данных в зависимости от отставания повышаемой реплики от первичного сервера.
Параметры
CLUSTER_NAME: имя кластера Patroni.
Если не задано, patronictl
попытается получить его из параметра scope, если тот существует.
--group
Выполнить аварийное переключение в заданной группе Citus.
CITUS_GROUP — идентификатор группы Citus.
--candidate
Узел, повышаемый при аварийном переключении.
CANDIDATE_NAME — имя повышаемого узла.
--force
Флаг пропуска подтверждений при аварийном переключении.
Полезно для сценариев.
Примеры
Выполнить аварийное переключение на узел postgresql2:
patronictl flush
Синтаксис
Описание
patronictl flush удаляет запланированные события, если они есть.
Параметры
CLUSTER_NAME
Имя кластера Patroni.
MEMBER_NAME
Удалить запланированные события заданных участников Patroni.
Можно указать несколько участников. Если участники не заданы, рассматриваются все.
Используется только при удалении запланированных перезапусков.
restart
Удалить запланированные перезапуски.
switchover
Удалить запланированное плановое переключение.
--group
Удалить запланированные события заданной группы Citus.
CITUS_GROUP — идентификатор группы Citus.
-r / --role
Удалить запланированные события участников с заданной ролью.
Допустимые роли:
leader: лидер обычного или резервного кластера Patroni; либоprimary: лидер обычного кластера Patroni; либоstandby-leader: лидер резервного кластера Patroni; либоreplica: реплика кластера Patroni; либоstandby: то же, чтоreplica; либоany: любая роль. Эквивалентно отсутствию параметра.
Используется только при удалении запланированных перезапусков.
--force
Флаг пропуска подтверждений при удалении событий.
Полезно для сценариев.
Примеры
Удалить запланированное плановое переключение:
Удалить запланированный перезапуск всех резервных узлов:
Удалить запланированный перезапуск узлов postgresql0 и postgresql1:
patronictl history
Синтаксис
Описание
patronictl history показывает историю аварийных и плановых переключений кластера, если они были.
Вывод содержит следующие сведения:
TL
Временная шкала Postgres, на которой произошло событие.
LSN
LSN Postgres, на котором произошло событие.
Reason
Причина из файла Postgres .history.
Timestamp
Время события.
New Leader
Участник Patroni, повышенный во время события.
Параметры
CLUSTER_NAME
Имя кластера Patroni.
Если не задано, patronictl
попытается получить его из параметра scope, если тот существует.
--group
Показать историю событий заданной группы Citus.
CITUS_GROUP — идентификатор группы Citus.
Если не задано, patronictl
попытается получить значение из citus.group, если оно существует.
-f / --format
Способ форматирования списка событий в выводе.
Допустимые форматы:
pretty: выводит историю как форматированную таблицу; либоtsv: выводит табличные сведения со столбцами, разделёнными\t; либоjson: выводит историю в формате JSON; либоyaml: выводит историю в формате YAML.
По умолчанию используется pretty.
--force
Флаг пропуска подтверждений при удалении событий.
Полезно для сценариев.
Примеры
Показать историю событий:
Показать историю событий в формате YAML:
patronictl list
Синтаксис
Описание
patronictl list показывает сведения о кластере Patroni и его участниках.
Вывод содержит следующие сведения:
Cluster
Имя кластера Patroni.
Member
Имя участника Patroni.
Host
Узел, на котором находится участник.
Role
Текущая роль участника.
Возможные значения:
Leader: текущий лидер обычного кластера Patroni; либоStandby Leader: текущий лидер резервного кластера Patroni; либоSync Standby: синхронный резервный сервер кластера Patroni с включённым синхронным режимом; либоReplica: обычный резервный сервер кластера Patroni.
State
Текущее состояние Postgres на участнике Patroni.
Примеры возможных состояний:
running: Postgres запущен и работает;streaming: участник является репликой, и Postgres передаёт WAL потоком с первичного узла;in archive recovery: участник является репликой, и Postgres получает WAL из архива;stopped: Postgres остановлен;crashed: Postgres аварийно завершился.
TL
Текущая временная шкала Postgres на участнике Patroni.
Receive LSN
Последняя позиция журнала предзаписи, полученная потоковой репликацией участника и синхронизированная с диском (pg_catalog.pg_last_(xlog|wal)_receive_(location|lsn)()).
Receive Lag
Отставание репликации между позицией участника Receive LSN и вышестоящим узлом в MB.
Replay LSN
Последняя позиция журнала предзаписи, воспроизведённая при восстановлении участника (pg_catalog.pg_last_(xlog|wal)_replay_(location|lsn)()).
Replay Lag
Отставание репликации между позицией участника Replay LSN и вышестоящим узлом в MB.
Кроме того, вывод может содержать:
System identifier
Системный идентификатор Postgres.
Показывается в заголовке таблицы.
Только для формата вывода pretty.
Group
Идентификатор группы Citus.
Показывается в заголовке таблицы.
Только для кластера Citus.
Pending restart* означает, что для применения конфигурации Postgres узлу требуется перезапуск. Пустое значение означает, что перезапуск не требуется.
Показывается как атрибут участника.
Shown if:
- При выводе в формате
prettyилиtsvс включённым расширенным выводом; либо - Если узлу требуется перезапуск.
Scheduled restart
Время запланированного перезапуска экземпляра Postgres под управлением участника Patroni. Пустое значение означает отсутствие запланированного перезапуска.
Показывается как атрибут участника.
Shown if:
- При выводе в формате
prettyилиtsvс включённым расширенным выводом; либо - Если у узла есть запланированный перезапуск.
Tags
Содержит теги участника Patroni. Пустое значение означает, что теги не настроены либо имеют значения по умолчанию.
Показывается как атрибут участника.
Shown if:
- При выводе в формате
prettyилиtsvс включённым расширенным выводом; либо - Если у узла есть пользовательские теги или теги по умолчанию с нестандартными значениями.
Scheduled switchover
Время запланированного планового переключения кластера Patroni, если оно есть.
Показывается в нижнем колонтитуле таблицы.
Только при наличии запланированного переключения и формате вывода pretty.
Maintenance mode
Мониторинг кластера в настоящее время приостановлен.
ПримечаниеПоказывается в нижнем колонтитуле таблицы.
Только если кластер на паузе и формат вывода —
pretty.
Параметры
CLUSTER_NAME
Имя кластера Patroni.
Если не задано, patronictl
попытается получить его из параметра scope, если тот существует.
--group
Показать сведения об участниках заданной группы Citus.
CITUS_GROUP — идентификатор группы Citus.
-e / --extended
Показать расширенные сведения.
Принудительно показывать атрибуты Pending restart, Scheduled restart и Tags, даже если их значения пусты.
Применяется только к форматам вывода pretty и tsv.
-t / --timestamp
Вывести временную метку перед сведениями о кластере и участниках.
-f / --format
Способ форматирования списка событий в выводе.
Допустимые форматы:
pretty: выводит историю как форматированную таблицу; либоtsv: выводит табличные сведения со столбцами, разделёнными\t; либоjson: выводит историю в формате JSON; либоyaml: выводит историю в формате YAML.
По умолчанию используется pretty.
-W
Автоматически обновлять сведения каждые 2 секунды.
-w / --watch
Автоматически обновлять сведения с заданным интервалом.
TIME — интервал между обновлениями в секундах.
Примеры
Показать сведения о кластере в формате pretty:
Показать сведения о кластере в формате pretty с расширенными столбцами:
Показать сведения о кластере в формате YAML с временной меткой выполнения:
patronictl pause
Синтаксис
Описание
patronictl pause временно переводит кластер Patroni в режим обслуживания и отключает автоматическое переключение при отказе.
Параметры
CLUSTER_NAME
Имя кластера Patroni.
Если не задано, patronictl
попытается получить его из параметра scope, если тот существует.
--group
Приостановить заданную группу Citus.
CITUS_GROUP — идентификатор группы Citus.
Если не задано, patronictl
попытается получить значение из citus.group, если оно существует.
--wait
Перед возвратом управления вызывающей стороне дождаться паузы всех участников Patroni.
Примеры
Перевести кластер в режим обслуживания и дождаться паузы всех узлов:
patronictl promote-cluster
Синтаксис
Описание
patronictl promote-cluster преобразует резервный кластер в обычный кластер Patroni.
Команда удаляет раздел standby_cluster из динамической конфигурации и ждёт запуска лидера в роли первичного сервера. Перед изменением она выводит текущую топологию кластера и запрашивает подтверждение, если не используется --force.
Параметры
CLUSTER_NAME: имя кластера Patroni.
Если не задано, patronictl
попытается получить его из параметра scope, если тот существует.
--force: флаг пропуска подтверждений при повышении кластера.
Полезно для сценариев.
Примеры
Повысить резервный кластер до обычного кластера Patroni:
patronictl query
Синтаксис
Описание
patronictl query выполняет команду или сценарий SQL на участнике кластера Patroni.
Параметры
CLUSTER_NAME
Имя кластера Patroni.
Если не задано, patronictl
попытается получить его из параметра scope, если тот существует.
--group
Выполнить запрос к заданной группе Citus.
CITUS_GROUP — идентификатор группы Citus.
-r / --role
Выбрать участника с заданной ролью.
Допустимые роли:
leader: лидер обычного или резервного кластера Patroni; либоprimary: лидер обычного кластера Patroni; либоstandby-leader: лидер резервного кластера Patroni; либоreplica: реплика кластера Patroni; либоstandby: то же, чтоreplica; либоany: любая роль. Эквивалентно отсутствию параметра.
-m / --member
Выбрать участника с заданным именем.
MEMBER_NAME — имя выбираемого участника.
-d / --dbname
База данных для подключения и выполнения запроса.
DBNAME — имя базы данных. Если не задано, по умолчанию используется USERNAME.
-U / --username
Пользователь для подключения к базе данных.
USERNAME — имя пользователя. Если не задано, по умолчанию используется пользователь операционной системы, запустивший patronictl query.
--password
Запросить пароль подключающегося пользователя.
Поскольку Patroni использует libpq, вместо этого можно создать файл ~/.pgpass или задать переменную окружения PGPASSWORD.
--format
Способ форматирования вывода запроса.
Допустимые форматы:
pretty: выводит результат как форматированную таблицу; либоtsv: выводит табличные сведения со столбцами, разделёнными\t; либоjson: выводит результат в формате JSON; либоyaml: выводит результат в формате YAML.
По умолчанию используется tsv.
-f / --file
Использовать файл как источник команд запросов.
FILE_NAME — путь к исходному файлу.
-c / --command
Выполнить заданную команду SQL.
SQL_COMMAND — выполняемая команда SQL.
--delimiter
Разделитель при выводе в формате tsv; если не задан, используется \t.
-W
Автоматически повторять запрос каждые 2 секунды.
-w / --watch
Автоматически повторять запрос с заданным интервалом.
TIME — интервал между повторами в секундах.
Примеры
Выполнить команду SQL от пользователя postgres с запросом пароля:
Выполнить команду SQL от пользователя postgres, получив пароль из переменной окружения libpq:
Выполнять команду SQL каждые 2 секунды и выводить результат в формате pretty:
Выполнить команду SQL в базе test и вывести результат в формате YAML:
Выполнить команду SQL на участнике postgresql2:
Выполнить команду SQL на любом резервном сервере:
patronictl reinit
Синтаксис
Описание
patronictl reinit перестраивает резервный экземпляр Postgres под управлением участника-реплики кластера Patroni.
Параметры
CLUSTER_NAME
Имя кластера Patroni.
MEMBER_NAME
Имя участника-реплики, экземпляр Postgres которого будет перестроен.
Можно указать несколько участников-реплик. Если участники не заданы, команда ничего не делает.
--group
Перестроить участника-реплику заданной группы Citus.
CITUS_GROUP — идентификатор группы Citus.
--wait
Дождаться завершения повторной инициализации резервных узлов Postgres.
--force
Флаг пропуска подтверждений при перестроении резервных экземпляров Postgres.
--from-leader
Флаг получения basebackup непосредственно с лидера.
Полезно для сценариев.
Примеры
Запросить перестроение всех участников-реплик кластера Patroni и немедленно вернуть управление вызывающей стороне:
Запросить перестроение postgresql2 и дождаться завершения:
Запросить перестроение postgresql2 с получением basebackup непосредственно с лидера:
patronictl reload
Синтаксис
Описание
patronictl reload запрашивает перезагрузку локальной конфигурации одного или нескольких участников Patroni.
Она также запускает pg_ctl reload на управляемом экземпляре Postgres, даже если ничего не изменилось.
Параметры
CLUSTER_NAME
Имя кластера Patroni.
MEMBER_NAME
Запросить перезагрузку локальной конфигурации заданных участников Patroni.
Можно указать несколько участников. Если участники не заданы, рассматриваются все.
--group
Запросить перезагрузку участников заданной группы Citus.
CITUS_GROUP — идентификатор группы Citus.
-r / --role
Выбрать участников с заданной ролью.
Допустимые роли:
leader: лидер обычного или резервного кластера Patroni; либоprimary: лидер обычного кластера Patroni; либоstandby-leader: лидер резервного кластера Patroni; либоreplica: реплика кластера Patroni; либоstandby: то же, чтоreplica; либоany: любая роль. Эквивалентно отсутствию параметра.
--force
Флаг пропуска подтверждений при запросе перезагрузки локальной конфигурации.
Полезно для сценариев.
Примеры
Запросить перезагрузку локальной конфигурации всех участников кластера Patroni:
patronictl remove
Синтаксис
Описание
patronictl remove удаляет сведения о кластере из DCS.
Это интерактивное действие.
Операция уничтожает сведения о кластере Patroni в DCS.
Параметры
CLUSTER_NAME
Имя кластера Patroni.
--group
Удалить сведения о кластере Patroni, относящиеся к заданной группе Citus.
CITUS_GROUP — идентификатор группы Citus.
-f / --format
Способ форматирования списка участников в выводе при запросе подтверждения.
Допустимые форматы:
pretty: выводит участников как форматированную таблицу; либоtsv: выводит участников как табличные сведения со столбцами, разделёнными\t; либоjson: выводит участников в формате JSON; либоyaml: выводит участников в формате YAML.
По умолчанию используется pretty.
Примеры
Удалить сведения о кластере Patroni batman из DCS:
patronictl restart
Синтаксис
Описание
patronictl restart запрашивает перезапуск экземпляра Postgres под управлением участника кластера Patroni.
Перезапуск можно выполнить немедленно или запланировать.
Параметры
CLUSTER_NAME
Имя кластера Patroni.
--group
Перезапустить кластер Patroni, относящийся к заданной группе Citus.
CITUS_GROUP — идентификатор группы Citus.
-r / --role
Выбрать участников с заданной ролью.
Допустимые роли:
leader: лидер обычного или резервного кластера Patroni; либоprimary: лидер обычного кластера Patroni; либоstandby-leader: лидер резервного кластера Patroni; либоreplica: реплика кластера Patroni; либоstandby: то же, чтоreplica; либоany: любая роль. Эквивалентно отсутствию параметра.
--any
Перезапустить один случайный узел среди соответствующих фильтрам.
--pg-version
Выбрать только участников, версия управляемого экземпляра Postgres которых старше заданной.
PG_VERSION — версия Postgres для сравнения.
--pending
Выбрать только участников с флагом Pending restart.
--timeout: прервать перезапуск при превышении заданного тайм-аута и выполнить аварийное переключение на реплику, если проблема возникла на первичном сервере.
TIMEOUT — количество секунд ожидания до прерывания перезапуска.
--scheduled
Запланировать перезапуск на заданное время.
TIMESTAMP — время перезапуска. Укажите его в однозначном формате, желательно с часовым поясом. Для немедленного перезапуска можно использовать литерал now.
--force
Флаг пропуска подтверждений при запросе перезапуска.
Полезно для сценариев.
Примеры
Немедленно перезапустить всех участников кластера:
Немедленно перезапустить случайного участника кластера:
Запланировать перезапуск на 2023-09-13T18:00-03:00:
patronictl resume
Синтаксис
Описание
patronictl resume выводит кластер Patroni из режима обслуживания и снова включает автоматическое переключение при отказе.
Параметры
CLUSTER_NAME
Имя кластера Patroni.
Если не задано, patronictl
попытается получить его из параметра scope, если тот существует.
--group
Возобновить работу заданной группы Citus.
CITUS_GROUP — идентификатор группы Citus.
Если не задано, patronictl
попытается получить значение из citus.group, если оно существует.
--wait
Перед возвратом управления вызывающей стороне дождаться снятия паузы со всех участников Patroni.
Примеры
Вывести кластер из режима обслуживания:
patronictl show-config
Синтаксис
Описание
patronictl show-config показывает динамическую конфигурацию кластера, хранящуюся в DCS.
Параметры
CLUSTER_NAME
Имя кластера Patroni.
Если не задано, patronictl
попытается получить его из параметра scope, если тот существует.
--group
Показать динамическую конфигурацию заданной группы Citus.
CITUS_GROUP — идентификатор группы Citus.
Если не задано, patronictl
попытается получить значение из citus.group, если оно существует.
Примеры
Показать динамическую конфигурацию кластера batman:
patronictl switchover
Синтаксис
Описание
patronictl switchover выполняет плановое переключение в кластере.
Команда предназначена для исправного кластера, например когда:
- имеется лидер;
- в синхронном кластере доступны синхронные резервные серверы.
Для неисправного кластера может лучше подойти patronictl failover.
Параметры
CLUSTER_NAME
Имя кластера Patroni.
Если не задано, patronictl
попытается получить его из параметра scope, если тот существует.
--group
Выполнить плановое переключение в заданной группе Citus.
CITUS_GROUP — идентификатор группы Citus.
--leader / --primary
Указать лидера, который будет понижен при переключении.
LEADER_NAME должно совпадать с именем текущего лидера кластера.
--candidate
Узел, повышаемый при переключении до роли первичного сервера.
CANDIDATE_NAME — имя повышаемого узла.
--scheduled
Запланировать переключение на заданное время.
TIMESTAMP — время переключения. Укажите его в однозначном формате, желательно с часовым поясом. Для немедленного переключения можно использовать литерал now.
--force
Флаг пропуска подтверждений при плановом переключении.
Полезно для сценариев.
Примеры
Выполнить плановое переключение на узел postgresql2:
Запланировать переключение между postgresql0 и postgresql2 на 2023-09-13T18:00:00-03:00:
patronictl topology
Синтаксис
Описание
patronictl topology показывает сведения о кластере Patroni и его участниках в виде дерева.
Вывод содержит следующие сведения:
Cluster
Имя кластера Patroni.
Показывается в заголовке таблицы.
System identifier
Системный идентификатор Postgres.
Показывается в заголовке таблицы.
Member
Имя участника Patroni.
Сведения в столбце показываются как дерево участников по соединениям репликации.
Host
Узел, на котором находится участник.
Role
Текущая роль участника.
Возможные значения:
Leader: текущий лидер обычного кластера Patroni; либоStandby Leader: текущий лидер резервного кластера Patroni; либоSync Standby: синхронный резервный сервер кластера Patroni с включённым синхронным режимом; либоReplica: обычный резервный сервер кластера Patroni.
State
Текущее состояние Postgres на участнике Patroni.
Примеры возможных состояний:
running: Postgres запущен и работает;streaming: участник является репликой, и Postgres передаёт WAL потоком с первичного узла;in archive recovery: участник является репликой, и Postgres получает WAL из архива;stopped: Postgres остановлен;crashed: Postgres аварийно завершился.
TL
Текущая временная шкала Postgres на участнике Patroni.
Receive LSN
Последняя позиция журнала предзаписи, полученная потоковой репликацией участника и синхронизированная с диском (pg_catalog.pg_last_(xlog|wal)_receive_(location|lsn)()).
Receive Lag
Отставание репликации между позицией участника Receive LSN и вышестоящим узлом в MB.
Replay LSN
Последняя позиция журнала предзаписи, воспроизведённая при восстановлении участника (pg_catalog.pg_last_(xlog|wal)_replay_(location|lsn)()).
Replay Lag
Отставание репликации между позицией участника Replay LSN и вышестоящим узлом в MB.
Кроме того, вывод может содержать:
Group
Идентификатор группы Citus.
Показывается в заголовке таблицы.
Только для кластера Citus.
Pending restart* означает, что для применения конфигурации Postgres узлу требуется перезапуск. Пустое значение означает, что перезапуск не требуется.
Показывается как атрибут участника.
Показывается, если узлу требуется перезапуск.
Scheduled restart
Время запланированного перезапуска экземпляра Postgres под управлением участника Patroni. Пустое значение означает отсутствие запланированного перезапуска.
Показывается как атрибут участника.
Показывается, если у узла есть запланированный перезапуск.
Tags
Содержит теги участника Patroni. Пустое значение означает, что теги не настроены либо имеют значения по умолчанию.
Показывается как атрибут участника.
Показывается, если у узла есть пользовательские теги или теги по умолчанию с нестандартными значениями.
Scheduled switchover
Время запланированного планового переключения кластера Patroni, если оно есть.
Показывается в нижнем колонтитуле таблицы.
Показывается только при наличии запланированного переключения.
Maintenance mode
Мониторинг кластера в настоящее время приостановлен.
ПримечаниеПоказывается в нижнем колонтитуле таблицы.
Показывается только при паузе кластера.
Параметры
CLUSTER_NAME
Имя кластера Patroni.
Если не задано, patronictl
попытается получить его из параметра scope, если тот существует.
--group
Показать сведения об участниках заданной группы Citus.
CITUS_GROUP — идентификатор группы Citus.
-W
Автоматически обновлять сведения каждые 2 секунды.
-w / --watch
Автоматически обновлять сведения с заданным интервалом.
TIME — интервал между обновлениями в секундах.
Примеры
Показать топологию кластера batman, где postgresql1 и postgresql2 реплицируются с postgresql0:
patronictl version
Синтаксис
Описание
patronictl version получает версию приложения patronictl
. Кроме того, вывод может содержать версии кластеров Patroni и их участников.
Параметры
CLUSTER_NAME
Имя кластера Patroni.
MEMBER_NAME
Имя участника кластера Patroni.
--group
Рассматривать кластер Patroni с заданной группой Citus.
CITUS_GROUP — идентификатор группы Citus.
Примеры
Получить только версию patronictl :
Получить версию patronictl
и всех участников кластера batman:
Получить версию patronictl
и участников postgresql1 и postgresql2 кластера batman: