我刚刚注意到(不幸的是,在试图从备份恢复时),在我的生产服务器上有一个35 is的ibdata1文件!
据我所知,我可以通过迁移到innodb_file_per_table来缩小它的大小。但是,按照我在这里看到的答案(下面的链接),在开始转换之前,您必须转储和删除所有数据库。
要花多长时间才能完成这个转换?
是否有可能错开转换,一次只做一个数据库?
谢谢。
发布于 2017-06-15 19:52:41
您已经链接到rolando关于如何进行迁移的帖子。您可以在线更改设置以使用每个表文件,但这不会修复您庞大的ibdata文件大小,即使之后使用了单个文件。
要识别所需的时间,请尝试在从备份中重新创建的另一个安装上执行此操作。这样,您将得到合理的数字(只要系统有类似的规格和硬件正在使用),这一过程将需要多长时间,你也可以尝试它之前手放在生产系统。
如果您有困难的正常运行时间要求,另一种在线操作方式可能是通过复制。要创建一个从属程序,您必须创建一个带有特殊参数的初始mysqldump,但是这不会是一个问题,因为我想您还是通过转储来创建备份的吧?
在设置复制时,您可以让从服务器使用innodb_file_per_table运行,即使主服务器不运行。一旦所有的事情都设置好了,就把主人的ip放在奴隶身上。
如果所有这些都由于缺乏硬件而不可能实现,那么您的系统在严格的正常运行时间要求下可能会卖得太低,而且您现在有了一份忘恩负义的工作,使一些风险发挥作用,而这些风险本来应该在最初的计划中得到改进,除了产品设置之外,还可以获得足够的测试设置。
为了加快mysqldumps的速度,尝试将它们直接连接到并行bzip中,通过减少所需的磁盘访问来使内核完成更多的工作并节省时间。粗俗的样子:
# DUMP
mysqldump ... | pbzip2 -c > MYSQLDUMP.sql
# REPLAY
pbzip2 -dkc MYSQLDUMP.sql | mysql (...)https://dba.stackexchange.com/questions/122076
复制相似问题