一、mysql到dm数据库迁移方案:
将mysql的表结构先整合到oracle数据库中,再将oracle中表结构整合到dm中,最后通过Kettle配置作业将mysql中数据抽取到dm数据库中去;
二、mysql到dm数据库迁移过程:
1、表结构迁移:
(1)通过esf_dbcv_pro.msi软件将mysql中表结构整合到oracle数据库中;
(2)通过pl/Sql工具将oracle中对应用户下的表结构导出sql文件;
(3)修改导出的sql文件,只留下创建表、创建索引、字段中文注解、创建自增这几种sql,其余用户等内容该用空格替换就替换,外键等内容该删除就删除;
(4)对于sql中表名或字段名是dm数据库系统保留字的,需要用双引号引起来,如果不知道哪些是系统保留字段的,可以将3步骤中修改后的sql在dm中运行,如果有系统保留字段,就会提示语法错误,对该表名或字段添加双引号,再次运行便可以正确运行;
(5)由于oracle对表名和字段名有长度要求,可能会使mysql中表名和字段名过长的截断一部分,在数据迁移过程中会发现的,如果发现,进行手动修改即可;
(6)然后将修改的sql在dm数据库中对应的模式下进行运行,就能够创建好表结构;
(7)从mysql通过软件工具导入到oracle过程中,mysql中的datetime字段类型到oracle会变成date类型,因此需要对通过pl/Sql工具导出oracle中sql文件中的部分date字段类型进行手动修改;
2、数据迁移:
通过配置好的Kettle可以指定某些表进行数据的迁移,对于数据量小的表,可以进行多表批量迁移数据,对于数据量很大的表,建议一次一张表进行数据迁移;
3、Dm数据库创建要点:
(1)string case sensitive:要选择n,大小写不敏感;
(2)length in char:要选择y,用字符串进行存储,保证Mysql中长度能存储下的数据在dm中同样能够存储下;
(3)如果字段名或表名为系统保留字段,那么写sql时该字段名或表名要添加双引号;
关系型数据库之间整库表结构和数据迁移工具: