Spec-Zone .ru
спецификации, руководства, описания, API

5.4.1.3. Копирование Табличных областей к Другому Серверу (Мобильные Табличные области)

Есть много причин, почему Вы могли бы скопировать InnoDB таблица к различному серверу базы данных:

Используйте FLUSH TABLES оператор с FOR EXPORT пункт. Это помещает соответствие .ibd файлы в непротиворечивое состояние так, чтобы они могли быть скопированы в другой сервер. Вы копируете a .cfg файл наряду с .ibd файл; этот дополнительный файл используется ALTER TABLE ... IMPORT TABLESPACE вносить любые необходимые корректировки в пределах файла табличной области во время процесса импорта. См. Раздел 13.7.6.3,"FLUSH Синтаксис" для семантики SQL.

Процедура в качестве примера: Копирование Табличной области От Одного Сервера До Другого (Мобильные Табличные области)

  1. На исходном сервере составьте таблицу, если Вы уже не существуете:

    mysql> use test;mysql> CREATE TABLE t(c1 INT) engine=InnoDB;
  2. На целевом сервере составьте таблицу, если Вы уже не существуете:

    mysql> use test;mysql> CREATE TABLE t(c1 INT) engine=InnoDB;
  3. На целевом сервере отбросьте существующую табличную область:

    mysql> use test;mysql> ALTER TABLE t DISCARD TABLESPACE;
    Отметить

    Отметьте: файл табличной области не должен обязательно быть создан на сервере, в который импортируется файл табличной области. В MySQL 5.6 или позже, импортируя файл табличной области из другого сервера работает, если у обоих серверов есть GA (Общедоступность), состояние и их версии в пределах того же самого ряда. Иначе, файл, должно быть, был создан на сервере, в который он импортируется.

  4. На исходном сервере заморозьте таблицу и создайте .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 файл содержит метаданные, должен был импортировать файл табличной области.

  5. Скопируйте .cfg файл метаданных и .ibd файл от исходного сервера до целевого сервера. Например:

    shell> scp /innodb_data_dir/test/t.{ibd,cfg} destination-server:/innodb_data_dir/test
  6. На исходном сервере использовать UNLOCK TABLES выпускать блокировки, полученные FLUSH TABLES ... FOR EXPORT:

    mysql> use test;mysql> UNLOCK TABLES;
  7. На целевом сервере импортируйте табличную область:

    mysql> use test;mysql> ALTER TABLE t IMPORT TABLESPACE;