mysql如何对比备份数据与线上数据_编写自动化校验脚本

用mysqldump生成可比对备份需加--skip-extended-insert、--order-by-primary、--skip-comments、--no-tablespaces四参数;线上数据须用mysql -N -s -r直连导出TSV,再转为同格式INSERT后diff比对。用 mysqldump 生成可比对的备份快照直接拿原始 mysqldump 输出做 diff 很容易失败------默认会带时间戳、随机排序、表结构顺序不一致。必须统一输出规范,否则脚本一跑就误报。关键操作是加这四个参数:--skip-extended-insert(每行一条 INSERT)、--order-by-primary(按主键排序)、--skip-comments(去掉注释)、--no-tablespaces(避免 .ibd 路径干扰)。示例命令:mysqldump -h127.0.0.1 -uuser -ppass --skip-extended-insert --order-by-primary --skip-comments --no-tablespaces db_name table_name > backup.sql别漏掉 --order-by-primary:没它,同一张表两次 dump 的 INSERT 行序可能不同,diff 100% 不通过如果表没主键,--order-by-primary 会静默失效,得改用 --where="1=1 ORDER BY col1,col2" 手动指定排序字段mysqldump 默认不 dump 视图定义,要校验视图需额外加 --no-create-info --skip-triggers 单独导出用 mysql 命令直连查线上数据并标准化输出不能依赖应用层取数------字段类型隐式转换、NULL 处理、时区、字符集都可能让结果和 dump 不一致。必须用 MySQL 客户端直连,且强制统一格式。核心是用 mysql -N -s -r 三个开关:-N 去掉列名、-s 简洁模式(tab 分隔)、-r 原始输出(不转义特殊字符)。示例查询: Shakespeare 一款人工智能文案软件,能够创建几乎任何类型的文案。

相关推荐
szial1 分钟前
网络爬虫与 CDP 实战(一):网页数据到底在哪?从 HTTP 到分页采集
网络·爬虫·python·网络爬虫
lusklusklusk8 分钟前
Oracle数据库基础之7_备份恢复基础之SCN
数据库·oracle
DanCheng-studio27 分钟前
智能科学与技术毕设易上手题目建议
python·毕业设计·毕设
醇氧30 分钟前
nohup 后台启动 uvicorn(仅测试 / 临时运行)
linux·运维·网络·python·python3.11
ao-weilai42 分钟前
MySQL数据库:MySQL基础概要
数据库·mysql
雪碧聊技术1 小时前
从 0 跑通一个最小 RAG Demo:文档切分、向量检索与答案生成
数据库·oracle
喜欢的名字被抢了1 小时前
08-Redis 性能优化篇:快在哪、BigKey、HotKey、慢查询与内存
数据库·redis·性能优化
阳光九叶草LXGZXJ1 小时前
达梦数据库-学习-68-dmasm0X_XXXXXX.log日志激增
linux·运维·数据库·sql·学习
Mortalbreeze1 小时前
MySQL 基础篇(三):一文掌握 MySQL 常见数据类型
linux·服务器·数据库·mysql
青山木1 小时前
秒杀系统设计(一):需求拆解与流量治理
java·数据库·redis·后端·架构