Модули/Failover и pg_rewind/Автоматический Failover
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 EOF

3. Запуск 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       |
  +---------+---------+---------+---------+-----------+

Пройдите викторину

Для завершения урока необходимо пройти викторину