有些人会想到,既然做全库逻辑备份,只要将数据库设置为只读就行,那为什么不直接 set global readonly = true,让整个数据库实例处于只读模式。的确,这样也能做全库备份,但是这和 FTWRL没有实质区别,对业务的影响还是很大。而且在某些情况下,还会存在用户权限不够、或者readonly值用来做其他主从库区分等情况。所以一般也不建议使用这种方式。 那么我们一般怎样来做全库逻辑备份呢?
MySQL官方提供一个逻辑备份工具,叫作mysqldump。我们可以在其后加一个--single-transaction参数来指定做全库逻辑备份时,使用一致性快照读。这样就避免了加全局锁的操作。例如: