如何使用MySQLpipe理加速MySQL备份?

我有一个专用的MySQL 5.1数据库服务器,带有2个Intel Xeon 2GHz四核处理器和10 Gb Ram。

我使用MySQL Admin工具对我的数据库执行完整备份,大小为12 Gb,但是这个过程需要将近4个小时才能完成。

在分析备份过程中的处理器使用情况时,MySQLpipe理员只使用了一个内核,考虑到我有另外7个处于闲置状态的内核,这是一个浪费。

有没有办法使用MySQLpipe理工具来加速备份过程,或者您推荐另一个过程来执行更快的备份?

编辑:服务器运行Windows 2008 x64企业版

除非您的整个数据集适合内存,否则转储过程中最大的瓶颈就是将数据从磁盘中取出,然后转储到转储文件中的磁盘上。 使用更多的核心可能不会让这个更快。

我想说12小时的数据4小时很慢。 我们在几个小时内就做了好几次。 如果您使用的是unix,我build议您使用以下命令进行转储:

# mysqldump --opt database | gzip > /tmp/database.sql.gz 

首先,“mysqldump –opt”为您提供了一个SQL脚本,它是将数据导入MySQL的最快方法。 其次,压缩SQL脚本将减less保存转储所需的IO,留下更多用于转储所需的读取。 第三,希望压缩能够在第二个核心上运行,使用更多的CPU。

可能不会。 备份通常会滥用磁盘I / O总线,因此并行运行更多的事情不太可能会缩短总收益时间。

你可以像Ian Selby所build议的那样尝试一些并行的mysqldumps,并比较吞吐量。

谁在使用一个核心 – mysql还是mysqladmin进程? 这是一个单一的数据库? 我有一个脚本,在每个数据库备份在一个单独的文件,所以它可以用来并行运行更多的备份