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

14.2.2.5. Перемещение или Копирование InnoDB Таблицы к Другой Машине

Этот раздел объясняет различные методы для перемещения или копирования некоторых или всех InnoDB таблицы к различному серверу. Например, Вы могли бы переместить весь экземпляр MySQL в больший, более быстрый сервер; Вы могли бы клонировать весь экземпляр MySQL к новому ведомому серверу репликации; Вы могли бы скопировать отдельные таблицы в другой сервер к разработке и протестировать приложение, или к серверу хранилища данных, чтобы представить доклады.

Используя Строчные Имена таблиц

На Windows, InnoDB всегда имена базы данных хранилищ и имена таблиц внутренне в нижнем регистре. Чтобы переместить базы данных в двоичный формат от Unix до Windows или от Windows до Unix, создайте все базы данных и таблицы, используя строчные имена. Удобный способ выполнить это состоит в том, чтобы добавить следующую строку к [mysqld] раздел Вашего my.cnf или my.ini файл прежде, чем создать любые базы данных или таблицы:

[mysqld]lower_case_table_names=1

Резервное копирование Using MySQL Enterprise

Резервный продукт MySQL Enterprise позволяет Вам поддерживать рабочую базу данных MySQL, включая InnoDB и MyISAM таблицы, с минимальным разрушением к операциям, производя непротиворечивый снимок базы данных. Когда Резервное копирование MySQL Enterprise копирует InnoDB таблицы, чтения и записи обоим InnoDB и MyISAM таблицы могут продолжаться. Во время копирования MyISAM и другие non-InnoDB таблицы, чтения (но не записи) к тем таблицам разрешаются. Кроме того, Резервное копирование MySQL Enterprise может создать сжатые файлы резервных копий, и поддержать подмножества InnoDB таблицы. В соединении с двоичным журналом MySQL можно выполнить восстановление момента времени. Резервное копирование MySQL Enterprise включается как часть подписки MySQL Enterprise.

Для получения дополнительной информации о Резервном копировании MySQL Enterprise, см. Резервное Руководство пользователя MySQL Enterprise (Версия 3.8.2).

Копирование Файлов данных

Как MyISAM файлы данных, InnoDB файлы данных и файлы журнала являются совместимыми с двоичным файлом на всех платформах, имеющих тот же самый числовой формат с плавающей точкой. Можно переместиться InnoDB база данных просто, копируя все соответствующие файлы, перечисленные в Разделе 14.2.2.4, "Поддерживая и Восстановлении InnoDB База данных". Если форматы с плавающей точкой отличаются, но Вы не использовали FLOAT или DOUBLE типы данных в Ваших таблицах, тогда процедура является тем же самым: просто скопируйте соответствующие файлы.

Соображения мобильности для .ibd Файлы

Когда Вы перемещаете или копируете .ibd файлы, имя каталога базы данных должно быть тем же самым на целевых системах и источнике. Табличное определение, сохраненное в InnoDB совместно используемая табличная область включает имя базы данных. ID транзакции и порядковые номера журнала, сохраненные в файлах табличной области также, отличаются между базами данных.

Перемещаться .ibd файл и связанная таблица от одной базы данных до другого, используйте a RENAME TABLE оператор:

RENAME TABLE db1.tbl_name TO db2.tbl_name;

Если у Вас есть "чистое" резервное копирование .ibd файл, можно восстановить это к установке MySQL, из которой это произошло следующим образом:

  1. Таблица, должно быть, не была отброшена или не усеченная, так как Вы скопировали .ibd файл, потому что, делая так изменения табличный ID, сохраненный в табличной области.

  2. Выпустите это ALTER TABLE оператор, чтобы удалить ток .ibd файл:

    ALTER TABLE tbl_name DISCARD TABLESPACE;
  3. Скопируйте резервное копирование .ibd файл к надлежащему каталогу базы данных.

  4. Выпустите это ALTER TABLE оператор, чтобы сказать InnoDB использовать новое .ibd файл для таблицы:

    ALTER TABLE tbl_name IMPORT TABLESPACE;

В этом контексте, "чистом" .ibd резервное копирование файлов один, для которого удовлетворяются следующие требования:

Можно сделать чистое резервное копирование .ibd файл используя следующий метод:

  1. Остановите все действие от mysqld сервера и фиксируйте все транзакции.

  2. Не ожидайте до SHOW ENGINE INNODB STATUS шоу, что нет никаких активных транзакций в базе данных, и основного состояния потока InnoDB Waiting for server activity. Затем можно сделать копию .ibd файл.

Другой метод для того, чтобы сделать чистую копию .ibd файл должен использовать Резервный продукт MySQL Enterprise:

  1. Резервное копирование Use MySQL Enterprise, чтобы поддержать InnoDB установка.

  2. Запустите второй mysqld сервер на резервном копировании и позвольте ему очищать .ibd файлы в резервном копировании.

Экспорт и Импорт

Если Вы используете mysqldump, чтобы вывести Ваши таблицы на одной машине и затем импортировать файлы дампа на другой машине, не имеет значения, отличаются ли форматы, или Ваши таблицы содержат данные с плавающей точкой.

Один способ увеличить производительность состоит в том, чтобы выключить режим автоматической фиксации, импортируя данные, предполагая, что у табличной области есть достаточно пространства для большого сегмента отката, который генерируют транзакции импорта. Сделайте фиксацию только после импорта целой таблицы или сегмента таблицы.