Spec-Zone .ru
спецификации, руководства, описания, API
|
Один способ создать снимок данных в существующей основной базе данных состоит в том, чтобы использовать mysqldump инструмент. Как только дамп данных был завершен, Вы тогда импортируете эти данные в ведомое устройство прежде, чем запустить процесс репликации.
Получить снимок данных, используя mysqldump:
Если Вы уже не заблокировали таблицы на сервере, чтобы предотвратить операторы, которые обновляют данные от выполнения:
Запустите сеанс на сервере, соединяясь с этим с клиентом командной строки, и сбросьте все таблицы и
блокируйте операторы записи, выполняясь FLUSH
TABLES WITH READ LOCK
оператор:
mysql> FLUSH TABLES WITH READ
LOCK;
Не забудьте использовать SHOW
MASTER STATUS
и запишите двоичные детали журнала для использования, запуская ведомое
устройство. Момент времени Вашего снимка и двоичной позиции журнала должен соответствовать. См. Раздел 16.1.1.4,
"Получая Ведущие Двоичные Координаты Журнала Репликации".
В другом сеансе используйте mysqldump, чтобы создать дамп или всех баз данных, которые Вы хотите тиражировать, или выбранных отдельных баз данных. Например:
shell> mysqldump --all-databases
--lock-all-tables >dbdump.db
Альтернатива использованию пустого дампа, должен использовать --master-data
опция, которая автоматически добавляет CHANGE MASTER TO
оператор, требуемый на ведомом устройстве запустить
процесс репликации.
shell> mysqldump --all-databases
--master-data >dbdump.db
В клиенте, где Вы получали блокировку чтения, выпустите блокировку:
mysql> UNLOCK
TABLES;
Альтернативно, выйдите из первого сеанса, чтобы выпустить блокировку чтения.
Выбирая базы данных, чтобы включать в дамп, не забудьте отфильтровывать базы данных на каждом ведомом устройстве, которое Вы не хотите включать в процесс репликации.
Или чтобы скопировать файл дампа в ведомое устройство, или использовать файл от ведущего устройства, соединяясь удаленно с ведомым устройством, чтобы импортировать данные.