Принудительно указать row_format на mysqldump - PullRequest
3 голосов
/ 23 ноября 2011

Я конвертирую весь сервер, чтобы использовать формат файла Barracuda и динамический формат строки.Вот что я сделал:

  1. полный mysqldump
  2. настроен * innodb_file_per_table = 1 * и * innodb_file_format = barracuda *
  3. сбросил все данные mysql.
  4. импортировал все дампированные базы данных.

Поскольку я снова создавал все базы данных и заново создавал таблицы, я ожидал, что все они будут барракуда, но вместо этого большинство из них - антилопы.

Есть ли способ указать row_format в mysqldump или при его импорте?

Примечание: прежде чем кто-то спросит почему, я экспериментирую с различными форматами файлов, чтобы проверить, который лучше всего работает на нашем сервере, который в настоящее время имеет 680 баз данных с общим количеством 326k.таблицы и 40Gb.Главная проблема сейчас заключается в том, что резервное копирование MySQL занимает слишком много времени для резервного копирования всего этого.

1 Ответ

8 голосов
/ 23 ноября 2011

Вот как я это делаю:

после полного дампа я конвертировал финальные файлы, используя sed:

cat full.sql | sed -e 's/ROW_FORMAT=COMPACT/ROW_FORMAT=DYNAMIC/'  | sed -e '/ROW_FORMAT/!s/^) ENGINE=InnoDB/) ENGINE=InnoDB ROW_FORMAT=DYNAMIC/' > full.mod.sql

Эта строка меняет ROW_FORMAT с COMPACT на DYNAMIC и добавляет ROW_FORMAT = DYNAMIC, если формат не указан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...