Модули/Failover и pg_rewind/Тестирование
8

Тестирование

Chaos engineering, плановое тестирование failover

30 минУрок 8 из 9
Прогресс0%

Теория

Регулярное тестирование failover критически важено для уверенности в отказоустойчивости.

Chaos engineering — подход к тестированию путём намеренного создания сбоев.

Тестируйте как плановый, так и внеплановый failover.

Документируйте результаты тестов и улучшайте процедуры.

Практика

1. План тестирования

Создайте план тестирования failover:

План тестирования
Команда
cat > /usr/local/bin/test_failover.sh << 'EOF' #!/bin/bash echo "=== Тест failover ===" echo "1. Проверка состояния кластера" patronictl list echo "2. Остановка мастера" sudo systemctl stop postgresql echo "3. Ожидание failover" sleep 10 echo "4. Проверка нового мастера" patronictl list echo "5. Запуск старого мастера" sudo systemctl start postgresql echo "6. Проверка синхронизации" sleep 5 patronictl list echo "=== Тест завершён ===" EOF chmod +x /usr/local/bin/test_failover.sh

2. Запуск теста

Запустите тест failover:

Запуск теста
Команда
sudo /usr/local/bin/test_failover.sh
Вывод:
=== Тест failover ===
1. Проверка состояния кластера
  Cluster: pg-cluster
...

Проверка

Проверьте, что кластер восстановился:

Проверка
Команда
patronictl list
Вывод:
  Cluster: pg-cluster
  +---------+---------+---------+---------+-----------+
  | Member  | Host    | Role    | State   | Lag       |
  +---------+---------+---------+---------+-----------+
  | node1   | 127.0.0 | Leader  | running | 0MB       |
  | node2   | 127.0.0 | Replica | running | 0MB       |
  +---------+---------+---------+---------+-----------+

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

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