mysqldump备份机制:通过给定的参数信息和系统表数据,来一张表一张表地获取数据并生成insert语句插入备份文件中,这样由于时间点不一致,就会导致数据不一致,然而对于一个要求强一致性的系统来说,这种方式备份出来的文件完全无效。
所以要想mysqldump备份的数据具有一致性,有以下方法
①,利用事务机制,通过--single-transaction参数来完成数据库的备份
原理:利用事务的一致性,一个事务中所有的数据都处于同一个时间点,适用与innodb或其他有支持事务的引擎
②,利用--lock-tables或--lock-all-tables锁表,使需要备份的数据库处于只读状态。
注意:--lock-tables不是一次锁定所有的数据库库表,而是只锁定一个数据库的库表
--lock-all-tables一次锁定所以数据库的库表
所以需要同时备份多库或需要备份的表处于不同库的话,应该使用--lock-all-tables,且这种方法适用于同时备份不同引擎的数据库
时间: 2024-11-06 07:46:34