[数据迁移前的准备]
1.将两个数据库中对应的表的基本数据一一对应,总结在excel文档中--映射关系表。
(1).对于某些特殊数据,新旧系统的处理方式可能不一致,如flg类字段的0,1,2...分别对应的值是否一致;旧系统多个字段对应新系统一个字段的情况。
(2).对于某些数据,在旧系统中需要关联多张表才可以获取数据,将关联到的表登记下来。
(3).[前处理]在新旧系统中的字段类型不同,如日期,可以做相应的转换;字段大小不同,先将新系统中的字段扩大。
(4).[前处理]有些数据在新旧系统的页面都不再展示,但数据却仍然希望保留,需先在新系统表中增添相应字段
2.通过映射关系中的对应关系写出对应数据的sql.
[数据迁移的实施]
3.迁移数据 [可先在测试环境试迁移,得出低bug的sql,再到实际环境中执行]
(1).将映射关系表文档中涉及到的表数据从旧系统中导出,在新数据库中建立相同表并将数据导入其中。
(2).直接执行对应sql.
(3).执行过程中一般会出现如下问题:
[不能插入null],[原因:系统数据默认值处理不同].
[字段值过大],[原因:新系统数据未扩大; Date型数据没有处理,需加TO_CHAR]
[非法的number],[这个数据库不会告诉你是哪个字段,很恶心。原因:某个字段旧系统中是char或varchar型,新系统为number型;某个number型字段处理默认值null时,NVL函数中的默认值写了空格' ';DATE型数据看看是否未处理完]
[数据迁移后的校验]
4.导入数据后由于数据量增多,需添加相应的索引,提高页面的查询效率,[对于查询条件,表关联条件]
CREATE INDEX I1_CMMTPCOP ON CMMTPCOP (REGION_ID);
建立索引时,虽然有些数据作为查询条件,但是取值单一,不应该作为索引,如只有(0,1)值的状态类字段。
5.对于新系统的新的处理方式做相应的数据修改,这次案例主要有生效日期和失效日期的数据补全
6.编码问题
此次案例为日本的项目,客户的环境为Shift-JIS编码格式,我们将数据在远程全部正常导入后,页面仍然出现问题,报错为:JSON数据异常。查看后台日志打印的ETF树数据后,发现仍然有很多数据为?,被后台解析为乱码的正是一些特殊字符,如全角的-,带圈数字,株式会社的(株) 的特殊字符 、(有)等等,后台的编码已经改为Shift-JIS,半角片假名也可以识别,但是这些字符,还不能识别,具体原因暂未得知。我们的小组长将这些字符在数据库中都替换为普通字符串后,页面正常显示。
7.对于特殊数据的验证
对于系统中敏感重要的数据如[手续费率]需要验证