首页 > 代码库 > 利用mysqldump备份mysql

利用mysqldump备份mysql

mysqldump备份机制:通过给定的参数信息和系统表数据,来一张表一张表地获取数据并生成insert语句插入备份文件中,这样由于时间点不一致,就会导致数据不一致,然而对于一个要求强一致性的系统来说,这种方式备份出来的文件完全无效。

所以要想mysqldump备份的数据具有一致性,有以下方法
①,利用事务机制,通过--single-transaction参数来完成数据库的备份
        原理:利用事务的一致性,一个事务中所有的数据都处于同一个时间点,适用与innodb或其他有支持事务的引擎
②,利用--lock-tables或--lock-all-tables锁表,使需要备份的数据库处于只读状态。
        注意:--lock-tables不是一次锁定所有的数据库库表,而是只锁定一个数据库的库表
                     --lock-all-tables一次锁定所以数据库的库表
        所以需要同时备份多库或需要备份的表处于不同库的话,应该使用--lock-all-tables,且这种方法适用于同时备份不同引擎的数据库

利用mysqldump备份mysql