迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > MySQL >

如何使用 mysqldump 在不锁定表的情况下备份实时 MySQL 数据库

作者:迹忆客 最近更新:2022/12/30 浏览次数:

备份 MySQL 并不难——你只需运行 mysqldump 并输出到一个文件——但它也不是真正为生产环境设计的。

起初,运行 mysqldump 只需要几秒钟,所以一切都被锁定并不是什么大问题,但随着时间的推移,我们的备份变得如此之大,如果我们运行备份,整个站点将停机半小时。 即使有很多缓存,这也总是意味着有人每天都会收到一个错误页面。 问题在于 mysqldump 在导出之前锁定了数据库表,因此在导出过程中不会插入新内容。

解决方案是使用 --single-transaction 参数,这将为我们提供一致的备份而不会锁定所有内容。 实际发生的是 mysqldump 将启动一个新的 SQL 事务,刷新所有挂起的写入,然后作为事务的一部分完成备份,该事务不会阻止其他更新的发生。

注意 :唯一需要注意的是你的数据库表应该使用 InnoDB 而不是 MyISAM。 由于这是一段时间以来的默认设置,我们应该没问题。

所以现在我们已经弄清楚了,只需将参数添加到正常备份例程中,如下所示:

$ mysqldump -uUser -pPass -hHost --single-transaction database > backup.bak

现在我们的备份将更加可靠。


相关阅读

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 MySQL 中声明和使用变量

发布时间:2024/03/26 浏览次数:115 分类:MySQL

当你需要在 MySQL 中的脚本中存储单个值时,最好的方法是使用变量。变量有不同的种类,有必要知道何时以及如何使用每种类型。

在 MySQL 中实现刷新权限

发布时间:2024/03/26 浏览次数:211 分类:MySQL

本教程介绍了 MySQL 中的刷新权限命令,用于刷新授权表并影响允许的更改。

在 MySQL 中设置时区

发布时间:2024/03/26 浏览次数:93 分类:MySQL

在本教程中,我们将学习如何在 MySQL 服务器中更改时区。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便