mysql 备份完整性验证

2017-02-23 15:35:19 +08:00
 cutoutsy

Mysql 数据库备份,使用 mysqldump ,但是最近发现备份文件有时会比前一天小,不是应该越来越大么,数据库备份文件大小约为 12G 。

请问使用 mysqldump 备份的时候如何验证备份文件的完整性,即备份文件是可用的且数据完整。

谢谢~~

8869 次点击
所在节点    MySQL
11 条回复
vingz
2017-02-23 15:49:39 +08:00
mark ,备份文件大小,跟内容多少有关
ETiV
2017-02-23 15:52:38 +08:00
我觉得这事儿要看你代码里有没有 delete from ……
cutoutsy
2017-02-23 16:14:10 +08:00
@vingc723 嗯,,我这只是说下大概内容有多少
cutoutsy
2017-02-23 16:15:43 +08:00
@ETiV 如果不管代码逻辑,只从 mysqldump 备份命令及备份后的文件来验证备份文件的完整性?不知道这样可以不
mN71eOOprFyMsnPx
2017-02-23 17:19:46 +08:00
为什么搞这么复杂。只要你执行 mysqldump 命令,返回值是 0 ,就表示没任何错误。

非 0 ,就需要检查错误。
devopscode
2017-02-23 23:50:40 +08:00
mysqldump 是没办法校验数据完整性的,如果需要校验数据完整性,还是用 percona mysql toolkit 吧。
likuku
2017-02-24 00:37:38 +08:00
没法检查数据完整性,最多可以在备用机上作一次导入测试,假若导入完成,可以认为此次备份是正确的。

假若 DB 可以停机维护,那还有机会全机锁表后再导出备份,完成后测试机上还原备份,对比下源机上 db 库各个表的记录总数。然后让源库的表解锁。

这样一般也很不现实。

数据完整性,还是得靠业务系统设计来解决。

比如任何 db 写入操作,都必须放在事务里,同时记录完整的日志文件 /输出到日志系统,这样不仅可以查对,万一 db 故障 /误删, db 备份失效,还有机会恢复。
cutoutsy
2017-02-24 09:23:57 +08:00
@likuku 了解了,非常感谢!!
cutoutsy
2017-02-24 09:24:15 +08:00
@FifiLyu 嗯,现在的备份脚本就是这么写的
jarlyyn
2017-02-24 10:23:56 +08:00
如果随便备备, Mysqldump 就行了。

正经备份的话,不是应该做个 snapshot ,复制数据库文件,再备份个 binlog 么……
v2girl
2017-03-07 16:30:55 +08:00
CHECKSUM TABLE tbl_name [, tbl_name] ... [ QUICK | EXTENDED ]
报告一个表校验和。
我每次备份自动比较值。
楼上全是水货

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/342637

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX