数据库中加全局锁,是一个比较重的操作,存在以下问题:
- 如果在主库上备份,那么在备份期间都不能执行更新,业务基本上就得停摆。
- 如果在从库上备份,那么在备份期间从库不能执行主库同步过来的二进制日志(binlog),会导致主从延迟。
在InnoDB引擎中,我们可以在备份时加上参数 --single-transaction
参数来完成不加锁的一致性数据备份。
加上这个参数,实际上MySQL的InnoDB引擎的底层实际上是通过快照读来实现的。
mysqldump --single-transaction -uroot –p123456 itcast > itcast.sql