Spec-Zone .ru
спецификации, руководства, описания, API
|
Есть много причин, почему Вы могли бы скопировать InnoDB
таблица к различному
серверу базы данных:
Выполнять отчеты, не помещая дополнительную загрузку в производственный сервер.
Устанавливать идентичные данные для таблицы на новом
Восстановить поддержанную версию таблицы после проблемы или ошибки.
Как более быстрый способ переместить данные чем импорт результатов mysqldump команды. Данные сразу доступны, вместо того, чтобы иметь необходимость быть повторно вставленными и индексирование восстановленного.
Используйте FLUSH
TABLES
оператор с FOR EXPORT
пункт. Это помещает соответствие .ibd
файлы в непротиворечивое состояние так, чтобы они могли быть скопированы в
другой сервер. Вы копируете a .cfg
файл наряду с .ibd
файл; этот дополнительный файл используется ALTER
TABLE ... IMPORT TABLESPACE
вносить любые необходимые корректировки в пределах файла табличной
области во время процесса импорта. См. Раздел 13.7.6.3,"FLUSH
Синтаксис" для семантики SQL.
На исходном сервере составьте таблицу, если Вы уже не существуете:
mysql> use test;mysql> CREATE TABLE t(c1 INT) engine=InnoDB;
На целевом сервере составьте таблицу, если Вы уже не существуете:
mysql> use test;mysql> CREATE TABLE t(c1 INT) engine=InnoDB;
На целевом сервере отбросьте существующую табличную область:
mysql> use test;mysql> ALTER TABLE t DISCARD TABLESPACE;
Отметьте: файл табличной области не должен обязательно быть создан на сервере, в который импортируется файл табличной области. В MySQL 5.6 или позже, импортируя файл табличной области из другого сервера работает, если у обоих серверов есть GA (Общедоступность), состояние и их версии в пределах того же самого ряда. Иначе, файл, должно быть, был создан на сервере, в который он импортируется.
На исходном сервере заморозьте таблицу и создайте .cfg
файл метаданных, работая FLUSH TABLES ... FOR EXPORT
:
mysql> use test;mysql> FLUSH TABLES t FOR EXPORT;
Файл метаданных (t.cfg
) создается в InnoDB
каталог данных.
Отметьте: FLUSH TABLES ... FOR
EXPORT
применяется к InnoDB
таблицы. Это доступно с
MySQL 5.6.6. Оператор гарантирует, что изменения к именованным таблицам были сброшены к диску
так, чтобы двоичные табличные копии могли быть сделаны, в то время как сервер работает. Когда FLUSH TABLES ... FOR EXPORT
выполняется, InnoDB
производит a .cfg
в том же
самом каталоге базы данных как таблица. .cfg
файл содержит
метаданные, должен был импортировать файл табличной области.
Скопируйте .cfg
файл метаданных и .ibd
файл от исходного сервера до целевого сервера. Например:
shell> scp /innodb_data_dir/test/t.{ibd,cfg} destination-server:/innodb_data_dir/test
На исходном сервере использовать UNLOCK TABLES
выпускать блокировки, полученные FLUSH TABLES ... FOR EXPORT
:
mysql> use test;mysql> UNLOCK TABLES;
На целевом сервере импортируйте табличную область:
mysql> use test;mysql> ALTER TABLE t IMPORT TABLESPACE;