2
Автоматический Failover
Patroni, etcd, автоматическое переключение
45 минУрок 2 из 9
Прогресс0%
Теория
Автоматический failover обеспечивает максимальную доступность кластера.
Patroni — популярное решение для автоматического failover PostgreSQL.
etcd/Consul/ZooKeeper — хранилища для хранения состояния кластера.
Patroni отслеживает состояние мастера и автоматически повышает реплику при сбое.
Практика
1. Установка Patroni
Установите Patroni и зависимости:
Установка Patroni
Команда
pip3 install patroni[etcd]Вывод:
Collecting patroni[etcd] ...
2. Конфигурация Patroni
Создайте конфигурационный файл patroni.yml:
Конфигурация Patroni
Команда
cat > /etc/patroni/patroni.yml << 'EOF'
scope: pg-cluster
namespace: /db/
name: node1
restapi:
listen: 0.0.0.0:8008
connect_address: 127.0.0.1:8008
etcd:
hosts: 127.0.0.1:2379
bootstrap:
dcs:
ttl: 30
loop_wait: 10
retry_timeout: 10
maximum_lag_on_failover: 1048576
postgresql:
use_pg_rewind: true
parameters:
wal_level: replica
hot_standby: on
max_wal_senders: 10
max_replication_slots: 10
EOF3. Запуск Patroni
Запустите Patroni:
Запуск Patroni
Команда
sudo systemctl start patroniПроверка
Проверьте статус Patroni:
Проверка
Команда
patronictl -c /etc/patroni/patroni.yml listВывод:
Cluster: pg-cluster +---------+---------+---------+---------+-----------+ | Member | Host | Role | State | Lag | +---------+---------+---------+---------+-----------+ | node1 | 127.0.0 | Leader | running | 0MB | +---------+---------+---------+---------+-----------+