我有一个专用的 MySQL 5.1 数据库服务器,带有 2 个 Intel Xeon 2GHz 四核处理器和 10 Gb 内存。
我使用 MySQL Admin 工具执行我的数据库的完整备份,大小为 12 Gb,但该过程需要将近 4 个小时才能完成。
在备份期间分析处理器使用情况时,MySQL 管理员只使用了一个核心,考虑到我还有另外 7 个核心闲置,这完全是浪费。
有没有办法使用 MySQL 管理工具加快备份过程,或者您是否推荐其他程序来执行更快的备份?
编辑:服务器运行 Windows 2008 x64 企业版
除非您的整个数据集适合内存,否则您进行转储的最大瓶颈是将数据从磁盘中取出并在转储文件中返回到磁盘中。使用更多的内核可能不会让事情变得更快。
我会说 12GB 数据的 4 小时很慢。我们只在几个小时内就做了几次。如果您使用的是 unix,我建议您使用以下方法进行转储:
首先,“mysqldump --opt”为您提供了一个 SQL 脚本,这是将数据重新导入 MySQL 的最快方法。其次,压缩 SQL 脚本将减少保存转储所需的 IO,留出更多用于读取转储所需的内容。第三,希望压缩将在第二个核心上运行,使用更多的 CPU。
可能不是。备份通常会滥用磁盘 I/O 总线,因此并行运行更多的东西不太可能提高总产出时间。
您可以按照 Ian Selby 的建议尝试一些并行 mysqldumps 并比较吞吐量。
谁在使用一个核心 - mysql 或 mysqladmin 进程?它是单个数据库吗?我在某处有一个脚本,它在单独的文件中备份每个数据库,因此它可以用于并行运行更多备份