Stolon использует декларативную модель, в которой вы определяете желаемое состояние кластера. Это называется спецификацией кластера, и она сохраняется внутри данных кластера в хранилище.
Для инициализации кластера необходимо предоставить спецификацию кластера.
Это можно сделать с помощью команды stolonctl init
.
Спецификация кластера может быть обновлена с помощью stolonctl update
.
Некоторые параметры в работающей спецификации кластера могут быть изменены для обновления желаемого состояния. Иногда состояние кластера можно обновить только в некоторых направлениях, это означает, что некоторые параметры не могут быть обновлены в работающем кластере, но потребуется новая инициализация кластера.
Имя | Описание | Требуется | Тип | По умолчанию |
---|---|---|---|---|
sleepInterval | интервал ожидания перед следующей проверкой (для хранителей и стражей). | нет | строка (длительность) | 5s |
requestTimeout | время, по истечении которого любой запрос к внешним ресурсам (хранилище, запросы postgres и т. д.) завершится ошибкой. | нет | строка (длительность) | 10s |
failInterval | интервал после первого сбоя, чтобы объявить хранителя неработоспособным. | нет | строка (длительность) | 20s |
proxyCheckInterval | интервал ожидания перед следующей проверкой прокси. | нет | строка (длительность) | 5 с |
proxyTimeout | интервал, в течение которого проверка прокси должна успешно завершиться, иначе прокси закроет все соединения с мастером. | нет | строка (длительность) | 15 с |
deadKeeperRemovalInterval | интервал, после которого мёртвый хранитель будет удалён из данных кластера. | нет | строка (длительность) | 48 ч |
maxStandbys | максимальное количество резервных серверов. Это значение должно быть достаточно большим, чтобы покрыть оба резервных сервера, управляемых stolon, и дополнительные резервные серверы, настроенные пользователем. Его значение влияет на различные параметры postgres, такие как max_replication_slots и max_wal_senders. Установка этого значения на число, меньшее суммы управляемых stolon резервных серверов и управляемых пользователем резервных серверов, приведёт к непредсказуемым эффектам из-за проблем с созданием слотов репликации или проблем с репликацией из-за исчерпанных отправителей wal. | нет | uint16 | 20 |
maxStandbysPerSender | максимальное количество резервных серверов для каждого отправителя. Отправителем может быть мастер или другой резервный сервер (с каскадной репликацией). | нет | uint16 | 3 |
maxStandbyLag | максимальный лаг (от последнего сообщённого состояния мастера в байтах), который может иметь асинхронный резервный сервер, чтобы быть избранным вместо вышедшего из строя мастера. | нет | uint32 | 1 MiB |
syncTimeout | Время ожидания восстановления базы данных (включая воспроизведение файлов WAL в случае восстановления Point-In-Time-Recovery) | нет | строка (длительность) | 0 (нет таймаута, ждёт завершения восстановления) |
Имя | Описание | Требуется | Тип | По умолчанию |
---|---|---|---|---|
keeperUID | keeperUID для использования в качестве начального главного кластера БД. | да | строка |
Имя | Описание | Требуется | Тип | По умолчанию |
---|---|---|---|---|
locale | Определяет локаль, которая будет использоваться при инициализации нового кластера postgres DB (опция initdb --locale ). Эта опция не проверяется stolon, поэтому initdb завершится ошибкой, если будет предоставлена неправильная опция. |
нет | строка | |
encoding | Определяет кодировку, которая будет использоваться при инициализации нового кластера postgres DB (initdb --encoding option). Эта опция не проверяется stolon, поэтому initdb завершится ошибкой, если будет предоставлена неправильная опция. |
нет | строка | |
dataChecksums | Определяет, должны ли быть включены контрольные суммы данных при инициализации нового кластера postgres DB (опция initdb --data-checksums ). Эта опция не проверяется stolon, поэтому initdb завершится ошибкой, если будет предоставлена неправильная опция. |
нет | bool |
Имя | Описание | Требуется | Тип | По умолчанию |
---|---|---|---|---|
dataRestoreCommand | определяет команду, которую нужно выполнить для восстановления данных кластера DB. %d заменяется на полный путь к каталогу данных кластера DB. Используйте %% для встраивания фактического символа %. Должен возвращать код выхода 0 только в случае успеха. | да | строка | |
archiveRecoverySettings | конфигурация восстановления архива | да | ArchiveRecoverySettings | |
recoveryTargetSettings | конфигурация цели восстановления | нет | RecoveryTargetSettings |
Имя | Описание | Требуется | Тип | По умолчанию |
---|---|---|---|---|
standbySettings | конфигурация режима ожидания | нет Связанные материалы: |
Специальные типы
Типы длительности (как описано в https://golang.org/pkg/time/#ParseDuration) представляют собой последовательность десятичных чисел со знаком, каждое из которых может иметь необязательную дробную часть и суффикс единицы измерения, например «300 мс», «−1,5 ч» или «2 ч 45 м». Допустимыми единицами времени являются «нс», «мкс» (или «мкc»), «мс», «с», «мин», «ч».
Можно заменить всю текущую спецификацию кластера или исправить только некоторые её части (см. https://tools.ietf.org/html/rfc7386). В настоящее время спецификация должна быть предоставлена в формате JSON.
stolonctl --cluster-name=mycluster update --patch '{ "synchronousReplication" : true }'
Вы также можете передать спецификацию кластера или патч в виде файла с помощью опции -f
:
stolonctl --cluster-name=mycluster update --patch -f spec.json
Использование -
в качестве имени файла означает стандартный ввод:
echo '{ "synchronousReplication" : true }' | stolonctl --cluster-name=mycluster update --patch -f -
Эта команда заменит всю спецификацию кластера. Неуказанные параметры будут заполнены значениями по умолчанию.
stolonctl --cluster-name=mycluster update '{ "requestTimeout": "10s", "sleepInterval": "10s" }'
Вы можете исправить спецификацию кластера, предоставив параметры postgres. Например, если вы хотите установить log_min_duration_statement = 1s
, вы можете сделать следующее:
stolonctl --cluster-name=mycluster update --patch '{ "pgParameters" : {"log_min_duration_statement" : "1s" } }'
Чтобы удалить параметр postgres, просто исправьте спецификацию кластера, установив значение параметра равным null
:
stolonctl --cluster-name=mycluster update --patch '{ "pgParameters" : {"log_min_duration_statement" : null } }'
Чтобы удалить все параметры postgres, просто исправьте спецификацию кластера, установив значение pgParameters
равным null
:
stolonctl --cluster-name=mycluster update --patch '{ "pgParameters" : null }'
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )