压测脚本配错了连接串,指向开发库。压测的 update 把 12 万条订单状态改成 4,主键自增也从 80 万跳到 210 万,恢复备份用了两小时。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,配置里数据库地址写在一个公共 profile 里,压测时没有覆盖。脚本里的写接口没有开关,直接对现有数据做更新。备份是每天凌晨的,中间几个小时的增量没留。
碰到「压测写坏数据库」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。报错里带路径的,先去看那个路径在不在、权限对不对。
mysqldump -h127.0.0.1 -uroot -p testdb > /tmp/snap_$(date +%H%M).sql java -jar load.jar --spring.profiles.active=loadtest --dry-run
同一份配置存在多处的,先确认改的是被加载的那一份。
具体做法是,压测库和开发库物理隔离 用不同实例;连接串在启动时打印出来 人工确认一次;写接口加压测专用前缀 只允许操作造出来的数据;压测前做一次全量快照 别依赖每日备份。
最后用这个标准收尾,压测只操作测试库,开发库的订单数和自增 ID 与压测前一致。
