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

--释放锁

原文地址:https://www.cnblogs.com/9527l/p/13360378.html