Синхронизация двух баз данных MySQL в двух разных местах

19

У меня есть две идентичные базы данных MySQL, одна на внутреннем сервере, а другая на сервере веб-хостинга. Я хочу обновлять базу данных на веб-хосте каждый день с базой данных на внутреннем сервере. Есть ли способ автоматизировать этот процесс, и как я могу сделать это вручную? Если я делаю это вручную, требуется ли мне получить дамп SQL базы данных на внутреннем сервере и затем импортировать его в базу данных на веб-хосте? Может кто-то совет, пожалуйста.

ry12
источник
Вы можете сослаться на существующий ответ, опубликованный здесь, в StackOverflow stackoverflow.com/questions/52583/…
Махеш Патил
о # 2, если я сделаю полный дамп из внутреннего хранилища и импортирую в производство, это перезапишет онлайн-базу данных, я имею в виду, что у меня есть онлайн-покупатели на базе данных, размещенной в Интернете, и я хочу перенести покупки внутренней базы данных в оперативный режим, не могли бы вы уточнить, что случиться с автоинкрементами между двумя, если они оба резервируют один и тот же идентификатор, это будет грязно!
Шариф

Ответы:

20

У вас есть несколько вариантов:

  1. Настройте репликацию MySQL между серверами. Ваш внутренний сервер может выступать в качестве главного, а сервер веб-хоста - в качестве подчиненного. Любые обновления, выполненные на ведущем устройстве, будут немедленно реплицированы на ведомое устройство (при условии работающего соединения). Скорее всего, это будет самый простой и эффективный вариант выбора. Чтобы использовать репликацию, ваша внутренняя база данных должна быть доступна по сети с веб-хоста.

    Вы можете прочитать больше о репликации здесь .

  2. Каждый день вы можете выполнить mysqldump на внутреннем сервере, загрузить файл дампа на веб-хостинг и импортировать данные. Поскольку это полный дамп, если у вас очень большая база данных, это может оказаться невозможным. Если хотите, эту процедуру можно было бы написать в сценарии, чтобы избежать необходимости делать это вручную.

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

Если нет никакой связи между двумя базами данных, проще всего выбрать mysqldumps каждый день.

Мэтт Хили
источник
о # 2, если я сделаю полный дамп из внутреннего хранилища и импортирую в производство, это перезапишет онлайн-базу данных, я имею в виду, что у меня есть онлайн-покупатели на базе данных, размещенной в Интернете, и я хочу перенести покупки внутренней базы данных в оперативный режим, не могли бы вы уточнить, что случиться с автоинкрементами между двумя, если они оба резервируют один и тот же идентификатор, это будет грязно!
Шариф
4

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

Шива Картикеян
источник
2

Как настроить репликацию базы данных с MariaDB: https://www.techrepublic.com/article/how-to-set-up-database-replication-with-mariadb/

Дилан Б
источник
1
Добро пожаловать в DBA.SE. Мы ценим ваш вклад / участие. Тем не менее, сообщество ожидает определенного качества в ответах. Пожалуйста, прочитайте следующую статью: Как мне написать хороший ответ? (Справочный центр) В разделе « Ответить на вопрос» есть короткое предложение, которое гласит: Ссылки на внешние ресурсы приветствуются, но, пожалуйста, добавьте контекст вокруг ссылки, чтобы ваши коллеги-пользователи имели представление о том, что это такое и почему оно есть
Джон ака hot2use
0

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

Джош А.
источник