mysqldump备份原理

 

mysqldump的本质是通过select * from tab来获取表的数据的。

 

FLUSH TABLES WITH READ LOCK

--执行flush tables操作,并加一个全局读锁

 

SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ

--设置当前会话的事务隔离等级为RR,RR可避免不可重复读和幻读。

 

START TRANSACTION 

-- 获取当前数据库的快照,这个是由mysqldump中 --single-transaction决定的。 这个只适用于支持事务的表,在MySQL中,只有Innodb。

 

注意:START TRANSACTION和START TRANSACTION WITH CONSISTENT SNAPSHOT并不一样,

START TRANSACTION WITH CONSISTENT SNAPSHOT是开启事务的一致性快照。

 

SHOW MASTER STATUS

--这个是由--master-data决定的,记录了开始备份时,binlog的状态信息,包括MASTER_LOG_FILE和MASTER_LOG_POS

 

UNLOCK TABLES

--释放锁

 

posted @ 2020-07-22 14:10  龙虚度  阅读(348)  评论(0编辑  收藏  举报