patronictl
Эта страница переведена при помощи нейросети GigaChat.
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 [ { -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 (лидер обычного или standby-кластера Patroni), primary (лидер обычного кластера Patroni), standby-leader (лидер standby-кластера 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 команда пытается показать diff динамической конфигурации через пейджер. По умолчанию она пытается использовать либо less, либо more. Если требуется другой пейджер, установите переменную окружения PAGER с желаемым значением.
Параметры
| Параметр | Описание |
|---|---|
CLUSTER_NAME | Имя кластера Patroni. Если не задано, patronictl попытается получить его из конфигурации scope, если она существует. |
--group | Изменить динамическую конфигурацию заданной группы Citus. Если не задано, patronictl попытается получить его из конфигурации citus.group, если она существует. CITUS_GROUP — идентификатор группы Citus. |
-q / --quiet | Флаг для пропуска показа diff конфигурации. |
-s / --set | Установить заданную опцию динамической конфигурации с заданным значением. CONFIG — имя пути динамической конфигурации в дереве YAML, с уровнями, соединенными через .. VALUE — значение для CONFIG. Если оно равно null, то CONFIG будет удален из динамической конфигурации. |
-p / --pg | Установить заданную опцию динамической конфигурации Postgres с заданным значением. По сути, это сокращение для -s / --set с префиксом postgresql.parameters. для CONFIG. 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:
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 ]
--candidate CANDIDATE_NAME
[ --force ]
Описание
patronictl failover выполняет ручной failover в кластере.
Он предназначен для использования, когда кластер не работает исправно, например:
-
Нет лидера;
или
-
Нет доступного синхронного standby в синхронном кластере.
Он также позволяет выполнить failover на асинхронный узел, если включен синхронный режим.
Ничто не мешает запустить patronictl failover в исправном кластере. Однако рекомендуется использовать patronictl switchover в таких случаях.
Запуск failover может привести к потере данных в зависимости от того, насколько актуальна повышаемая реплика по сравнению с первичным узлом.
Параметры
| Параметр | Описание |
|---|---|
CLUSTER_NAME | Имя кластера Patroni. Если не задано, patronictl попытается получить его из конфигурации scope, если она существует. |
--group | Выполнить failover в заданной группе Citus. CITUS_GROUP — идентификатор группы Citus. |
--candidate | Узел, который должен быть повышен при failover. CANDIDATE_NAME — имя узла для повышения. |
--force | Флаг для пропуска запросов подтверждения при выполнении failover. Полезно для скриптов. |
Примеры
Выполнить failover на узел postgresql2:
$ patronictl -c postgres0.yml failover batman --candidate postgresql2 --force
Current cluster topology
+ Cluster: batman (7277694203142172922) -+-----------+----+-------------+-----+------------+-----+
| Member | Host | Role | State | TL | Receive LSN | Lag | Replay LSN | Lag |
+-------------+----------------+---------+-----------+----+-------------+-----+------------+-----+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 3 | | | | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 3 | 0/40004E8 | 0 | 0/40004E8 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 3 | 0/40004E8 | 0 | 0/40004E8 | 0 |
+-------------+----------------+---------+-----------+----+-------------+-----+------------+-----+
2023-09-12 11:52:27.50978 Successfully failed over to "postgresql2"
+ Cluster: batman (7277694203142172922) -+---------+----+-------------+---------+------------+---------+
| Member | Host | Role | State | TL | Receive LSN | Lag | Replay LSN | Lag |
+-------------+----------------+---------+---------+----+-------------+---------+------------+---------+
| postgresql0 | 127.0.0.1:5432 | Replica | stopped | | unknown | unknown | unknown | unknown |
| postgresql1 | 127.0.0.1:5433 | Replica | running | 3 | 0/4000188 | 0 | 0/4000188 | 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 | Отменить запланированные события для участников с заданной ролью (смотрите значения ролей выше). Примечание: используется только при отмене запланированных событий перезапуска. |
--force | Флаг для пропуска запросов подтверждения при выполнении flush. Полезно для скриптов. |
Примеры
Отменить запланированное событие переключения:
$ patronictl -c postgres0.yml flush batman switchover --force
Success: scheduled switchover deleted
Отменить запланированный перезапуск всех standby-узлов:
$ patronictl -c postgres0.yml flush batman restart -r replica --force
+ Cluster: batman (7277694203142172922) -+-----------+----+-------------+-----+------------+-----+---------------------------+
| Member | Host | Role | State | TL | Receive LSN | Lag | Replay LSN | Lag | Scheduled restart |
+-------------+----------------+---------+-----------+----+-------------+-----+------------+-----+---------------------------+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 5 | | | | | 2025-03-23T18:00:00-03:00 |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 5 | 0/4000400 | 0 | 0/4000400 | 0 | 2025-03-23T18:00:00-03:00 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 5 | 0/4000400 | 0 | 0/4000400 | 0 | 2025-03-23T18:00:00-03:00 |
+-------------+----------------+---------+-----------+----+-------------+-----+------------+-----+---------------------------+
Success: flush scheduled restart for member postgresql1
Success: flush scheduled restart for member postgresql2
patronictl history
Синопсис
history
[ CLUSTER_NAME ]
[ --group CITUS_GROUP ]
[ { -f | --format } { pretty | tsv | json | yaml } ]
Описание
patronictl history показывает историю событий failover и switchover из кластера, если они есть.
В вывод включается следующая информация:
| Поле | Описание |
|---|---|
TL | Timeline Postgres, на котором произошло событие. |
LSN | LSN Postgres, на котором произошло событие. |
Reason | Причина, полученная из файла .history Postgres. |
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 |
+----+----------+------------------------------+----------------------------------+-------------+
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, Standby Leader, Sync Standby, Replica. |
State | Текущее состояние Postgres в участнике Patroni: running, streaming, in archive recovery, stopped, crashed и др. |
TL | Текущая timeline Postgres в участнике Patroni. |
Receive LSN | Последняя позиция WAL, полученная и синхронизированная на диск потоковой репликацией участника. |
Receive Lag | Отставание репликации между позицией Receive LSN участника и его upstream в МБ. |
Replay LSN | Последняя позиция WAL, воспроизведенная во время восстановления участника. |
Replay Lag | Отставание репликации между позицией Replay LSN участника и его upstream в МБ. |
Дополнительная информация, которая может быть включена в вывод:
| Поле | Описание |
|---|---|
System identifier | Системный идентификатор Postgres. Показывается в заголовке таблицы, только в формате pretty. |
Group | Идентификатор группы Citus. Показывается в заголовке таблицы, только для кластера Citus. |
Pending restart | * указывает, что узлу требуется перезапуск для применения конфигурации Postgres. Показывается как атрибут участника. |
Scheduled restart | Временная метка запланированного перезапуска. Показывается как атрибут участника. |
Tags | Теги, заданные для участника Patroni. Показывается как атрибут участника. |
Scheduled switchover | Временная метка запланированного переключения. Показывается в футере таблицы, только в формате pretty. |
Maintenance mode | Если мониторинг кластера в настоящее время приостановлен. Показывается в футере таблицы, только в формате pretty. |
Параметры
| Параметр | Описание |
|---|---|
CLUSTER_NAME | Имя кластера Patroni. |
--group | Показать информацию об участниках из заданной группы Citus. |
-e / --extended | Показать расширенную информацию. Принудительно показывать атрибуты Pending restart, Scheduled restart и Tags, даже если их значение пусто. Применяется только к форматам вывода pretty и tsv. |
-t / --timestamp | Печатать временную метку перед выводом информации о кластере и его участниках. |
-f / --format | Формат вывода: pretty, tsv, json, yaml. По умолчанию: pretty. |
-W | Автоматически обновлять информацию каждые 2 секунды. |
-w / --watch | Автоматически обновлять информацию с указанным интервалом. TIME — интервал между обновлениями в секундах. |
Примеры
Показать информацию о кластере в формате pretty:
$ patronictl -c postgres0.yml list batman
+ Cluster: batman (7277694203142172922) -+-----------+----+-------------+-----+------------+-----+
| Member | Host | Role | State | TL | Receive LSN | Lag | Replay LSN | Lag |
+-------------+----------------+---------+-----------+----+-------------+-----+------------+-----+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 5 | | | | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 5 | 0/40004E8 | 0 | 0/40004E8 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 5 | 0/40004E8 | 0 | 0/40004E8 | 0 |
+-------------+----------------+---------+-----------+----+-------------+-----+------------+-----+
patronictl pause
Синопсис
pause
[ CLUSTER_NAME ]
[ --group CITUS_GROUP ]
[ --wait ]
Описание
patronictl pause временно переводит кластер Patroni в режим обслуживания и отключает автоматический failover.
Параметры
| Параметр | Описание |
|---|---|
CLUSTER_NAME | Имя кластера Patroni. |
--group | Приостановить заданную группу Citus. |
--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. |
--group | Выполнить запрос к заданной группе Citus. |
-r / --role | Выбрать участника с заданной ролью. |
-m / --member | Выбрать участника с заданным именем. |
-d / --dbname | База данных для подключения и выполнения запроса. |
-U / --username | Пользователь для подключения к базе данных. |
--password | Запросить пароль для подключающегося пользователя. Также можно создать файл ~/.pgpass или установить переменную окружения PGPASSWORD. |
--format | Формат вывода запроса: pretty, tsv, json, yaml. По умолчанию: tsv. |
-f / --file | Использовать файл как источник команд для выполнения запросов. |
-c / --command | Выполнить заданную SQL-команду в запросе. |
--delimiter | Разделитель при выводе информации в формате tsv, или \t, если опущен. |
-W | Автоматически перезапускать запрос каждые 2 секунды. |
-w / --watch | Автоматически перезапускать запрос с указанным интервалом. |
Примеры
Выполнить 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
patronictl reinit
Синопсис
reinit
CLUSTER_NAME
[ MEMBER_NAME [, ... ] ]
[ --group CITUS_GROUP ]
[ --wait ]
[ --force ]
[ --from-leader ]
Описание
patronictl reinit перестраивает экземпляр Postgres standby, управляемый участником-репликой кластера Patroni.
Параметры
| Параметр | Описание |
|---|---|
CLUSTER_NAME | Имя кластера Patroni. |
MEMBER_NAME | Имя участника-реплики, для которого будет перестроен экземпляр Postgres. Можно указать несколько участников. |
--group | Перестроить участника-реплику заданной группы Citus. |
--wait | Дождаться завершения реинициализации standby-узла(ов) Postgres. |
--force | Флаг для пропуска запросов подтверждения при перестройке экземпляров Postgres standby. |
--from-leader | Флаг для получения basebackup напрямую от лидера. Полезно для скриптов. |
Примеры
Запросить перестройку всех участников-реплик кластера Patroni и немедленно вернуть управление:
$ patronictl -c postgres0.yml reinit batman postgresql1 postgresql2 --force
+ Cluster: batman (7277694203142172922) -+-----------+----+-------------+-----+------------+-----+
| Member | Host | Role | State | TL | Receive LSN | Lag | Replay LSN | Lag |
+-------------+----------------+---------+-----------+----+-------------+-----+------------+-----+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 5 | | | | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 5 | 0/40004E8 | 0 | 0/40004E8 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 5 | 0/40004E8 | 0 | 0/40004E8 | 0 |
+-------------+----------------+---------+-----------+----+-------------+-----+------------+-----+
Success: reinitialize for member postgresql1
Success: reinitialize for member 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 на управляемом экземпляре Postgres, даже если ничего не изменилось.
Параметры
| Параметр | Описание |
|---|---|
CLUSTER_NAME | Имя кластера Patroni. |
MEMBER_NAME | Запросить перезагрузку локальной конфигурации для заданного(ых) участника(ов) Patroni. Можно указать несколько участников. Если участники не указаны, рассматриваются все. |
--group | Запросить перезагрузку участников заданной группы Citus. |
-r / --role | Выбрать участников с заданной ролью. |
--force | Флаг для пропуска запросов подтверждения при запросе перезагрузки локальной конфигурации. |
Примеры
Запросить перезагрузку локальной конфигурации всех участников кластера Patroni:
$ patronictl -c postgres0.yml reload batman --force
+ Cluster: batman (7277694203142172922) -+-----------+----+-------------+-----+------------+-----+
| Member | Host | Role | State | TL | Receive LSN | Lag | Replay LSN | Lag |
+-------------+----------------+---------+-----------+----+-------------+-----+------------+-----+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 5 | | | | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 5 | 0/40004E8 | 0 | 0/40004E8 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 5 | 0/40004E8 | 0 | 0/40004E8 | 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. |
-f / --format | Формат списка участников в выводе при запросе подтверждения: pretty, tsv, json, yaml. По умолчанию: pretty. |
Примеры
Удалить информацию о кластере Patroni batman из DCS:
$ patronictl -c postgres0.yml remove batman
+ Cluster: batman (7277694203142172922) -+-----------+----+-------------+-----+------------+-----+
| Member | Host | Role | State | TL | Receive LSN | Lag | Replay LSN | Lag |
+-------------+----------------+---------+-----------+----+-------------+-----+------------+-----+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 5 | | | | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 5 | 0/40004E8 | 0 | 0/40004E8 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 5 | 0/40004E8 | 0 | 0/40004E8 | 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 запрашивает перезапуск экземпляра Postgres, управляемого участником кластера Patroni. Перезапуск может быть выполнен немедленно или запланирован на более позднее время.
Параметры
| Параметр | Описание |
|---|---|
CLUSTER_NAME | Имя кластера Patroni. |
--group | Перезапустить кластер Patroni, связанный с заданной группой Citus. |
-r / --role | Выбрать участников с заданной ролью. |
--any | Перезапустить один случайный узел среди тех, которые соответствуют заданным фильтрам. |
--pg-version | Выбрать только участников, версия управляемого экземпляра Postgres которых старше заданной версии. |
--pending | Выбрать только участников, помеченных как Pending restart. |
--timeout | Прервать перезапуск, если он занимает больше указанного таймаута, и выполнить failover на реплику, если проблема на первичном узле. |
--scheduled | Запланировать перезапуск на заданную временную метку. |
--force | Флаг для пропуска запросов подтверждения при запросе операций перезапуска. |
Примеры
Перезапустить все участники кластера немедленно:
$ patronictl -c postgres0.yml restart batman --force
+ Cluster: batman (7277694203142172922) -+-----------+----+-------------+-----+------------+-----+
| Member | Host | Role | State | TL | Receive LSN | Lag | Replay LSN | Lag |
+-------------+----------------+---------+-----------+----+-------------+-----+------------+-----+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 6 | | | | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 6 | 0/40004E8 | 0 | 0/40004E8 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 6 | 0/40004E8 | 0 | 0/40004E8 | 0 |
+-------------+----------------+---------+-----------+----+-------------+-----+------------+-----+
Success: restart on member postgresql0
Success: restart on member postgresql1
Success: restart on member postgresql2
patronictl resume
Синопсис
resume
[ CLUSTER_NAME ]
[ --group CITUS_GROUP ]
[ --wait ]
Описание
patronictl resume выводит кластер Patroni из режима обслуживания и повторно включает автоматический failover.
Параметры
| Параметр | Описание |
|---|---|
CLUSTER_NAME | Имя кластера Patroni. |
--group | Возобновить заданную группу Citus. |
--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. |
--group | Показать динамическую конфигурацию заданной группы Citus. |
Примеры
Показать динамическую конфигурацию кластера 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 выполняет переключение в кластере. Предназначено для использования, когда кластер исправен: есть лидер, есть доступные синхронные standby в синхронном кластере.
Если кластер не работает исправно, может быть полезен patronictl failover.
Параметры
| Параметр | Описание |
|---|---|
CLUSTER_NAME | Имя кластера Patroni. |
--group | Выполнить переключение в заданной группе Citus. |
--leader / --primary | Указать, кто является лидером, который должен быть понижен во время переключения. |
--candidate | Узел, который должен быть повышен при переключении и принять роль первичного. |
--scheduled | Запланировать переключение на заданную временную метку. |
--force | Флаг для пропуска запросов подтверждения при выполнении переключения. |
Примеры
Выполнить переключение на узел postgresql2:
$ patronictl -c postgres0.yml switchover batman --leader postgresql0 --candidate postgresql2 --force
Current cluster topology
+ Cluster: batman (7277694203142172922) -+-----------+----+-------------+-----+------------+-----+
| Member | Host | Role | State | TL | Receive LSN | Lag | Replay LSN | Lag |
+-------------+----------------+---------+-----------+----+-------------+-----+------------+-----+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 6 | | | | |
| postgresql1 | 127.0.0.1:5433 | Replica | streaming | 6 | 0/40004E8 | 0 | 0/40004E8 | 0 |
| postgresql2 | 127.0.0.1:5434 | Replica | streaming | 6 | 0/40004E8 | 0 | 0/40004E8 | 0 |
+-------------+----------------+---------+-----------+----+-------------+-----+------------+-----+
2023-09-13 14:15:23.07497 Successfully switched over to "postgresql2"
+ Cluster: batman (7277694203142172922) -+---------+----+-------------+---------+------------+---------+
| Member | Host | Role | State | TL | Receive LSN | Lag | Replay LSN | Lag |
+-------------+----------------+---------+---------+----+-------------+---------+------------+---------+
| postgresql0 | 127.0.0.1:5432 | Replica | stopped | | unknown | unknown | unknown | unknown |
| postgresql1 | 127.0.0.1:5433 | Replica | running | 6 | 0/4000188 | 0 | 0/4000188 | 0 |
| postgresql2 | 127.0.0.1:5434 | Leader | running | 6 | | | | |
+-------------+----------------+---------+---------+----+-------------+---------+------------+---------+
patronictl topology
Синопсис
topology
[ CLUSTER_NAME [, ... ] ]
[ --group CITUS_GROUP ]
[ { -W | { -w | --watch } TIME } ]
Описание
patronictl topology показывает информацию о кластере Patroni и его участниках с использованием древовидного представления.
Вывод включает те же поля, что и patronictl list, но с древовидной структурой участников в терминах соединений репликации.
Параметры
| Параметр | Описание |
|---|---|
CLUSTER_NAME | Имя кластера Patroni. |
--group | Показать информацию об участниках из заданной группы Citus. |
-W | Автоматически обновлять информацию каждые 2 секунды. |
-w / --watch | Автоматически обновлять информацию с указанным интервалом. |
Примеры
Показать топологию кластера batman — postgresql1 и postgresql2 реплицируются с postgresql0:
$ patronictl -c postgres0.yml topology batman
+ Cluster: batman (7277694203142172922) ---+-----------+----+-------------+-----+------------+-----+
| Member | Host | Role | State | TL | Receive LSN | Lag | Replay LSN | Lag |
+---------------+----------------+---------+-----------+----+-------------+-----+------------+-----+
| postgresql0 | 127.0.0.1:5432 | Leader | running | 8 | | | | |
| + postgresql1 | 127.0.0.1:5433 | Replica | streaming | 8 | 0/40004E8 | 0 | 0/40004E8 | 0 |
| + postgresql2 | 127.0.0.1:5434 | Replica | streaming | 8 | 0/40004E8 | 0 | 0/40004E8 | 0 |
+---------------+----------------+---------+-----------+----+-------------+-----+------------+-----+
patronictl version
Синопсис
version
[ CLUSTER_NAME [, ... ] ]
[ MEMBER_NAME [, ... ] ]
[ --group CITUS_GROUP ]
Описание
patronictl version получает версию приложения patronictl. Кроме того, может включать информацию о версиях кластеров Patroni и их участников.
Параметры
| Параметр | Описание |
|---|---|
CLUSTER_NAME | Имя кластера Patroni. |
MEMBER_NAME | Имя участника кластера Patroni. |
--group | Учитывать кластер Patroni с заданной группой Citus. |
Примеры
Получить версию только patronictl:
$ patronictl -c postgres0.yml version
patronictl version 4.0.0
Получить версию patronictl и всех участников кластера batman:
$ patronictl -c postgres0.yml version batman
patronictl version 4.0.0
postgresql0: Patroni 4.0.0 PostgreSQL 16.4
postgresql1: Patroni 4.0.0 PostgreSQL 16.4
postgresql2: Patroni 4.0.0 PostgreSQL 16.4