Высокодоступный геораспределённый кластер PostgreSQL на базе Patroni с DNS точкой клиентского доступа
Развертывание кластера высокой доступности PostgreSQL, готового к производственной среде (на основе "Patroni" и "DCS (etcd)"). Автоматизация с помощью Ansible.
Этот Ansible playbook разработан для развёртывания высокодоступного кластера PostgreSQL на выделенных физических серверах для производственной среды.
Развёртывание может быть выполнено в виртуальной среде для тестовой среды или небольших проектов.
В дополнение к развертыванию новых кластеров этот playbook также поддерживает развертывание кластера поверх уже существующего и работающего PostgreSQL. Вы можете преобразовать выделенный экземпляр PostgreSQL в кластер высокой доступности (укажите переменную postgresql_exists='true'
в файле инвентаризации).
Внимание! Ваш экземпляр PostgreSQL будет остановлен перед запуском в составе кластера (пожалуйста, запланируйте небольшой простой баз данных).
❗ Пожалуйста, проведите тестирование, прежде чем использовать в производственной среде.
Для развёртывания кластера без HAProxy задайте
with_haproxy_load_balancing: false
в файле переменных vars/main.yml
Описание в разработке..
...
...
Рекомендуемые средства резервного копирования и восстановления:
Не забывайте тестировать свои резервные копии.
Если вам нужно начать с самого начала, используйте для очистки следующие команды:
- на всех узлах СУБД остановить сервис Patroni и удалить каталог с базами данных (кластер баз данных, PGDATA):
sudo systemctl stop patroni sudo rm -rf /var/lib/postgresql/ # be careful with this if there are other PG clusters
- затем удалите запись в etcd (можно запустить на любом узле etcd):
etcdctl --username patroni-etcd:P@ssw0rd rm --dir --recursive /service/pgsql-cluster/ # настроить, если вы изменили имя кластера, имя пользователя и пароль.
Под лицензией MIT License. Подробнее см. в файле LICENSE .
Илгиз Мамышев (Microsoft SQL Server, PostgreSQL DBA)
https://imamyshev.wordpress.com
Виталий Кухарик (PostgreSQL DBA) - автор проекта postgresql_cluster на кодовой базе которого построен pgsql_cluster