数据库迁移需要准备数据比对样本,中文显示、搜索结果和唯一字段都应包括在内。字符集与排序规则请在导入前一并核对。
两个容易混淆的设置
字符集决定数据如何编码表示,排序规则则参与字符串的比较与排序。两端使用同样的字符集,也不代表排序规则一定相同。数据库版本、库表设置和应用连接方式都应按实际环境核对,不能只看导出文件的名字或大小。
如果目标环境不支持原来的排序规则,不宜把文件中的规则名称全部替换后直接导入正式库。先确认替换对大小写、重音字符、排序以及唯一性判断的影响,再用测试副本验证。
例如,一组只在字母大小写上不同的编号,在两种排序规则下可能得到不同的比较结果。若这列还设有唯一约束,影响就不只是列表顺序,导入或后续写入也可能出现冲突。因此,不能为了让导入继续进行,就随意删除唯一约束或忽略错误。
用实际业务数据验收
- 挑选包含中文、特殊符号和较长文本的记录,比较导入前后的显示与完整性。
- 验证搜索、排序和需要保持唯一的字段,留意不同写法是否被当成同一个值。
- 通过应用新增并读取一条测试记录,确认应用连接使用的编码也正确。
核对时保留原始导出文件,并把尝试转换后的文件另存。记录采用了哪些转换,以及为什么需要这样处理,让下一次迁移能够复用同一套核对方法。发现乱码或导入中断,应先记录错误位置、两端环境和处理步骤,避免反复覆盖唯一一份原始数据。
正式导入还要明确执行期间是否允许继续写入,以及新增内容怎样补齐。字符集检查完成后,仍需与记录数量和业务结果一起核对。