Перейти к основному содержимому

patronictl

примечание

Эта страница переведена при помощи нейросети GigaChat.

Patroni имеет интерфейс командной строки под названием patronictl, который в основном используется для взаимодействия с REST API Patroni и с DCS. Он предназначен для упрощения выполнения операций в кластере и может легко использоваться людьми или скриптами.

Конфигурация

patronictl использует три раздела конфигурации:

  • 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 (не 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 [ { -c | --config-file } CONFIG_FILE ]
[ { -d | --dcs-url | --dcs } DCS_URL ]
[ { -k | --insecure } ]
SUBCOMMAND

Синтаксис для этого краткого описания:

  • Параметры между квадратными скобками являются необязательными;
  • Опции между фигурными скобками представляют операцию «выбрать одну из множества»;
  • Опции с [, ... ] могут быть указаны несколько раз;
  • То, что написано заглавными буквами, представляет собой литерал, которому следует присвоить значение.

Этот же синтаксис будет использоваться при описании подкоманд patronictl в следующих подразделах. Также, когда описываются подкоманды в следующих подразделах, необходимо рассматривать сводку команд как замену для SUBCOMMAND в приведенной выше сводке.

В следующих подразделах будет представлено описание каждой команды, реализуемой patronictl. Для примера будут использоваться конфигурационные файлы, присутствующие в GitHub-репозитории Patroni (файлы postgres0.yml, postgres1.yml и postgres2.yml).

patronictl dsn

Краткий обзор

dsn
[ CLUSTER_NAME ]
[ { { -r | --role } { leader | primary | standby-leader | replica | standby | any } | { -m | --member } MEMBER_NAME } ]
[ --group CITUS_GROUP ]

Описание

patronictl dsn получает строку подключения для одного члена кластера Patroni.

Если несколько участников соответствуют параметрам этой команды, будет выбран один из них, с приоритетом основного узла.

Параметры

CLUSTER_NAME

Имя кластера Patroni. Если не указано, patronictl попытается получить его из конфигурации scope, если она существует.

-r / --role – выбор участника, который имеет заданную роль. Роль может быть одной из следующих:

  • leader – лидер обычного кластера Patroni или резервного кластера Patroni;
  • primary – лидер обычного кластера Patroni;
  • standby-leader – лидер резервного кластера Patroni;
  • replica – реплика кластера Patroni;
  • standby – то же самое, что и replica;
  • any – любая роль. То же самое, что и пропуск этого параметра.

-m / --member – выбор члена кластера с указанным именем:

  • MEMBER_NAME - имя участника.

--group – выбор участника, который является частью указанной группы Citus:

  • CITUS_GROUP - идентификатор группы Citus.

Примеры

Получение DSN основного узла:

$ patronictl -c postgres0.yml dsn batman -r primary
host=127.0.0.1 port=5432

Получение DSN узла с именем postgresql1:

$ patronictl -c postgres0.yml dsn batman --member postgresql1
host=127.0.0.1 port=5433

patronictl edit-config

Краткий обзор

edit-config
[ CLUSTER_NAME ]
[ --group CITUS_GROUP ]
[ { -q | --quiet } ]
[ { -s | --set } CONFIG="VALUE" [, ... ] ]
[ { -p | --pg } PG_CONFIG="PG_VALUE" [, ... ] ]
[ { --apply | --replace } CONFIG_FILE ]
[ --force ]

Описание

patronictl edit-config изменяет динамическую конфигурацию кластера и обновляет этим DCS.

Примечание:

При вызове через TTY команда пытается показать разницу динамической конфигурации через pager. По умолчанию она пытается использовать либо less, либо more. Если нужен другой pager, установите переменную окружения 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

Установка заданного параметра динамической конфигурации PostgreSQL со значением по умолчанию.

По сути, это сокращенная запись для --s / --set с добавлением префикса postgresql.parameters..

PG_CONFIG - имя параметра конфигурации PostgreSQL, который необходимо установить.

PG_VALUE - значение для PG_CONFIG. Если оно равно null, то PG_CONFIG будет удалено из динамической конфигурации.

--apply

Применение динамической конфигурации из указанного файла.

Это похоже на указание нескольких параметров -s / --set, по одному для каждой конфигурации из CONFIG_FILE.

CONFIG_FILE - путь к файлу, содержащему динамическую конфигурацию, которую необходимо применить, в формате YAML. Используйте -, если необходимо читать с stdin.

--replace

Замена динамической конфигурации в DCS на динамическую конфигурацию, указанную в данном файле.

CONFIG_FILE - путь к файлу, содержащему новую динамическую конфигурацию, которая должна вступить в силу, в формате YAML. Используйте -, если необходимо прочитать с stdin.

--force

Флаг для пропуска запросов подтверждения при изменении динамической конфигурации. Полезно для скриптов.

Примеры

Изменение max_connections PostgreSQL GUC:

patronictl -c postgres0.yml edit-config batman --pg max_connections="150" --force
---
+++
@@ -1,6 +1,8 @@
loop_wait: 10
maximum_lag_on_failover: 1048576
postgresql:
+ parameters:
+ max_connections: 150
pg_hba:
- host replication replicator 127.0.0.1/32 md5
- host all all 0.0.0.0/0 md5

Configuration changed

Изменение настроек loop_wait и ttl:

patronictl -c postgres0.yml edit-config batman --set loop_wait="15" --set ttl="45" --force
---
+++
@@ -1,4 +1,4 @@
-loop_wait: 10
+loop_wait: 15
maximum_lag_on_failover: 1048576
postgresql:
pg_hba:
@@ -6,4 +6,4 @@
- host all all 0.0.0.0/0 md5
use_pg_rewind: true
retry_timeout: 10
-ttl: 30
+ttl: 45

Configuration changed

Удаление настроек maximum_lag_on_failover из динамической конфигурации:

patronictl -c postgres0.yml edit-config batman --set maximum_lag_on_failover="null" --force
---
+++
@@ -1,5 +1,4 @@
loop_wait: 10
-maximum_lag_on_failover: 1048576
postgresql:
pg_hba:
- host replication replicator 127.0.0.1/32 md5

Configuration changed

patronictl failover

Краткий обзор

failover
[ CLUSTER_NAME ]
[ --group CITUS_GROUP ]
[ { --leader | --primary } LEADER_NAME ]
--candidate CANDIDATE_NAME
[ --force ]

Описание

patronictl failover выполняет ручное переключение при отказе в кластере.

Он предназначен для использования, когда кластер неисправен, например:

  • нет лидера;
  • нет синхронного резервирования в синхронном кластере.

Он также позволяет переключиться на асинхронный узел, если включен синхронный режим.

Примечание:

Ничего не мешает запустить patronictl failover в исправном кластере. Однако в таких случаях рекомендуется использовать patronictl switchover.

Предупреждение:

Инициирование отказа может привести к повреждению данных в зависимости от того, насколько актуальна продвигаемая реплика по сравнению с первичной.

Параметры

CLUSTER_NAME

Имя кластера Patroni.

Если не указано, patronictl попытается получить его из конфигурации scope, если она существует.

--group

Выполнение отказа в данной группе Citus.

CITUS_GROUP является идентификатором группы Citus.

--leader / --primary

Указывает, кто должен быть ожидаемым лидером во время отказа.

Если указано, выполняется переключение вместо отказа.

LEADER_NAME должно соответствовать имени текущего лидера в кластере.

Предупреждение:

Этот аргумент устарел и будет удален в будущей версии.

--candidate

Узел, который будет повышен при отказе.

CANDIDATE_NAME - имя узла, которое будет повышено.

--force

Флаг для пропуска запросов подтверждения при выполнении отказа. Полезно для скриптов.

Примеры

Переключение на узел postgresql2:

$ patronictl -c postgres0.yml failover batman --candidate postgresql2 --force
Current cluster topology
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+----------------+---------+-----------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 3 | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 3 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 3 | 0 |
+-------------+----------------+---------+-----------+----+-----------+
2023-09-12 11:52:27.50978 Successfully failed over to "postgresql2"
+ Cluster: batman (7277694203142172922) -+---------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+----------------+---------+---------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Replica | stopped | | unknown |
| postgresql1 | 127.0.0.1:5433 | Replica | running | 3 | 0 |
| postgresql2 | 127.0.0.1:5434 | Leader | running | 3 | |
+-------------+----------------+---------+---------+----+-----------+

patronictl flush

Краткий обзор

flush
CLUSTER_NAME
[ MEMBER_NAME [, ... ] ]
{ restart | switchover }
[ --group CITUS_GROUP ]
[ { -r | --role } { leader | primary | standby-leader | replica | standby | any } ]
[ --force ]

Описание

patronictl flush удаляет запланированные события, если таковые имеются.

Параметры

CLUSTER_NAME

Имя кластера Patroni.

MEMBER_NAME

Отмена запланированного события для указанного члена (членов) Patroni.

Можно указать несколько членов. Если члены не указаны, учитываются все из них.

Примечание:

Используется только при отмене запланированных событий перезапуска.

restart

Отмена запланированных событий перезапуска.

switchover

Отмена запланированного события переключения.

--group

Отмена запланированных событий из указанной группы Citus.

CITUS_GROUP - идентификатор группы Citus.

-r / --role

Отмена запланированных событий для участников, которые имеют заданную роль.

Роль может быть одной из следующих:

  • leader – лидер обычного кластера Patroni или резервного кластера Patroni;
  • primary – лидер обычного кластера Patroni;
  • standby-leader – лидер резервного кластера Patroni;
  • replica – реплика кластера Patroni;
  • standby –то же самое, что и replica;
  • any – любая роль. То же самое, что и отсутствие этого параметра.

Примечание:

Используется только при отказе от запланированных событий перезапуска.

--force

Флаг для пропуска запросов подтверждения при выполнении очистки. Полезно для скриптов.

Примеры

Отказ от запланированного события переключения:

$ patronictl -c postgres0.yml flush batman switchover --force
Success: scheduled switchover deleted

Отмена запланированного перезапуска всех резервных узлов:

$ patronictl -c postgres0.yml flush batman restart -r replica --force
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+---------------------------+
| Member | Host | Role | State | TL | Lag in MB | Scheduled restart |
+-------------+----------------+---------+-----------+----+-----------+---------------------------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 5 | | 2023-09-12T17:17:00+00:00 |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 5 | 0 | 2023-09-12T17:17:00+00:00 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 5 | 0 | 2023-09-12T17:17:00+00:00 |
+-------------+----------------+---------+-----------+----+-----------+---------------------------+
Success: flush scheduled restart for member postgresql1
Success: flush scheduled restart for member postgresql2

Отмена запланированного перезапуска узлов postgresql0 и postgresql1:

$ patronictl -c postgres0.yml flush batman postgresql0 postgresql1 restart --force
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+---------------------------+
| Member | Host | Role | State | TL | Lag in MB | Scheduled restart |
+-------------+----------------+---------+-----------+----+-----------+---------------------------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 5 | | 2023-09-12T17:17:00+00:00 |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 5 | 0 | 2023-09-12T17:17:00+00:00 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 5 | 0 | 2023-09-12T17:17:00+00:00 |
+-------------+----------------+---------+-----------+----+-----------+---------------------------+
Success: flush scheduled restart for member postgresql0
Success: flush scheduled restart for member postgresql1

patronictl history

Краткий обзор

history
[ CLUSTER_NAME ]
[ --group CITUS_GROUP ]
[ { -f | --format } { pretty | tsv | json | yaml } ]

Описание

patronictl history отображает историю событий отказа и переключения кластера, если таковые имеются.

Вывод включает информацию:

  • TL – линия времени PostgreSQL, на которой произошло событие;
  • LSN – LSN PostgreSQL, при котором произошло событие;
  • Reason – причина, извлеченная из файла .history PostgreSQL;
  • 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

Флаг для пропуска запросов подтверждения при выполнении очистки. Полезно для скриптов.

Примеры

Вывод истории событий:

$ patronictl -c postgres0.yml history batman
+----+----------+------------------------------+----------------------------------+-------------+
| TL | LSN | Reason | Timestamp | New Leader |
+----+----------+------------------------------+----------------------------------+-------------+
| 1 | 24392648 | no recovery target specified | 2023-09-11T22:11:27.125527+00:00 | postgresql0 |
| 2 | 50331864 | no recovery target specified | 2023-09-12T11:34:03.148097+00:00 | postgresql0 |
| 3 | 83886704 | no recovery target specified | 2023-09-12T11:52:26.948134+00:00 | postgresql2 |
| 4 | 83887280 | no recovery target specified | 2023-09-12T11:53:09.620136+00:00 | postgresql0 |
+----+----------+------------------------------+----------------------------------+-------------+

Вывод истории событий в формате YAML:

$ patronictl -c postgres0.yml history batman -f yaml
- LSN: 24392648
New Leader: postgresql0
Reason: no recovery target specified
TL: 1
Timestamp: '2023-09-11T22:11:27.125527+00:00'
- LSN: 50331864
New Leader: postgresql0
Reason: no recovery target specified
TL: 2
Timestamp: '2023-09-12T11:34:03.148097+00:00'
- LSN: 83886704
New Leader: postgresql2
Reason: no recovery target specified
TL: 3
Timestamp: '2023-09-12T11:52:26.948134+00:00'
- LSN: 83887280
New Leader: postgresql0
Reason: no recovery target specified
TL: 4
Timestamp: '2023-09-12T11:53:09.620136+00:00'

patronictl list

Краткий обзор

list
[ CLUSTER_NAME [, ... ] ]
[ --group CITUS_GROUP ]
[ { -e | --extended } ]
[ { -t | --timestamp } ]
[ { -f | --format } { pretty | tsv | json | yaml } ]
[ { -W | { -w | --watch } TIME } ]

Описание

patronictl list отображает информацию о кластере Patroni и его участниках.

Вывод включает информацию:

  • Cluster – имя кластера Patroni;

  • Member – имя участника Patroni;

  • Host – хост, на котором находится участник;

  • Role – текущая роль участника. Может быть одним из следующих вариантов:

    • Leader – текущий лидер обычного кластера Patroni;
    • Standby Leader – текущий лидер резервного кластера Patroni;
    • Sync Standby – синхронный резервный экземпляр кластера Patroni с включенным синхронным режимом;
    • Replica – обычный резервный экземпляр кластера Patroni;
  • State – текущее состояние PostgreSQL в Patroni. Некоторые примеры среди возможных состояний:

    • running – если PostgreSQL в настоящее время запущен и работает;
    • streaming – если это реплика и PostgreSQL в данный момент транслирует журналы WAL с основного узла;
    • in archive recovery – если это реплика и PostgreSQL в данный момент извлекает журналы WAL из архива;
    • stopped – если PostgreSQL был выключен;
    • crashed – если PostgreSQL вышел из строя;
  • TL – текущая временная шкала PostgreSQL в члене Patroni;

  • Lag in MB – количество мегабайт отставания репликации между членом Patroni и его вышестоящим элементом.

Кроме того, следующая информация может быть включена в вывод:

  • System identifier – идентификатор системы PostgreSQL;

    Примечание:

    Отображается в заголовке таблицы.

    Отображается только в том случае, если формат вывода pretty.

  • Group – идентификатор группы Citus.

    Примечание:

    Отображается в заголовке таблицы.

    Отображается только при кластере Citus.

  • Pending restart* указывает на то, что узел нуждается в перезапуске для того, чтобы некоторые конфигурации PostgreSQL вступили в силу. Пустое значение указывает на то, что узел не требует перезагрузки.

    Примечание:

    Отображается как атрибут участника.

    Отображается, если:

    • печать в формате pretty или tsv и с включенным расширенным выводом;
    • или если узлу требуется перезагрузка.
  • Scheduled restart – метка времени, когда запланирован перезапуск экземпляра PostgreSQL, управляемого членом Patroni. Пустое значение указывает на отсутствие запланированного перезапуска для участника.

    Примечание:

    Отображается как атрибут участника.

    Отображается, если:

    • печать в формате pretty или tsv и с включенным расширенным выводом;
    • или если узел имеет запланированную перезагрузку.
  • Tags – содержит теги, установленные для члена Patroni. Пустое значение указывает на то, что либо не были настроены никакие теги, либо они были настроены со значениями по умолчанию.

    Примечание:

    Отображается как атрибут участника.

    Отображается, если:

    • печать в формате 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 – интервал между обновлениями, в секундах.

Примеры

Вывод информации о кластере в красивом формате:

$ patronictl -c postgres0.yml list batman
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+----------------+---------+-----------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 5 | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 5 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 5 | 0 |
+-------------+----------------+---------+-----------+----+-----------+

Вывод информации о кластере в красивом формате с расширенными столбцами:

$ patronictl -c postgres0.yml list batman -e
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+-----------------+-------------------+------+
| Member | Host | Role | State | TL | Lag in MB | Pending restart | Scheduled restart | Tags |
+-------------+----------------+---------+-----------+----+-----------+-----------------+-------------------+------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 5 | | | | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 5 | 0 | | | |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 5 | 0 | | | |
+-------------+----------------+---------+-----------+----+-----------+-----------------+-------------------+------+

Вывод информации о кластере в формате YAML, со временем выполнения:

$ patronictl -c postgres0.yml list batman -f yaml -t
2023-09-12 13:30:48
- Cluster: batman
Host: 127.0.0.1:5432
Member: postgresql0
Role: Leader
State: running
TL: 5
- Cluster: batman
Host: 127.0.0.1:5433
Lag in MB: 0
Member: postgresql1
Role: Replica
State: streaming
TL: 5
- Cluster: batman
Host: 127.0.0.1:5434
Lag in MB: 0
Member: postgresql2
Role: Replica
State: streaming
TL: 5

patronictl pause

Краткий обзор

pause
[ CLUSTER_NAME ]
[ --group CITUS_GROUP ]
[ --wait ]

Описание

Временно переводит кластер Patroni в режим обслуживания и отключает автоматический отказоустойчивый переход.

Параметры

CLUSTER_NAME

Имя кластера Patroni.

Если не указано, patronictl попытается получить его из конфигурации scope, если она существует.

--group

Приостановить данную группу Citus.

CITUS_GROUP - идентификатор группы Citus.

Если не задано, patronictl попытается получить его из конфигурации citus.group, если она существует.

--wait

Ожидание, пока все участники Patroni будут приостановлены, прежде чем вернуть управление вызывающему абоненту.

Примеры

Перевод кластер в режим обслуживания и ожидание паузы всех узлов:

$ patronictl -c postgres0.yml pause batman --wait
'pause' request sent, waiting until it is recognized by all nodes
Success: cluster management is paused

patronictl query

Краткий обзор

query
[ CLUSTER_NAME ]
[ --group CITUS_GROUP ]
[ { { -r | --role } { leader | primary | standby-leader | replica | standby | any } | { -m | --member } MEMBER_NAME } ]
[ { -d | --dbname } DBNAME ]
[ { -U | --username } USERNAME ]
[ --password ]
[ --format { pretty | tsv | json | yaml } ]
[ { { -f | --file } FILE_NAME | { -c | --command } SQL_COMMAND } ]
[ --delimiter ]
[ { -W | { -w | --watch } TIME } ]

Описание

patronictl query выполняет команду SQL или сценарий для участника кластера Patroni.

Параметры

CLUSTER_NAME

Имя кластера Patroni.

Если не указано, patronictl попытается получить его из конфигурации scope, если она существует.

--group

Запрос указанной группы Citus.

CITUS_GROUP - идентификатор группы Citus.

-r / --role

Выбор участника с заданной ролью. Роль может быть одной из следующих:

  • leader – лидер обычного кластера Patroni или резервного кластера 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, и запрос его пароля:

    $ patronictl -c postgres0.yml query batman -U postgres --password -c "SELECT now()"
Password:
now
2023-09-12 18:10:53.228084+00:00

Выполнение команды SQL от имени пользователя postgres и получиние пароля из переменной окружения libpq:

    $ PGPASSWORD=zalando patronictl -c postgres0.yml query batman -U postgres -c "SELECT now()"
now
2023-09-12 18:11:37.639500+00:00

Выполнение команды SQL и вывод результата каждые 2 секунды в формате pretty:

$ patronictl -c postgres0.yml query batman -c "SELECT now()" --format pretty -W
+----------------------------------+
| now |
+----------------------------------+
| 2023-09-12 18:12:16.716235+00:00 |
+----------------------------------+
+----------------------------------+
| now |
+----------------------------------+
| 2023-09-12 18:12:18.732645+00:00 |
+----------------------------------+
+----------------------------------+
| now |
+----------------------------------+
| 2023-09-12 18:12:20.750573+00:00 |
+----------------------------------+

Запуск команды SQL в базе данных test и вывод результаты в формате YAML:

$ patronictl -c postgres0.yml query batman -d test -c "SELECT now() AS column_1, 'test' AS column_2" --format yaml
- column_1: 2023-09-12 18:14:22.052060+00:00
column_2: test

Запуск команды SQL на участнике postgresql2:

$ patronictl -c postgres0.yml query batman -m postgresql2 -c "SHOW port"
port
5434

Запуск команды SQL на любой из резервных копий:

$ patronictl -c postgres0.yml query batman -r replica -c "SHOW port"
port
5433

patronictl reinit

Краткий обзор

reinit
CLUSTER_NAME
[ MEMBER_NAME [, ... ] ]
[ --group CITUS_GROUP ]
[ --wait ]
[ --force ]

Описание

patronictl reinit восстанавливает экземпляр резервной копии PostgreSQL, управляемый репликой – членом кластера Patroni.

Параметры

CLUSTER_NAME

Имя кластера Patroni.

MEMBER_NAME

Имя реплики, для которого будет восстановлен экземпляр PostgreSQL.

Можно указать несколько членов реплики. Если не указано ни одного члена, команда ничего не делает.

--group

Повторное создание члена реплики данной группы Citus.

CITUS_GROUP - идентификатор группы Citus.

--wait

Ожидание завершения повторной инициализации узла (узлов) резервного копирования PostgreSQL.

--force

Флаг для пропуска запросов подтверждения при восстановлении экземпляров резервного копирования PostgreSQL. Полезно для сценариев.

Примеры

Запрос перестройки всех реплик кластера Patroni и немедленного возвращения управления вызывающей стороне:

$ patronictl -c postgres0.yml reinit batman postgresql1 postgresql2 --force
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+----------------+---------+-----------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 5 | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 5 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 5 | 0 |
+-------------+----------------+---------+-----------+----+-----------+
Success: reinitialize for member postgresql1
Success: reinitialize for member postgresql2

Запрос перестройки postgresql2 и ожидание ее завершения:

$ patronictl -c postgres0.yml reinit batman postgresql2 --wait --force
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+----------------+---------+-----------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 5 | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 5 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 5 | 0 |
+-------------+----------------+---------+-----------+----+-----------+
Success: reinitialize for member postgresql2
Waiting for reinitialize to complete on: postgresql2
Reinitialize is completed on: postgresql2

patronictl reload

Краткий обзор

reload
CLUSTER_NAME
[ MEMBER_NAME [, ... ] ]
[ --group CITUS_GROUP ]
[ { -r | --role } { leader | primary | standby-leader | replica | standby | any } ]
[ --force ]

Описание

patronictl reload запрашивает перезагрузку локальной конфигурации для одного или нескольких участников Patroni.

Он также вызывает pg_ctl reload в управляемом экземпляре PostgreSQL, даже если ничего не изменилось.

Параметры

CLUSTER_NAME

Имя кластера Patroni.

MEMBER_NAME

Запрос перезагрузки локальной конфигурации для указанного члена (членов) Patroni.

Можно указать несколько членов. Если не указаны, учитываются все из них.

--group

Запрос перезагрузки участников данной группы Citus.

CITUS_GROUP - идентификатор группы Citus.

-r / --role

Выбор участников с заданной ролью. Роль может быть одной из следующих:

  • leader – лидер обычной кластерной системы Patroni или резервной кластерной системы Patroni;
  • primary – лидер обычной кластерной системы Patroni;
  • standby-leader – лидер кластера Patroni в режиме ожидания;
  • replica – реплика кластера Patroni;
  • standby – то же самое, что и replica;
  • any – любая роль. То же самое, что и пропуск этого параметра.

--force

Флаг для пропуска запросов подтверждения при запросе перезагрузки локальной конфигурации. Полезно для скриптов.

Примеры

Запрос перезагрузки локальной конфигурации всех членов кластера Patroni:

$ patronictl -c postgres0.yml reload batman --force
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+----------------+---------+-----------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 5 | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 5 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 5 | 0 |
+-------------+----------------+---------+-----------+----+-----------+
Reload request received for member postgresql0 and will be processed within 10 seconds
Reload request received for member postgresql1 and will be processed within 10 seconds
Reload request received for member postgresql2 and will be processed within 10 seconds

patronictl remove

Краткий обзор

remove
CLUSTER_NAME
[ --group CITUS_GROUP ]
[ { -f | --format } { pretty | tsv | json | yaml } ]

Описание

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 -c postgres0.yml remove batman
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+----------------+---------+-----------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 5 | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 5 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 5 | 0 |
+-------------+----------------+---------+-----------+----+-----------+
Please confirm the cluster name to remove: batman
You are about to remove all information in DCS for batman, please type: "Yes I am aware": Yes I am aware
This cluster currently is healthy. Please specify the leader name to continue: postgresql0

patronictl restart

Краткий обзор

restart
CLUSTER_NAME
[ MEMBER_NAME [, ...] ]
[ --group CITUS_GROUP ]
[ { -r | --role } { leader | primary | standby-leader | replica | standby | any } ]
[ --any ]
[ --pg-version PG_VERSION ]
[ --pending ]
[ --timeout TIMEOUT ]
[ --scheduled TIMESTAMP ]
[ --force ]

Описание

patronictl restart запрашивает перезагрузку экземпляра PostgreSQL, управляемого членом кластера Patroni.

Перезагрузка может быть выполнена немедленно или запланирована на потом.

Параметры

CLUSTER_NAME

Имя кластера Patroni.

--group

Перезапуск кластера Patroni, связанного с данной группой Citus.

CITUS_GROUP - идентификатор группы Citus.

-r / --role

Выбор участников, которые имеют заданную роль. Роль может быть одной из следующих:

  • leader – лидер обычного кластера Patroni или резервного кластера Patroni;
  • primary – лидер обычного кластера Patroni;
  • standby-leader – лидер кластера Patroni в режиме ожидания;
  • replica – реплика кластера Patroni;
  • standby – то же самое, что и replica;
  • any – любая роль. То же самое, что и пропуск этого параметра.

--any

Перезапуск одного случайного узла среди тех, которые соответствуют заданным фильтрам.

--pg-version

Выбираются только те участники, версия управляемого экземпляра Postgres которых старше указанной версии.

PG_VERSION - версия PostgreSQL, которая будет сравниваться.

--pending

Выбираются только участники, помеченные как Pending restart.

timeout

Прерывание перезапуска, если он занимает больше указанного тайм-аута, и переключение на реплику, если проблема связана с первичной системой.

TIMEOUT - количество секунд ожидания перед прерыванием перезагрузки.

--scheduled

Запланированный перезапуск на заданной временной метке.

TIMESTAMP - временная метка, когда должен произойти перезапуск. Укажите его в однозначном формате, предпочтительно с указанием часового пояса. Также можно использовать литерал now, чтобы перезапуск был выполнен немедленно.

--force

Флаг для пропуска запросов подтверждения при запросе операций перезапуска. Полезно для скриптов.

Примеры

Немедленный перезапуск всех участников кластера:

$ patronictl -c postgres0.yml restart batman --force
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+----------------+---------+-----------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 6 | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 6 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 6 | 0 |
+-------------+----------------+---------+-----------+----+-----------+
Success: restart on member postgresql0
Success: restart on member postgresql1
Success: restart on member postgresql2

Немедленный перезапуск случайного члена кластера:

$ patronictl -c postgres0.yml restart batman --any --force
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+----------------+---------+-----------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 6 | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 6 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 6 | 0 |
+-------------+----------------+---------+-----------+----+-----------+
Success: restart on member postgresql1

Запланированная перезагрузку на 2023-09-13T18:00-03:00:

$ patronictl -c postgres0.yml restart batman --scheduled 2023-09-13T18:00-03:00 --force
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+----------------+---------+-----------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 6 | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 6 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 6 | 0 |
+-------------+----------------+---------+-----------+----+-----------+
Success: restart scheduled on member postgresql0
Success: restart scheduled on member postgresql1
Success: restart scheduled on member postgresql2

patronictl resume

Краткий обзор

resume
[ CLUSTER_NAME ]
[ --group CITUS_GROUP ]
[ --wait ]

Описание

patronictl resume выводит кластер Patroni из режима обслуживания и снова включает автоматическое переключение при повреждении.

Параметры

CLUSTER_NAME

Имя кластера Patroni.

Если не указано, patronictl попытается получить его из конфигурации scope, если она существует.

--group

Возобновление работы группы Citus.

CITUS_GROUP - идентификатор группы Citus.

Если не указано, patronictl попытается получить его из конфигурации citus.group, если она существует.

--wait

Подождать, пока все члены Patroni не снимут паузу, прежде чем возвращать управление вызывающей стороне.

Примеры

Вывод кластера из режима обслуживания:

$ patronictl -c postgres0.yml resume batman --wait
'resume' request sent, waiting until it is recognized by all nodes
Success: cluster management is resumed

patronictl show-config

Краткий обзор

show-config
[ CLUSTER_NAME ]
[ --group CITUS_GROUP ]

Описание

patronictl show-config показывает динамическую конфигурацию кластера, которая хранится в DCS.

Параметры

CLUSTER_NAME

Имя кластера Patroni.

Если не указано, patronictl попытается получить его из конфигурации scope, если она существует.

--group

Показать динамическую конфигурацию группы Citus.

CITUS_GROUP - идентификатор группы Citus.

Если не указано, patronictl попытается получить его из конфигурации citus.group, если она существует.

Примеры

Показать динамическую конфигурацию кластера batman:

$ patronictl -c postgres0.yml show-config batman
loop_wait: 10
postgresql:
parameters:
max_connections: 250
pg_hba:
- host replication replicator 127.0.0.1/32 md5
- host all all 0.0.0.0/0 md5
use_pg_rewind: true
retry_timeout: 10
ttl: 30

patronictl switchover

Краткий обзор

switchover
[ CLUSTER_NAME ]
[ --group CITUS_GROUP ]
[ { --leader | --primary } LEADER_NAME ]
--candidate CANDIDATE_NAME
[ --force ]

Описание

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:

$ patronictl -c postgres0.yml switchover batman --leader postgresql0 --candidate postgresql2 --force
Current cluster topology
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+----------------+---------+-----------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 6 | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 6 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 6 | 0 |
+-------------+----------------+---------+-----------+----+-----------+
2023-09-13 14:15:23.07497 Successfully switched over to "postgresql2"
+ Cluster: batman (7277694203142172922) -+---------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+----------------+---------+---------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Replica | stopped | | unknown |
| postgresql1 | 127.0.0.1:5433 | Replica | running | 6 | 0 |
| postgresql2 | 127.0.0.1:5434 | Leader | running | 6 | |
+-------------+----------------+---------+---------+----+-----------+

Запланированное переключение между postgresql0 и postgresql2, которое произойдет в 2023-09-13T18:00:00-03:00:

$ patronictl -c postgres0.yml switchover batman --leader postgresql0 --candidate postgresql2 --scheduled 2023-09-13T18:00-03:00 --force
Current cluster topology
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+----------------+---------+-----------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 8 | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 8 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 8 | 0 |
+-------------+----------------+---------+-----------+----+-----------+
2023-09-13 14:18:11.20661 Switchover scheduled
+ Cluster: batman (7277694203142172922) -+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+----------------+---------+-----------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 8 | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 8 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 8 | 0 |
+-------------+----------------+---------+-----------+----+-----------+
Switchover scheduled at: 2023-09-13T18:00:00-03:00
from: postgresql0
to: postgresql2

patronictl topology

Краткий обзор

topology
[ CLUSTER_NAME [, ... ] ]
[ --group CITUS_GROUP ]
[ { -W | { -w | --watch } TIME } ]

Описание

patronictl topology отображает информацию о кластере Patroni и его участниках в виде дерева.

Вывод включает следующую информацию:

Cluster

Имя кластера Patroni.

Примечание:

Отображается в заголовке таблицы.

System identifier

Идентификатор системы Postgres.

Примечание:

Отображается в заголовке таблицы.

Member

Имя члена кластера Patroni.

Примечание:

Информация в этом столбце отображается в виде древовидного представления членов с точки зрения соединений репликации.

Host

Хост, на котором расположен член кластера.

Role

Текущая роль участника. Может быть одним из следующих вариантов:

  • Leader – текущий лидер обычного кластера Patroni;
  • Standby Leader – текущий лидер резервного кластера Patroni;
  • Sync Standby – синхронный резервный сервер кластера Patroni с включенным синхронным режимом;
  • Replica – обычный резервный сервер кластера Patroni.

State

Текущее состояние PostgreSQL в узле Patroni. Некоторые примеры возможных состояний:

  • running – если PostgreSQL в данный момент запущен и работает;
  • streaming – если реплика и PostgreSQL в данный момент передают журналы WAL с основного узла;
  • in archive recovery – если реплика и PostgreSQL в данный момент извлекают журналы WAL из архива;
  • stopped – если PostgreSQL был выключен;
  • crashed – если PostgreSQL аварийно завершил работу.

TL

Текущая временная шкала PostgreSQL в члене Patroni.

Lag in MB

Количество мегабайт отставания по репликации между членом Patroni и его вышестоящим узлом.

Кроме того, в вывод могут быть включены следующие сведения:

Group

Идентификатор группы Citus.

Примечание:

Отображается в заголовке таблицы.

Отображается только в том случае, если это кластер Citus.

Pending restart

* указывает на то, что узел нуждается в перезапуске для того, чтобы некоторые конфигурации PostgreSQL вступили в силу. Пустое значение указывает на то, что узел не требует перезагрузки.

Примечание:

Отображается как атрибут члена кластера.

Отображается, если узел требует перезапуска.

Scheduled restart

Метка времени, когда был запланирован перезапуск экземпляра PostgreSQL, управляемого членом Patroni. Пустое значение указывает на отсутствие запланированного перезапуска для участника.

Примечание

Показано как атрибут члена кластера.

Показывается, если у узла запланирован перезапуск.

Tags

Содержит теги, установленные для участника Patroni. Пустое значение указывает на то, что либо теги не были настроены, либо они были настроены с использованием значений по умолчанию.

Примечание:

Отображается как атрибут члена кластера.

Отображается, если узел имеет какие-либо пользовательские теги или любые теги по умолчанию с нестандартными значениями.

Scheduled switchover

Метка времени, в которую запланирован переход на резервный сервер кластера Patroni, если таковой имеется.

Примечание:

Отображается в нижней части таблицы.

Отображается только в том случае, если запланирован переход на резервный сервер.

Maintenance mode

Если мониторинг кластера в настоящее время приостановлен.

Примечание:

Отображается в нижней части таблицы.

Отображается только в том случае, если кластер приостановлен.

Параметры

CLUSTER_NAME

Имя кластера Patroni.

Если не указано, patronictl попытается получить его из конфигурации scope, если она существует.

--group

Показать информацию о членах группы Citus.

CITUS_GROUP - идентификатор группы Citus.

-W

Автоматически обновлять информацию каждые 2 секунды.

-w / --watch

Автоматически обновлять информацию с указанным интервалом.

TIME - интервал между обновлениями в секундах.

Примеры

Показать топологию кластера batmanpostgresql1 и postgresql2 реплицируются из postgresql0:

$ patronictl -c postgres0.yml topology batman
+ Cluster: batman (7277694203142172922) ---+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+---------------+----------------+---------+-----------+----+-----------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 8 | |
| + postgresql1 | 127.0.0.1:5433 | Replica | streaming | 8 | 0 |
| + postgresql2 | 127.0.0.1:5434 | Replica | streaming | 8 | 0 |
+---------------+----------------+---------+-----------+----+-----------+

patronictl version

Краткий обзор

version
[ CLUSTER_NAME [, ... ] ]
[ MEMBER_NAME [, ... ] ]
[ --group CITUS_GROUP ]

Описание

patronictl version получает версию приложения patronictl. Кроме того, он также может включать информацию о версии кластеров Patroni и их членах.

Параметры

CLUSTER_NAME

Имя кластера Patroni.

MEMBER_NAME

Имя члена кластера Patroni.

--group

Рассмотреть кластер Patroni с заданной группой Citus.

CITUS_GROUP - идентификатор группы Citus.

Примеры

Получить версию только patronictl:

$ patronictl -c postgres0.yml version
patronictl version 3.1.0

Получить версию patronictl и всех членов кластера batman:

$ patronictl -c postgres0.yml version batman
patronictl version 3.1.0

postgresql0: Patroni 3.1.0 PostgreSQL 15.2
postgresql1: Patroni 3.1.0 PostgreSQL 15.2
postgresql2: Patroni 3.1.0 PostgreSQL 15.2

Получить версию patronictl и членов postgresql1 и postgresql2 кластера batman:

$ patronictl -c postgres0.yml version batman postgresql1 postgresql2
patronictl version 3.1.0

postgresql1: Patroni 3.1.0 PostgreSQL 15.2
postgresql2: Patroni 3.1.0 PostgreSQL 15.2