Стратегия резервного копирования для выделенного сервера стека LEMP

В настоящее время у нас есть приложение, работающее на выделенном сервере, которое использует стек LEMP (Linux, Nginx, MariaDB, PHP). Сейчас мы делаем резервные копии только с заданным интервалом (каждые x часов). Я исследовал, как мы должны делать живую резервную копию, и мне было любопытно, что делают другие люди?

В настоящее время наша идея состоит в том, чтобы иметь еще один сервер в другом географическом месте, на котором установлен mariadb, а затем синхронизировать базы данных, создавая живую копию нашей производственной базы данных только для чтения на этом резервном сервере. Для файлов, загруженных пользователями, мы должны настроить rsync для синхронизации с сервером резервного копирования при внесении изменений в каталог загрузки на производственном сервере. Звучит ли это как надежный план?

Кроме того, нам пришла в голову мысль, что если мы собираемся платить за дополнительный выделенный сервер, мы должны запускать приложение с обоих серверов, настраивая DNS для циклического перебора между два. Это не только предоставит нам резервную копию, но также обеспечит нам отказоустойчивость в случае отказа одного из серверов.

Мы на правильном пути или пропустили какой-то жизненно важный элемент?

1
задан 20 December 2017 в 18:59
2 ответа

Эта стратегия резервного копирования кажется хорошей. Вероятно, есть способы улучшить это, но это улучшит вашу текущую ситуацию. Вам по-прежнему нужны резервные копии, чтобы предотвратить повреждение базы данных, атаки и т. Д.

Циклический перебор с базовым DNS, вероятно, не лучшая идея. Некоторые клиенты всегда будут использовать первую запись, некоторые не будут переключаться при отказе. Было бы лучше использовать что-то более умное, например AWS Route53 или CloudFlare , которое может выполнять проверки работоспособности и отключать трафик на неотвечающий сервер.

0
ответ дан 3 December 2019 в 20:17

Вы обращаетесь к избыточности. Это хорошо. Вы можете переключиться на резервный сервер в экстренной ситуации. Это НЕ РЕЗЕРВНОЕ РЕШЕНИЕ . Вы хотите, чтобы ваши резервные копии, особенно для веб-приложений, возвращались в прошлое.

Если разработчик придет и запустит DROP TABLE myApp_users , это изменение будет распространено на ваш сервер резервного копирования только для чтения, и вы у вас нет возможности восстановить. У вас должна быть возможность вернуться на разумный промежуток времени.

Если кто-то найдет способ обновить ваш логотип или загруженный пользователем файл на главном сервере, изменение будет распространено на резервный сервер через rsync.

Вам необходимо через определенные промежутки времени выгружать базу данных и копировать файлы куда-нибудь через определенные промежутки времени и хранить x данных в количестве времени, чтобы называть это резервной копией .

2
ответ дан 3 December 2019 в 20:17

Теги

Похожие вопросы