Использование MySQL репликации для репликации в определенное время

664
Anthony Reed

Моя работа связана с тестированием, постановкой и производством. Они хотят, чтобы большинство изменений базы данных было выполнено в промежуточной среде, а производственная среда должна реплицировать промежуточную среду. Из проведенного мной исследования выясняется, что наилучшим способом для этого будет процесс репликации Mysql. Таким образом, промежуточная база данных будет главной БД, а рабочий сайт будет работать на ведомой БД. Итак, мой вопрос заключается в следующем.

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

Спасибо

1

1 ответ на вопрос

0
Chris

Так как это синхронизация по принципу ad-hoc, не устанавливайте никаких master-slave или master-master, поскольку вы делаете свою жизнь более сложной, чем необходимо. Просто настройте задание cron или задание для синхронизации с помощью дампа, на ваш выбор: простое копирование файла, сокеты или соединение tcp / ip mysql для передачи.

Так что вы говорите, что если я просто сделаю sqldump и отправлю файл sql на рабочий сервер. mysql будет знать, как синхронизировать данные, не перезаписывая полностью все? Anthony Reed 11 лет назад 0
Если возможно, я бы хотел перенести только различия в данных или схемах для целей исполнения Anthony Reed 11 лет назад 0
если вы делаете это через файл, вы в конечном итоге выполняете импорт вручную, или вы можете настроить cron, чтобы сказать, смотреть каталог и выполнять импорт. Либо так, либо socks / tcpip, и выберите правильный тип дампа, чтобы включить или исключить стирание существующих таблиц. Chris 11 лет назад 0
Просто прочитайте ваш комментарий о производительности, нужно синхронизировать разницу. Сколько строк в целом БД? Если это не миллионы записей, производительность хорошая. Вы также можете просто взять соответствующую часть логов с постановки и заново воспроизвести на производстве по желанию. Chris 11 лет назад 0
Понимаю. Я провел некоторое исследование, и, похоже, до тех пор, пока я не укажу удалить существующие таблицы в моем дампе, mysql просто добавит новые данные в существующую таблицу. что в конечном итоге то, что я хочу. Я мог бы просто пойти дальше и использовать вместо этого свалку. И, возможно, использовать diff для сравнения. Anthony Reed 11 лет назад 0