Есть ли готовое решение для копирование новых записей в БД с production в local server?
Имейте ввиду что не надо синхронизировать production и local server, а только скопировать новые записи (new recores* production (MySQL server) -> local (MySQL server).
Репликация master-slave. Хотя, если под новыми записями Вы имеете ввиду созданные за последние N часов, то вряд ли есть готовые решения, но легко написать однострочник.
Хороший ответ, но только есть некоторые нюансы которые не подходят к моей ситуацией. Подожду еще решений, может найдется абсолютно подходящие решение...
Валерий Рябошапко нюансы:
1. Я же написал что 2-ой сервер локальный, то есть как указывать в локальном сервере путь к bin логу на Мастере?
2. habrahabr.ru/post/50064 - здесь написано что MySQL должен быть запущен с ключом --log-bin[=file_name] чтобы ввелись лог файлы, а как я узнаю с каким ключом запущен MySQL?
3. Я про master-slave прочитал тут goo.gl/Tl5lh7 и тут goo.gl/4MrWRv, но не понял серверы синхронизируется или slave server только копирует новые записи. Мне не нужно синхронизировать а только копировать новые записи, то есть если в Master server удалить что нибудь, то этого не надо делать и в Slave server!
Mokhirzon Naimov:
1. Слэйву не нужен путь к бинарному логу мастера. Достаточно адреса и логинопароля. Плюс номер записи в бинарном логе.
2. По той ссылке написано, что ключ --log-bin — это только один из вариантов заставить MySQL вести бинарный лог. Можно просто my.cnf поправить.
3. Чтобы запустить репликацию базы, в которой уже есть данные, нужно сначала синхронизировать данные. При этом в слэйв базе будут отображаться все изменения, происходящие в мастер базе, включая удаление и изменение данных.
Да, судя по всему, это не то, что Вам нужно. И, боюсь, другого готового решения не могу подсказать. Если есть желание/возможность писать велосипед, то можно попытаться разбирать бинарный лог MySQL и вытаскивать оттуда только те записи, которые соответствуют добавлению и обновлению записей. Или прослушивать траффик между мастером и слэйвом и так же выдёргивать оттуда данные о новых записях.
Mokhirzon Naimov: о, а ведь в той хабрастатье, которую Вы указали, есть упоминание о mysqlbinlog. Похоже, это то, что Вам нужно. Надо только соорудить скрипт, который будет в нужное время его натравливать на нужные файлы и из полученного SQL выделять только INSERT или UPDATE запросы.