Skip to content
This repository was archived by the owner on Dec 19, 2023. It is now read-only.

PostgreSQL High-Availability Cluster (based on "Patroni" and "DCS(etcd)"). Automating deployment with Ansible.

License

Notifications You must be signed in to change notification settings

BoostTechInc/postgresql_cluster

 
 

Repository files navigation

Высокодоступный геораспределённый кластер PostgreSQL на базе Patroni с DNS точкой клиентского доступа

GitHub license GitHub stars


Banner

Развертывание кластера высокой доступности PostgreSQL, готового к производственной среде (на основе "Patroni" и "DCS (etcd)"). Автоматизация с помощью Ansible.

Этот Ansible playbook разработан для развёртывания высокодоступного кластера PostgreSQL на выделенных физических серверах для производственной среды.
Развёртывание может быть выполнено в виртуальной среде для тестовой среды или небольших проектов.

В дополнение к развертыванию новых кластеров этот playbook также поддерживает развертывание кластера поверх уже существующего и работающего PostgreSQL. Вы можете преобразовать выделенный экземпляр PostgreSQL в кластер высокой доступности (укажите переменную postgresql_exists='true' в файле инвентаризации).
Внимание! Ваш экземпляр PostgreSQL будет остановлен перед запуском в составе кластера (пожалуйста, запланируйте небольшой простой баз данных).

❗ Пожалуйста, проведите тестирование, прежде чем использовать в производственной среде.

PGSQLCluster

Для развёртывания кластера без HAProxy задайте with_haproxy_load_balancing: false в файле переменных vars/main.yml

Описание в разработке..
...
...

PostgreSQL (базы данных)

Рекомендуемые средства резервного копирования и восстановления:

Не забывайте тестировать свои резервные копии.

Как начать развёртывание с нуля

Если вам нужно начать с самого начала, используйте для очистки следующие команды:

  • на всех узлах СУБД остановить сервис 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

Поддержать данный проект

Support me on Patreon

Обратная связь, отчеты об ошибках, запросы и т.п.

Добро пожаловать!

About

PostgreSQL High-Availability Cluster (based on "Patroni" and "DCS(etcd)"). Automating deployment with Ansible.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Jinja 51.1%
  • Python 41.8%
  • Shell 7.1%