Mysql 数据库备份,使用 mysqldump ,但是最近发现备份文件有时会比前一天小,不是应该越来越大么,数据库备份文件大小约为 12G 。
请问使用 mysqldump 备份的时候如何验证备份文件的完整性,即备份文件是可用的且数据完整。
谢谢~~
![]() | 1 vingz 2017-02-23 15:49:39 +08:00 mark ,备份文件大小,跟内容多少有关 |
![]() | 2 ETiV 2017-02-23 15:52:38 +08:00 via iPhone 我觉得这事儿要看你代码里有没有 delete from …… |
![]() | 4 cutoutsy OP @ETiV 如果不管代码逻辑,只从 mysqldump 备份命令及备份后的文件来验证备份文件的完整性?不知道这样可以不 |
![]() | 5 mN71eOOprFyMsnPx 2017-02-23 17:19:46 +08:00 为什么搞这么复杂。只要你执行 mysqldump 命令,返回值是 0 ,就表示没任何错误。 非 0 ,就需要检查错误。 |
![]() | 6 devopscode 2017-02-23 23:50:40 +08:00 mysqldump 是没办法校验数据完整性的,如果需要校验数据完整性,还是用 percona mysql toolkit 吧。 |
![]() | 7 likuku 2017-02-24 00:37:38 +08:00 没法检查数据完整性,最多可以在备用机上作一次导入测试,假若导入完成,可以认为此次备份是正确的。 假若 DB 可以停机维护,那还有机会全机锁表后再导出备份,完成后测试机上还原备份,对比下源机上 db 库各个表的记录总数。然后让源库的表解锁。 这样一般也很不现实。 数据完整性,还是得靠业务系统设计来解决。 比如任何 db 写入操作,都必须放在事务里,同时记录完整的日志文件 /输出到日志系统,这样不仅可以查对,万一 db 故障 /误删, db 备份失效,还有机会恢复。 |
![]() | 10 jarlyyn 2017-02-24 10:23:56 +08:00 如果随便备备, Mysqldump 就行了。 正经备份的话,不是应该做个 snapshot ,复制数据库文件,再备份个 binlog 么…… |
![]() | 11 v2girl 2017-03-07 16:30:55 +08:00 CHECKSUM TABLE tbl_name [, tbl_name] ... [ QUICK | EXTENDED ] 报告一个表校验和。 我每次备份自动比较值。 楼上全是水货 |