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 一款人工智能文案软件,能够创建几乎任何类型的文案。

相关推荐
biter down6 小时前
从 0 到 1 搭建 Python 接口自动化测试框架(博客系统实战)
开发语言·python
海南java第二人6 小时前
Nebula Graph 实战:基于图数据库存储 CMDB 实体关系
数据库·图数据库·nebula
曹牧7 小时前
oracle:“not all variables bound”
数据库·oracle
数据库百宝箱7 小时前
Oracle RMAN Image Copy 本地恢复
数据库·oracle
肖永威7 小时前
Python多业务并行计算框架插件化演进:从硬编码到动态注册
python·插件化·并行计算·动态注册
yz_aiks7 小时前
Linux Jar包配置Systemd自启动实战:从排查到配置全流程
linux·python·jar·自启动·systemd
不知名的老吴7 小时前
线程的生命周期之线程“插队“
java·开发语言·python
zuYM4g7Dp8 小时前
NoSql数据库设计心得
数据库·nosql
xsc6996759 小时前
从零搭建大模型与智能体平台 - 完整技术详解
python
睡不醒男孩03082310 小时前
第七篇:揭秘 PostgreSQL 数据库内核级管控:CLup 深度架构设计与高可用底座技术白皮书
数据库·postgresql·clup