как зеркалировать базу данных и реализовать решение аварийного переключения

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

Моя установка такова:

  1. У меня есть три сервера под управлением ubuntu linux 16.04 . все три имеют свои собственные фиксированные IP-адреса.

  2. В августе на одном из серверов будет размещен веб-сайт с большой серверной базой данных mysql. Пользователи (порядка 500-1000) будут постоянно регистрировать записи в базе данных в основном в дневное время, например, с 8 до 20 часов. Администраторы будут запрашивать у базы данных различные статистические данные.

  3. веб-сайт и база данных должны быть в рабочем состоянии постоянно, поэтому я хотел бы использовать второй сервер, чтобы зеркалировать все на первом, и взять на себя его функции, если первый выйдет из строя (аварийное переключение). Я могу использовать третий, если необходимо, чтобы отслеживать реакцию двоих.

Я не делаю ' Не знаю, с чего начать. Мои основные вопросы:

  1. Как поддерживать синхронизацию большой базы данных mysql на двух разных машинах? база данных будет большой (возможно, 5-10 ГБ), поэтому потребуется время, чтобы вывести и перестроить базу данных из файла .sql. Если случится катастрофа, я потерял 10 минут ведения журнала и времени безотказной работы, но не часы на восстановление базы данных на другом сервере из файла sql.

  2. Как сделать так, чтобы второй сервер взял на себя управление, если первый выйдет из строя? Могу ли я отслеживать активность этих двух серверов с помощью третьего сервера и переключать IP-адреса, если основной сервер выходит из строя? В таком случае были бы признательны за некоторые подробные шаги. Я видел, как в этом вопросе использовались такие жаргоны, как «биение сердца» и «виртуальные IP-адреса», что для меня слишком абстрактно. Мне нужно как можно больше деталей, и если это выходит за рамки моего опыта, мне нужно выяснить это, чтобы я мог вовремя сообщить об этом своему боссу.

спасибо за помощь

0
задан 30 April 2017 в 20:58
2 ответа

Mysql Replication довольно хорошо решает эти проблемы даже для географически распределенных баз данных.

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

0
ответ дан 4 December 2019 в 12:20

Согласитесь с предыдущим ответом, репликация mysql может быть возможным решением.

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

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

3
ответ дан 4 December 2019 в 12:20

Теги

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