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
--释放锁