У меня два сервера. Назовем ServerA и ServerB, каждый имеет свой собственный сервер базы данных и веб-сервер. Эти два сервера используются для запуска разных веб-сайтов. Данные ServerA более важны, потому что они имеют дело с денежными транзакциями. В то время как ServerB имеет веб-сайт, похожий на блог, что менее важно.
Я ищу решение для резервного копирования в реальном времени для моего ServerA. (В настоящее время я делаю полное резервное копирование для ServerA один раз в день). Прямо сейчас я хочу попробовать резервное копирование Master-Slave. ServerA будет «Master», а ServerB - «Slave».
Вопрос
ServerA (Мастер)
- База данныхA
ServerB (подчиненный)
- DatabaseA (синхронизация с сервером A)
- DatabaseB (уникально для ServerB, используется для веб-сайтов, похожих на блог)
- DatabaseC (уникально для ServerB, используется для веб-сайтов, похожих на блог)
Веб-приложение в ServerB не будет касаться DatabaseA. Я знаю, что это возможно, но я хочу знать, является ли это разумным решением для меня, учитывая, что у меня нет достаточного бюджета для покупки другого сервера для резервного копирования.
Это обычная установка.
Если это мудрый в вашем случае сложно сказать, это зависит от рабочей нагрузки серверов, связи между ними, размера базы данных, количества обрабатываемых ею запросов и т. д.
Поскольку вы пишете, что DatabaseA используется для денежных транзакций, есть также соображения безопасности.
Если вы запускаете небезопасные приложения на ServerB, компрометация одного из них может приблизить злоумышленника к вашему важному приложению.
В вашем сообщении упоминается, что вы хотите использовать эту настройку как Master-Slave резервное копирование.
Я надеюсь, ты имеешь в виду, что будешь бежать mysqldump
(или аналогичные методы) на подчиненном сервере.
Настройка Master-Slave НЕ решение для резервного копирования!
Представьте, что в вашем приложении есть ошибка или оно скомпрометировано и потеряет самые ценные данные.
Оператор drop будет воспроизведен и мгновенно (более или менее) сотрет вашу «резервную копию».
Если сервер B выполняет дамп или резервное копирование, то это может быть решение для резервного копирования, также сервер A никогда не почувствует нагрузку резервного копирования. Мы делаем это на серверах с высокими требованиями, чтобы они никогда не тормозили во время резервного копирования.