• guilhem@mysql.com's avatar
    WL#1596 "make mysqldump --master-data --single-transaction able to do online... · 6cd218cc
    guilhem@mysql.com authored
    WL#1596 "make mysqldump --master-data --single-transaction able to do online dump of InnoDB AND report reliable
    binlog coordinates corresponding to the dump".
    The good news is that now mysqldump can be used to get an online backup of InnoDB *which works for
    point-in-time recovery and replication slave creation*. Formerly, mysqldump --master-data --single-transaction
    used to call in fact mysqldump --master-data, so the dump was not an online dump (took big lock all time of dump).
    The only lock which is now taken in this patch is at the beginning of the dump: mysqldump does:
    FLUSH TABLES WITH READ LOCK; START TRANSACTION WITH CONSISTENT SNAPSHOT; SHOW MASTER STATUS; UNLOCK TABLES;
    so the lock time is in fact the time FLUSH TABLES WITH READ LOCK takes to return (can be 0 or very long, if
    a table is undergoing a huge update).
    I have done some more minor changes listed in the paragraph of mysqldump.c.
    WL#2237 "WITH CONSISTENT SNAPSHOT clause for START TRANSACTION":
    it's a START TRANSACTION which additionally starts a consistent read on all
    capable storage engine (i.e. InnoDB). So, can serve as a replacement for
    BEGIN; SELECT * FROM some_innodb_table LIMIT 1; which starts a consistent read too. 
    6cd218cc
mysqldump.c 66.8 KB