我有一个专用的MySQL 5.1数据库服务器,有2个IntelXeon2GHz四核处理器和10 Gb的Ram。
我使用MySQL管理工具来执行我的数据库的全部备份,其大小为12 Gb,但是这个过程几乎需要4个小时才能完成。
在分析备份期间的处理器使用情况时,MySQL管理员只使用了一个核心,这完全是浪费,因为我还有另外7个核心处于空闲状态。
是否有一种使用MySQL管理工具加快备份过程的方法,或者您是否推荐另一种方法来执行更快的备份?
发布于 2009-07-29 20:25:17
除非您的整个数据集适合内存,否则您进行转储的最大瓶颈是将数据从磁盘上取出并返回到转储文件中的磁盘上。使用更多的内核可能不会让这件事变得更快。
我想说,12‘d的数据需要4个小时才能完成,这是慢的。我们只花了几个小时就做到了几倍。如果使用unix,我建议您使用以下方法进行转储:
# mysqldump --opt database | gzip > /tmp/database.sql.gz首先,"mysqldump -opt“提供一个SQL脚本,它是将数据导入MySQL的最快方法。其次,压缩SQL脚本将减少保存转储所需的IO,为完成转储所需的读取留下更多信息。第三,希望压缩将运行在第二个核心,使用更多的CPU。
发布于 2009-07-29 20:00:33
可能不会。备份通常会滥用磁盘I/O总线,因此并行运行更多的东西不太可能改善总的产生时间。
您可以像Ian建议的那样尝试一些并行mysqldumps,并比较吞吐量。
发布于 2009-07-29 20:08:11
谁在使用一个核心- mysql还是mysqladmin进程?是一个单一的数据库吗?我在某个地方找到了一个脚本,可以在一个单独的文件中对每个数据库进行备份,这样它就可以用于并行运行更多的备份
https://serverfault.com/questions/47719
复制相似问题