Spec-Zone .ru
спецификации, руководства, описания, API
|
Этот раздел объясняет различные методы для перемещения или копирования некоторых или всех InnoDB
таблицы к различному серверу. Например, Вы могли бы переместить весь экземпляр MySQL в больший, более быстрый
сервер; Вы могли бы клонировать весь экземпляр MySQL к новому ведомому серверу репликации; Вы могли бы
скопировать отдельные таблицы в другой сервер к разработке и протестировать приложение, или к серверу хранилища
данных, чтобы представить доклады.
На Windows, InnoDB
всегда имена базы данных хранилищ и имена таблиц внутренне в
нижнем регистре. Чтобы переместить базы данных в двоичный формат от Unix до Windows или от Windows до Unix,
создайте все базы данных и таблицы, используя строчные имена. Удобный способ выполнить это состоит в том, чтобы
добавить следующую строку к [mysqld]
раздел Вашего my.cnf
или my.ini
файл прежде, чем создать любые
базы данных или таблицы:
[mysqld]lower_case_table_names=1
Резервный продукт MySQL Enterprise позволяет Вам поддерживать рабочую базу данных MySQL, включая InnoDB
и MyISAM
таблицы, с минимальным разрушением к
операциям, производя непротиворечивый снимок базы данных. Когда Резервное копирование MySQL Enterprise копирует
InnoDB
таблицы, чтения и записи обоим InnoDB
и MyISAM
таблицы могут продолжаться. Во время копирования MyISAM
и другие non-InnoDB таблицы, чтения (но не записи) к тем таблицам разрешаются. Кроме того, Резервное копирование
MySQL Enterprise может создать сжатые файлы резервных копий, и поддержать подмножества InnoDB
таблицы. В соединении с двоичным журналом MySQL можно выполнить восстановление момента времени. Резервное
копирование MySQL Enterprise включается как часть подписки MySQL Enterprise.
Для получения дополнительной информации о Резервном копировании MySQL Enterprise, см.
Как MyISAM
файлы данных, InnoDB
файлы данных и файлы
журнала являются совместимыми с двоичным файлом на всех платформах, имеющих тот же самый числовой формат с
плавающей точкой. Можно переместиться InnoDB
база данных просто, копируя все
соответствующие файлы, перечисленные в Разделе
14.2.2.4, "Поддерживая и Восстановлении InnoDB
База данных". Если
форматы с плавающей точкой отличаются, но Вы не использовали FLOAT
или DOUBLE
типы данных в Ваших таблицах, тогда процедура является тем же самым:
просто скопируйте соответствующие файлы.
.ibd
Файлы Когда Вы перемещаете или копируете .ibd
файлы, имя каталога базы данных должно
быть тем же самым на целевых системах и источнике. Табличное определение, сохраненное в InnoDB
совместно используемая табличная область включает имя базы данных. ID транзакции и порядковые номера журнала,
сохраненные в файлах табличной области также, отличаются между базами данных.
Перемещаться .ibd
файл и связанная таблица от одной базы данных до другого,
используйте a RENAME TABLE
оператор:
RENAME TABLEdb1.tbl_name
TOdb2.tbl_name
;
Если у Вас есть "чистое" резервное копирование
.ibd
файл, можно восстановить это к установке MySQL, из которой это произошло
следующим образом:
Таблица, должно быть, не была отброшена или не усеченная, так как Вы скопировали
.ibd
файл, потому что, делая так изменения табличный ID, сохраненный в
табличной области.
Выпустите это ALTER
TABLE
оператор, чтобы удалить ток .ibd
файл:
ALTER TABLE tbl_name
DISCARD TABLESPACE;
Скопируйте резервное копирование .ibd
файл к
надлежащему каталогу базы данных.
Выпустите это ALTER
TABLE
оператор, чтобы сказать InnoDB
использовать новое .ibd
файл для таблицы:
ALTER TABLE tbl_name
IMPORT TABLESPACE;
В этом контексте, "чистом" .ibd
резервное копирование файлов один, для которого удовлетворяются следующие
требования:
Нет никаких незафиксированных модификаций транзакциями в .ibd
файл.
Есть не необъединенные буферные записи вставки в .ibd
файл.
Чистка удалила, все удаляют - отмеченный, индексируют записи от .ibd
файл.
mysqld сбросил все измененные страницы .ibd
файл от пула буферов до файла.
Можно сделать чистое резервное копирование .ibd
файл используя следующий метод:
Остановите все действие от mysqld сервера и фиксируйте все транзакции.
Не ожидайте до SHOW
ENGINE INNODB STATUS
шоу, что нет никаких активных транзакций в базе данных, и основного
состояния потока InnoDB
Waiting for server
activity
. Затем можно сделать копию .ibd
файл.
Другой метод для того, чтобы сделать чистую копию .ibd
файл должен использовать
Резервный продукт MySQL Enterprise:
Резервное копирование Use MySQL Enterprise, чтобы поддержать InnoDB
установка.
Запустите второй mysqld
сервер на резервном копировании и позвольте ему очищать .ibd
файлы в
резервном копировании.
Если Вы используете mysqldump, чтобы вывести Ваши таблицы на одной машине и затем импортировать файлы дампа на другой машине, не имеет значения, отличаются ли форматы, или Ваши таблицы содержат данные с плавающей точкой.
Один способ увеличить производительность состоит в том, чтобы выключить режим автоматической фиксации, импортируя данные, предполагая, что у табличной области есть достаточно пространства для большого сегмента отката, который генерируют транзакции импорта. Сделайте фиксацию только после импорта целой таблицы или сегмента таблицы.