6

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

  1. 完整的mysqldump
  2. 配置 *innodb_file_per_table = 1* 和 *innodb_file_format=barracuda*
  3. 重置所有mysql数据。
  4. 导入所有转储的数据库。

由于我正在重新创建所有数据库并重新创建表,因此我希望它们都是梭鱼,但大多数都是羚羊。

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

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

4

1 回答 1

13

这是我最终的做法:

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

于 2011-11-23T19:18:24.630 回答