首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >搬到innodb_file_per_table?

搬到innodb_file_per_table?
EN

Database Administration用户
提问于 2015-11-25 12:37:03
回答 1查看 400关注 0票数 1

我刚刚注意到(不幸的是,在试图从备份恢复时),在我的生产服务器上有一个35 is的ibdata1文件!

据我所知,我可以通过迁移到innodb_file_per_table来缩小它的大小。但是,按照我在这里看到的答案(下面的链接),在开始转换之前,您必须转储和删除所有数据库。

要花多长时间才能完成这个转换?

是否有可能错开转换,一次只做一个数据库?

谢谢。

减少mysql中的ibdata大小的最佳方法是什么?

EN

回答 1

Database Administration用户

发布于 2017-06-15 19:52:41

您已经链接到rolando关于如何进行迁移的帖子。您可以在线更改设置以使用每个表文件,但这不会修复您庞大的ibdata文件大小,即使之后使用了单个文件。

要识别所需的时间,请尝试在从备份中重新创建的另一个安装上执行此操作。这样,您将得到合理的数字(只要系统有类似的规格和硬件正在使用),这一过程将需要多长时间,你也可以尝试它之前手放在生产系统。

如果您有困难的正常运行时间要求,另一种在线操作方式可能是通过复制。要创建一个从属程序,您必须创建一个带有特殊参数的初始mysqldump,但是这不会是一个问题,因为我想您还是通过转储来创建备份的吧?

在设置复制时,您可以让从服务器使用innodb_file_per_table运行,即使主服务器不运行。一旦所有的事情都设置好了,就把主人的ip放在奴隶身上。

如果所有这些都由于缺乏硬件而不可能实现,那么您的系统在严格的正常运行时间要求下可能会卖得太低,而且您现在有了一份忘恩负义的工作,使一些风险发挥作用,而这些风险本来应该在最初的计划中得到改进,除了产品设置之外,还可以获得足够的测试设置。

为了加快mysqldumps的速度,尝试将它们直接连接到并行bzip中,通过减少所需的磁盘访问来使内核完成更多的工作并节省时间。粗俗的样子:

代码语言:javascript
运行
复制
# DUMP
mysqldump ... | pbzip2 -c > MYSQLDUMP.sql
# REPLAY
pbzip2 -dkc MYSQLDUMP.sql | mysql (...)
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/122076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档