Как клонировать mySQL непрерывно. мгновенно на виртуальный хостинг
Я установил MySQL на общий сервер и имею доступ через phpMyAdmin. Я хочу сделать непрерывный клон этой базы данных в реальном времени в облачную базу данных mySQL (мы создали Nginx-готовый сервер MySQL специально для этой базы данных) я хочу создать клон старой базы данных в реальном времени, а затем обновить код, чтобы указать на новую базу данных...
2 ответа:
Я думаю, что вам будет трудно выполнить репликацию MySQL в реальном времени в среде общего сервера. Поскольку вы, по-видимому, перемещаете серверы БД, я был бы склонен сделать горячую копию ваших данных и установить ее на новом сервере БД. В то же время, как вы делаете эту копию, вы должны включить ведение журнала запросов в вашем приложении.
В этом случае переключение будет состоять из выполнения протоколированных запросов к новой базе данных (быстрее, чем они были протоколированы!) и, наконец, в какой-то момент, что все зарегистрированные запросы были запущены, переключая конфигурацию приложения так, чтобы новая база данных использовалась.
Edit: проблема с горячей копией заключается в том, что данные записываются в БД одновременно с копированием. Это означает, что время последнего обновления будет отличаться для каждой таблицы. Исходя из этого, можно ли в вашем приложении настроить столбец "last_updated" для каждой строки? Если это так, вы сможете сказать для каждой таблицы, какие протоколированные запросы все еще нужно скопировать.
То, что вы ищете, - это репликация. Он имеет далеко до многих вариантов, чтобы охватить здесь в одном посте.
Http://dev.mysql.com/doc/refman/5.5/en/replication.html
Если вы собираетесь сделать репликацию через интернет, вы захотите ее обезопасить.Ваш хост может разрешить виртуальную локальную сеть, так что это не будет использовать ваши ресурсы пропускной способности.
Отличный набор инструментов от percona, на который вам стоит посмотреть-это maatkit
Https://launchpad.net/percona-toolkit
Документация и примеры использования http://www.maatkit.org/doc/
Это хорошо для других задач, но также позволяет быстро реплицировать живую базу данных.
При работе с живыми базами данных убедитесь, что резервные копии актуальны.