1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dengchendeng-stolon

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
cluster_spec.md 19 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 01:14 b6e39ce

Спецификация кластера

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 (нет таймаута, ждёт завершения восстановления)

ExistingConfig

Имя Описание Требуется Тип По умолчанию
keeperUID keeperUID для использования в качестве начального главного кластера БД. да строка

NewConfig

Имя Описание Требуется Тип По умолчанию
locale Определяет локаль, которая будет использоваться при инициализации нового кластера postgres DB (опция initdb --locale). Эта опция не проверяется stolon, поэтому initdb завершится ошибкой, если будет предоставлена неправильная опция. нет строка
encoding Определяет кодировку, которая будет использоваться при инициализации нового кластера postgres DB (initdb --encoding option). Эта опция не проверяется stolon, поэтому initdb завершится ошибкой, если будет предоставлена неправильная опция. нет строка
dataChecksums Определяет, должны ли быть включены контрольные суммы данных при инициализации нового кластера postgres DB (опция initdb --data-checksums). Эта опция не проверяется stolon, поэтому initdb завершится ошибкой, если будет предоставлена неправильная опция. нет bool

PITRConfig

Имя Описание Требуется Тип По умолчанию
dataRestoreCommand определяет команду, которую нужно выполнить для восстановления данных кластера DB. %d заменяется на полный путь к каталогу данных кластера DB. Используйте %% для встраивания фактического символа %. Должен возвращать код выхода 0 только в случае успеха. да строка
archiveRecoverySettings конфигурация восстановления архива да ArchiveRecoverySettings
recoveryTargetSettings конфигурация цели восстановления нет RecoveryTargetSettings

StandbyConfig

Имя Описание Требуется Тип По умолчанию
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

Вы можете исправить спецификацию кластера, предоставив параметры postgres. Например, если вы хотите установить log_min_duration_statement = 1s, вы можете сделать следующее:

stolonctl --cluster-name=mycluster update --patch '{ "pgParameters" : {"log_min_duration_statement" : "1s" } }'

Удаление некоторых параметров postgres

Чтобы удалить параметр postgres, просто исправьте спецификацию кластера, установив значение параметра равным null:

stolonctl --cluster-name=mycluster update --patch '{ "pgParameters" : {"log_min_duration_statement" : null } }'

Удаление всех параметров postgres

Чтобы удалить все параметры postgres, просто исправьте спецификацию кластера, установив значение pgParameters равным null:

stolonctl --cluster-name=mycluster update --patch '{ "pgParameters" : null }'

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/dengchendeng-stolon.git
git@api.gitlife.ru:oschina-mirror/dengchendeng-stolon.git
oschina-mirror
dengchendeng-stolon
dengchendeng-stolon
master