Настройки резервирования обычно обсуждают словами — «ежечасная репликация», «монитор 60 секунд». Но решение принимается не по словам, а по двум числам: сколько данных потеряется и сколько сайт пролежит. Покрутите параметры и посмотрите, как они превращаются в потерянные заявки и минуты простоя.
Отсчёт от момента, когда основной сервер перестал отвечать.
Резервный сервер спасает от падения железа и не спасает от шифровальщика, взлома и ошибочного «удалить всё»: репликация послушно повторит удаление на резервном через час. Поэтому бэкапы кладутся на третье хранилище, с которого сайт не может ничего стереть — доступ только на запись, удаление по ротации делает само хранилище. Это единственная часть схемы, которую нельзя удешевить.
Если основной сервер не умер, а мигает — поднялся, упал, поднялся, — автовозврат без задержки будет гонять трафик туда-сюда. Посмотрите, что получается при ваших настройках:
| Сценарий за час | Переключений | Чем это кончится |
|---|
Лечится задержкой на возврат и проверкой, что база на основном догнала резервную. Возврат без проверки отставания — это потеря заказов, принятых резервным сервером, причём тихая.
Задача «при переключении на резервном автоматически запускаются все фоновые службы» имеет обратную сторону: если они запустятся, а на основном не остановятся, рассылки и задания уйдут дважды. Клиент получит два письма, бухгалтерия — два документа. Поэтому службы на пассивном сервере не просто выключены, а связаны общей блокировкой: работает тот, кто сейчас принимает трафик, и только он.
Учебное переключение при вас. Схема, которую ни разу не проверяли под нагрузкой, в день аварии не работает — это самое частое, что я вижу. Мы гасим основной сервер в оговорённое время, смотрим на секундомер и сверяем, сошлись ли числа с расчётными.
Проверка восстановления из бэкапа. Бэкап, который ни разу не разворачивали, — это папка файлов, а не бэкап. Разворачиваем последний на чистый сервер и убеждаемся, что сайт поднимается и база целая.
Уведомление о переключении. Автоматика не должна быть молчаливой: о переходе на резервный вы узнаёте сообщением, а не от клиента. Туда же — отчёт, что репликация отстала или остановилась, потому что сломанная репликация не падает с ошибкой, она просто перестаёт обновлять данные.