|
本帖最后由 lujinke 于 2014-6-19 13:24 编辑
lujinke 发表于 2014-6-19 11:46 ![]()
你说的这些我都知道,其实我提的问题你们还是没有搞清楚
我知道--single-transaction备份,不会锁表,仅 ...
自己重新测试了一遍,
结论:使用--single-transaction 备份含有MyISAM的表不会获得一致性备份,所有的innodb表可以获得事务开始时的一致性快照,但是MyISAM表获取的是备份该表时的最新快照,
测试库:test,包含表t1,t2,t3,t4,t5,t6 除t6是MyISAM表之外,其他均为innodb表
表t1,t2 数据量相同,均为288W,其他t3,t4,t5,t6 均只含几条记录
控制台:
mysqldump -uxx -pxx --single-transaction test >test.sql
mysql客户端:
mysql>insert into t6 values(15); //t5是MyISAM表
第一次实验:
在控制台发出第一条命令,停留5s,在mysql客户端发出第二条命令,但是保证第二条命令式在第一条命令还未结束时发出,这样可以基本保后一个事务是在第一个事务之后发生,在备份文件中能够找到t6的记录15,
读取的是备份该表时的最新“快照”
控制台:
mysqldump -uxx -pxx --single-transaction test >test.sql
mysql客户端:
mysql>insert into t5 values(15); //t5是innodb表
第二次实验:
在控制台发出第一条命令,停留5s,在mysql客户端发出第二条命令,但是保证第二条命令式在第一条命令还未结束时发出,这样可以基本保后一个事务是在第一个事务之后发生,在备份文件中不能够找到t5的记录15,
读取的是备份开始时的快照
|
|