ITPub博客

首页 > 数据库 > MySQL > Mysqldump的备份流程

Mysqldump的备份流程

原创 MySQL 作者:kakaxi9521 时间:2022-01-27 14:48:24 0 删除 编辑

可以通过开启general log 来看mysqldump的整个备份过程。

set global general_log=ON;


备份脚本:

mysqldump -uroot -p  -E -R --triggers --single-transaction --master-data=2 -A > test_all.sql

mysqldump的主要过程:

  1. 一开始执行 FLUSH TABLES 关闭实例中所有的表。  此过程可能会被已经存在的select 阻塞从而影响前台业务。

  2. 执行语句 FLUSH TABLES WITH READ LOCK 获取全局表的读锁,保证表一致性。

  3. 设置会话级别事务的隔离级别为 REPEATABLE READ ,保证事务期间数据的一致性。

  4. 执行语句 START TRANSACTION /* !40100 WITH CONSISTENT SNAPSHOT */ 创建一个一致性事务快照。

  5. 查看是否开启 GTID。

  6. 获取当前状态下的binlog 文件及position 信息。 (在备份选项中执行了--master-data)。

  7. 执行 UNLOCK TABLES 释放全局读锁。

  8. 开始备份第一个数据库数据,为事务创建一个检查点,备份完一张表之后还原至检查点接着备份下一张表,直至该数据库所有的表备份完成,接着备份下一个数据库数据,直至所有数据库数据备份完成。

  9. 当备份完最后一个数据库数据后释放检查点,退出并终止事务。


参考文档:

https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

https://dev.mysql.com/doc/refman/5.7/en/flush.html


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21374452/viewspace-2854260/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: podman常用命令
请登录后发表评论 登录
全部评论

注册时间:2009-04-13

  • 博文量
    136
  • 访问量
    178907