在mysqldump上强制执行row_format

时间:2011-11-23 14:38:18

标签: mysql mysqldump mysql-backup

我正在将整个服务器转换为使用Barracuda文件格式和动态行格式。这是我做的:

  1. 完整的mysqldump
  2. 已配置* innodb_file_per_table = 1 *和* innodb_file_format = barracuda *
  3. 重置所有mysql数据。
  4. 导入所有转储数据库。
  5. 由于我再次创建所有数据库并重新创建表格,我期待它们都是梭子鱼,但大多数都是羚羊。

    有没有办法在mysqldump上或在导入时指定row_format?

    注意:在有人问为什么之前,我会尝试使用不同的文件格式来测试哪种格式最适合我们的服务器,该服务器目前有680个数据库,共有326k表和40Gb。现在的主要问题是mysql企业备份需要很长时间来备份它。

1 个答案:

答案 0 :(得分:7)

以下是我最终如何做到这一点:

完全转储后,我使用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。