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

--释放锁

mysqldump备份原理

 

mysqldump备份原理

上一篇:[转]CSS基础知识之选择器特殊性与重要性


下一篇:2.1 DbContext