2.1 测试过的数据库
msql版本: mysql5.7.13-log ;mysql5.6.31-log ;mysql5.5.31-log;mysql5.1.40-community;10.0.16-MariaDB;mysql5.7.4 ;mysql5.7.9;mysql5.7.12;mysql5.7.16
oracle版本:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
SQL SERVER版本:SQL SERVER 2005,SQL SERVER 2008,SQL SERVER 2012
注:2017.03.17之后的jar和V1.9版的平台数据迁移插件支持SQL SERVER,暂时不支持SQL SERVER 2016。
2.2 迁移中注意事项
(1)只能迁移一次,第二次需要把目标数据库里面的表删除掉才能再次进行迁移的,如果是oracle数据库,不仅需要删除全部表,还需要删除全部关联的sequence(序列)。
(2)迁移过程,由于oracle的特殊性,会临时关闭触发器,待数据迁移完成后会重新启用触发器,这种问题是因为迁移过程出错导致还没到启用触发器那一步,迁移过程如果出错,请将错误日志信息发给技术支持协助解决
(3)由于原内置hsql数据库对finedb数据未能进行准确过滤,可能部分数据在原finedb是没问题的,但迁移过程会导致报错,比如出现迁移后新建的表数量和文档不符,触发器未启用,很多表没有数据等问题,所以有很大的概率会出现迁移失败的问题,这里特别指出几张表,例如FR_EXCEL_SUBMIT_TASK,FR_WRITE_TEMP_DATA,FR_PROCESS_REMIND_TOAST,这些表由于表结构的原因(字段超过最大长度,空字符串插入不能为空的列,不合理的联合主键等等),原有数据很可能导致迁移过程报错,用户可根据错误日志记录的情况自行判断原finedb中是否存在导致失败的数据,可修改后再进行迁移,这些表结构后续正在修改,也可联系技术支持协助解决
(4)对于oracle数据库,迁移前最好单独建一个账户(新建一个表空间,并指定为该用户默认表空间)。
例如用system用户登录Oracle,添加用户data_migration:
create user data_migration identified by data_migration;
并对该用户进行赋权限:
grant connect,resource to data_migration;
grant create any sequence to data_migration;
grant create any table to data_migration;
grant delete any table to data_migration;
grant insert any table to data_migration;
grant select any table to data_migration;
grant unlimited tablespace to data_migration;
grant execute any procedure to data_migration;
grant update any table to data_migration;
grant create any view to data_migration;
grant create any Trigger to data_migration;
注1:在迁移finedb数据库时要求使用的表空间最好是空的。
注2:迁移到不同的数据库,需要在WEB-INF/lib下放置对应数据库的驱动。oracle还需要额外放置一个quarz.jar
(5)迁移插件不支持MyISAM引擎,因为MyISAM引擎不支持事务,也不支持外键;
因此当mysql数据引擎为MyISAM时,需要修改mysql默认数据引擎,由MyISAM改为 InnoDB,重启mysql,再进行数据迁移即可
一定要替换jdbc驱动:更新为5.1.39版本!!!