MySql Объединить данные с удаленных серверов баз данных - PullRequest
1 голос
/ 21 февраля 2012

У меня есть база данных mysql в моем основном офисе и 4 сервера вне сайта, которые используются для событий и сбора данных о клиентах. Когда я возвращаю сервер в домашний офис, мне нужно отправить все данные из внешней базы данных в основную базу данных без перезаписи существующих данных, чтобы я мог очистить удаленную базу данных и отправить ее заново на следующее событие.

Я посмотрел на mysqldump, и он всегда удаляет все предыдущие данные, что было бы очень плохо.

Если кто-нибудь может помочь мне направить меня в правильном направлении, это будет очень ценно.

Примечания: Внешние серверы не имеют подключения к Интернету во время событий, а внешние серверы не подключены к локальной сети, когда находятся в офисе.

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

Ответы [ 2 ]

0 голосов
/ 21 февраля 2012

Вы можете настроить поведение mysqldump, связанное с отбрасыванием, или заменить / вставить в командной строке.

попробуй

mysqldump --help

Также вы можете использовать INSERT SELECT

Вы также можете использовать SELECT CONCAT (для создания CSV) и LOAD DATA для импорта операторов CSV.

0 голосов
/ 21 февраля 2012

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

Если вы хотите использовать mysqldump для этого, я думаю, что должно работать следующее:

  1. сбросить базу данных, которая была в событии, в файл, используя mysqldump
  2. создать временную БД для вашего первичного экземпляра базы данных (таким образом, у вас есть primary_db и временный_баз, которые структурно идентичны и в одном и том же экземпляре mysql)
  3. загрузить дамп во временную БД
  4. run INSERT INTO ... SELECT из временной БД в первичную БД:

    INSERT INTO primary_db.customer (имя, адрес) ВЫБРАТЬ имя, адрес ОТ временного_db.customer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...