2、功能验证:主要是抽样数据的功能测试
a、功能测试:对历史数据常见的操作方式为,在历史库准备一批历史数据,准备什么样的历史数据依赖于具体业务的数据情况,通过迁移程序将历史数据迁移至新库后,验证这批数据的存储和功能展现。新数据的验证则以新增功能的方式进行测试。
b、自动化测试:API自动化+页面自动化:只有数据迁移没有上层业务变更的情况下,如果已经存在自动化脚本,采用自动化脚本可以快速回归,重点在DAO层的方法。
以下情况需要特别设计用例进行功能验证
1、 老表字段进行类型或长度等转换迁移至新表
2、 老表中可能为空的字段,新表中直接为空或默认一个初始值
3、 老表数据通过特殊处理转换为新表中的值
4、 需要进行数据订正的字段
数据双写
数据双写往往伴随着数据迁移进行,精卫工具能很好的支持数据复制,并进行数据比对。
在精卫工具的试用范围外的数据双写,一般是应用中加入双写代码,这里也需要涉及数据比对程序,类似于数据迁移的比对程序;
可采用的验证方式:
1、根据数据双写的实时性的特性, 在不影响应用功能、性能的情况下,可以考虑在双写代码中加入验证程序,即每完成一次双写,即对插入的新老数据进行数据比对。
2、枚举所有涉及双写的场景,逐个场景进行功能验证
3、以全量的方式进行数据比对,数据双写进行到一定程度,能确保所有需要双写的场景都已经进行过,那么,对双写的两张表的数据截取gmt_modify时间为某一时间段以前的所有数据进行比对,约等于迁移的全量数据验证。
其他关注点:
1、 考虑id预留空间:+**,需要足够大,保证没有主键冲突
2、 关注sql性能:分库分表,尤其是跨库查询时需要关注性能情况,数据量比较大的情况下,可以考虑走搜索