数据库迁移验收:核对写入入口和数据一致性新数据库可以连接、应用首页能够打开,只能说明部分路径可用。迁移验收还要回答三个问题:所有写入方是否指向预期数据库,关键数据是否一致,真实业务流程是否通过。把入口、数据基线和证据记录下来,能避免在切换后才发现旧环境仍在接收写入。🗄️
逐项盘点在线API、后台管理、定时作业、消息消费者、Webhook、批量导入、报表脚本和人工维护工具。每个入口记录连接配置来源、数据库账号、读写权限、运行时段、负责人和切换方式。检查配置仓库、任务平台和运行环境变量,找出硬编码地址、备用连接和旧环境残留。
入口清单不是只列服务名称。还应说明哪个配置控制目标库,以及如何证明进程已加载新配置。可以查看连接来源指标、审计日志或经核准的运行配置,不要仅靠仓库文件推测线上实际状态。
明确何时停止旧库写入、何时执行最后一次增量同步、何时恢复新库写入。切换前查看队列积压、长事务、批处理和定时任务;避免同步过程中仍有未追踪写入。记录共同的数据水位,例如业务更新时间、最大主键或日志序列位置,并标明采集时间与时区。
记录冻结时间、最后成功写入时间、同步完成时间、目标端水位、入口恢复时间和操作者。每个时间点要能关联到日志或操作记录,不能用口头确认代替数据证据。
先核对表结构、字段类型、索引、约束、字符集、时区和必要扩展。再对关键表比较记录数、主键范围、空值比例和业务汇总。总行数相同仍可能包含不同内容;COUNT(*)只是基础检查。对大表按主键或时间区间分片,计算可复核摘要,再抽查代表性明细。
选择对业务有意义的汇总指标,例如每日订单数、状态分布、金额总和或关联记录数量。使用相同过滤条件和水位比较新旧库,排除迁移期间的新增变化。对差异记录表名、分区、预期原因、修复方式和复核人;差异未解释前不要用手工更新把数字“调平”。
数据校验示例:除记录数外,还比较关键状态计数、金额合计、最近更新时间与样本主键明细。多种指标相互印证,才能发现遗漏或重复迁移。
用隔离测试账号完成新增、更新、查询和必要的删除流程,验证事务提交、唯一约束、自动生成字段、字符集及时区转换。检查异步消费者能否处理任务,Webhook是否写入预期记录,定时作业是否只在正确环境运行。确认读请求、缓存和报表不会因为连接配置遗漏而返回旧库数据。
验收数据需事先标识并按计划清理;不要在真实业务数据上随意插入或改写测试记录。观察连接数、写入延迟、锁等待、错误率和复制延迟,验证目标库在预期峰值下能支撑服务。业务功能成功一次还不足以证明批处理和并发行为正确。
按影响程度分类差异:关键数据丢失、重复写入和权限异常应阻断切换扩大;可解释的时间边界变化则记录并复核。每项问题需要责任人、修复方式、验证证据和截止时间。回滚前确认新库已产生的数据如何保留、能否反向同步以及旧库是否仍可作为安全写入目标。
旧数据库仍在运行不等于回滚安全。如果新库已接受写入,简单把流量指回旧库会丢失新数据或产生分叉。回滚方案必须说明冻结新写入、提取新数据、校验差异和决定权所在;无法保证安全反向同步时,应明确停写和恢复窗口。
可先在隔离环境或只读路径验证,再逐个恢复低风险写入方,并观察错误率、连接池使用、事务延迟和业务汇总。每阶段都设定继续、暂停和回退条件。发现未登记写入或数据差异时,停止扩大范围,保存日志、水位和配置证据,先查明原因。
提醒:只有写入入口明确、关键数据差异可解释、业务流程通过且回滚边界清楚,才适合扩大切换流量。
验收记录保留比较基线、查询口径、样本范围、监控窗口和签核责任人。这样后续出现差异时,团队能判断它来自迁移、正常新增写入还是统计口径变化。🔍