FLUSH TABLES WITH READ LOCK will not halt writes to InnoDB.
It may block access to writing to tables, but InnoDB will allow writes to ibdata1 to provide MVCC info for redo and undo logs.
Check out the Map of InnoDB's Infrastructure and note the physical independence of a table from the ibdata1, and how log files are related.
Since the box is a Slave, you have two options :
OPTION #1 (Warm Backup)
- Run
STOP SLAVE;
- Run
FLUSH TABLES;
- Run your Linux/tar
- Run
START SLAVE;
OPTION #2 (Cold Backup)
- Run
SET GLOBAL innodb_fast_shutdown = 1;
- Run
service mysql stop
- Run your Linux/tar
- Run
service mysql start
OPTION #3 (Cold Backup)
- Run
service mysql stop
- Run your Linux/tar
- Run
service mysql start
EPILOGUE
OPTION #2 and #3 would be the better choices by far. What is the difference between them ?
OPTION #2 flushes all transactional changes out of ibdata1 and the transaction logs (ib_logfile0, ib_logfile1). This makes for a longer shutdown. However, you will have a faster mysql startup because InnoDB Crash Recovery would not need to be performed.
OPTION #3 lets you shutdown faster, leaving all transactional changes in ibdata1 and the transaction logs (ib_logfile0, ib_logfile1). The transactional changes are applied on mysql startup during the InnoDB Crash Recovery phase.