首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何放慢MySQL转储速度以不影响服务器上的当前负载?

如何放慢MySQL转储速度以不影响服务器上的当前负载?
EN

Stack Overflow用户
提问于 2011-04-15 00:57:48
回答 4查看 42K关注 0票数 77

虽然执行MySQL转储非常简单,但我有一个活动的专用MySQL服务器,我想在其上设置复制。为此,我需要将数据库的转储导入到我的replication slave。

当我做转储时,问题就来了,MySQL全力以赴,将资源捆绑到连接到它的站点上。我想知道是否有一种方法可以将转储查询限制在低优先级状态,该状态优先于活动连接。这个想法是,来自外部站点的负载不会受到MySQL执行完全转储的努力的影响……

EN

回答 4

Stack Overflow用户

发布于 2011-10-14 22:08:46

如果使用InnoDB表,请使用mysqldump的--single-transaction和--quick选项

票数 50
EN

Stack Overflow用户

发布于 2020-05-26 03:41:25

1)首先,你需要了解一下你的MySQL版本。至少使用5.7,这样它才能支持多线程。旧版本只使用一个线程,如果您有大型数据库,那么同时使用DB和mysqldump并不是一个好主意。

2)更喜欢在不同的DB磁盘上建立备份,因为读/写的性能,或者你可能需要RAID 10。

3) MySQL企业版的mysqlbackup更好,但是是付费的,我不知道这对你来说是不是一个选择。

4)有时很多表不需要transaction,所以只在需要的表上使用transaction

5)事务一般是必需的,使用InnoDB格式以提高性能,不使用锁表。

6)有些情况下最好使用一个程序,所以你可以创建你的事务,只读你的表而不锁定任何人,并用一些睡眠来测试,而不是冻结你的服务。

票数 0
EN

Stack Overflow用户

发布于 2011-04-15 01:02:46

您可以在mysqldump命令前添加以下内容:

代码语言:javascript
复制
ionice -c3 nice -n19 mysqldump ...

这将在低IO和CPU优先级下运行它,因此应该限制它的影响。

注意,这只会延迟MySQL执行之间的时间。脚本本身仍然会像以前一样密集,只是脚本之间会有更长的中断。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5666784

复制
相关文章

相似问题

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