2015-09-24 6 views
2

Я ищу самый быстрый способ импорта базы данных. Проблема в том, что я использую базу данных экспорта mysqldump. Моя база данных составляет более 2 ГБ на диске.Импорт базы данных MySQL самый быстрый способ

mysqldump довольно быстро, но импорт занимает много времени. Есть ли быстрый способ импорта базы данных?

Мы попытались реализовать горячую резервную копию, но MySQL не загружен. Есть ли варианты быстрого экспорта-импорта? Это простая копия файлов базы данных в папке с данными?

Информационный сервер: ОС: MS Windows Server 2008
Сервер MySQL: MySQL 5.5 или MariaDB
Таблицы Тип: InnoDB (если MariaDB - InnoDB плагин)

ответ

3

Да, можно скопировать файлы InnoDB на с одного сервера на другой. Если вы включили «файл innodb для каждой таблицы», это будет намного проще. Следуя инструкциям в manual вы можете сделать:

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

    MySQL> использовать тест;
    mysql> CREATE TABLE t (c1 INT) engine = InnoDB;

  2. На целевом сервере, создать таблицу, если не существует:

    MySQL> использовать тест;
    mysql> CREATE TABLE t (c1 INT) engine = InnoDB;

  3. На конечном сервере отмените существующее табличное пространство. (Перед тем, как табличного может быть импортировано, Ьшо должны сбросить табличные, который прикреплен к приемному столу.)

    MySQL> ALTER TABLE т DISCARD TABLESPACE;

  4. На исходном сервере запустите FLUSH TABLES ... для экспорта в заморозить в таблицу и создать файл .cfg метаданных:

    MySQL> использовать тест;
    mysql> FLUSH TABLES t ДЛЯ ЭКСПОРТА;

    Файл метаданных (.cfg) создается в каталоге данных InnoDB. Примечание

    FLUSH TABLES ... FOR EXPORT доступен с MySQL 5.6.6. Оператор гарантирует, что изменения в названных таблицах были сброшены на на диск, чтобы копии двоичной таблицы можно было сделать, пока сервер работает .Когда выполняется FLUSH TABLES ... FOR EXPORT, InnoDB создает файл .cfg в том же каталоге базы данных, что и таблица. Файл .cfg содержит метаданные, используемые для проверки схемы при импорте файла табличного пространства .

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

    оболочки> УПП /path/to/datadir/test/t.{ibd,cfg} назначение-сервер:/путь/к/каталогу_данному/тесту

    Примечание

    Файл .ibd и .cfg-файл должны быть скопированы перед тем, как освободить общие блокировки , как описано на следующем шаге.

  6. на исходном сервере, используйте UNLOCK TABLES для освобождения блокировки, по FLUSH TABLES ... для экспорта:

    MySQL> использование теста;
    mysql> UNLOCK TABLES;

  7. На целевом сервере, импортировать табличное:

    MySQL> использовать тест; mysql> ALTER TABLE t IMPORT TABLESPACE;

    Примечание

    альтер TABLE ... ИМПОРТ функция TABLESPACE не обеспечивает иностранных ключевых ограничений на импорт данных. Если между таблицами существуют ограничения внешнего ключа , все таблицы должны быть экспортированы с одинаковым (логическим) значением . В этом случае вы прекратите обновление таблиц, завершите все транзакции, приобретите общие блокировки в таблицах, а затем выполните операцию экспорта .

+0

Но есть ли решение для всей базы данных сразу? не блокировать все таблицы на один? – djmartini

+0

'FLUSH TABLES tbl_name [, tbl_name] ... FOR EXPORT;' поддерживает несколько таблиц одновременно. –

0

Я надеюсь, что я думаю, что полезно для вас ... Попробуйте ИМПОРТ CSV-файла простой способ загрузки базы данных.

Для примера:

LOAD DATA LOCAL INFILE 'path/caption.csv' 
INTO TABLE caption 
FIELDS TERMINATED BY ',' 
    ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES 
(id, name) 

использовать это программное обеспечение:

HeidiSQL SQL Редакторы Программное обеспечение

+0

этот способ, чтобы иметь возможность перемещать все индексы, хранимые процедуры, триггеры? База данных – djmartini

+0

состоит из 700 таблиц, этот метод позволяет сразу сбрасывать всю базу данных, чтобы не экспортировать каждую таблицу за один? – djmartini

1

я столкнулся такая же проблема с MySQL при импорте данных, после настройки следующих параметров:

  1. max_allowed_packet = 1024M
  2. innodb_buffer_pool_size = 4G

импорт время значительно сократилось.

Смежные вопросы