#v23.2
# 版本信息
版本发布日期:2024年4月3日
版本号:v23.2.1.0
# 版本定位
崖山迁移平台(YashanDB Migration Platform,YMP)是YashanDB数据库提供的数据库迁移产品,支持异构RDBMS与YashanDB数据库之间进行迁移评估、离线迁移、数据校验的能力。 YMP提供可视化服务,用户只需通过简单的界面操作,即可完成从评估到迁移整个流程的执行与监控,实现低门槛、低成本、高效率的异构数据库迁移实施。
Note:
当前版本的MySQL及DM相关功能为试用功能,欢迎您在试用过程中给予优化反馈。
# 特性列表
- 数据源管理
- 任务管理
- 评估能力
- 元数据迁移能力
- 数据迁移能力
- 数据校验能力
- 用户管理
- 故障容错能力
# 数据源管理
YMP的数据源管理可以帮助用户对数据源进行方便快捷的管理操作,可以添加Oracle、MySQL、DM及YashanDB等四种类型的数据源。
# 任务管理
YMP可以创建迁移评估任务,进行完整的Oracle→YashanDB、MySQL→YashanDB及DM→YashanDB的异构数据库评估迁移操作。
# 评估能力
YMP可以对Oracle→YashanDB、MySQL→YashanDB及DM→YashanDB进行评估操作,并得出准确的兼容性报告。
# 元数据迁移能力
YMP可以支持Oracle→YashanDB、MySQL→YashanDB及DM→YashanDB进行元数据迁移,迁移过程中提供完整的进度和迁移完成后的迁移报告。
# 数据迁移能力
YMP可以支持Oracle→YashanDB、MySQL→YashanDB及DM→YashanDB进行数据迁移,迁移过程中提供实时的进度和迁移完成后的迁移报告。
# 数据校验能力
YMP可以支持Oracle→YashanDB、DM→YashanDB进行迁移后的数据统计校验与全量校验,及MySQL→YashanDB进行迁移后的统计校验。
# 用户管理
YMP具备用户模块,支持身份校验,支持账户进行简易的密码管理。
# 故障容错能力
- 数据源故障:支持任务安全失败,重新启动。
- YMP服务故障:重启YMP的JAVA进程后,支持任务重新启动。
- YMP业务库故障:重启数据库和YMP后,任务可重新启动。
- 数据迁移故障:支持源,目标,YMP迁移过程故障容错,不会丢失正在迁移任务信息,重启所有节点再次覆盖迁移即可。
# 兼容性说明
数据库 | 说明 |
---|---|
YashanDB | 适配YashanDB数据库v23.2版本,形态支持单机、共享集群(支持ORACLE RAC-YashanDB RAC),并兼容YashanDB数据库v22.2版本。 |
Oracle | 支持的版本为 11g,12c,19c,21c,部署形态为单机和RAC。 |
MySQL | 支持的版本为 5.6,5.7,8.0。 |
DM | 支持的版本为 8。 |
# 版本约束
# 评估与元数据迁移
- DM8做数据源时,CLUSTER索引无法自动兼容。
- MySQL做数据源时,char(0)在评估时无法自动兼容,varchar同理;因为YashanDB的字符类型长度不能为0,需手动调整。
- MySQL做数据源时,元数据迁移中,将库名、对象名、列名转为大写;不支持迁移后保留库名、对象名、列名的小写。
- Oracle和DM8做数据源时,public synonym不支持评估和迁移。
- DM8和MySQL做数据源时,如果database或者schema在名称中使用"字符,则无法成功进行评估或迁移等操作。
- DM8和MySQL做数据源时,binary和blob等二进制类型如果有默认值,首次评估时不兼容;因为YashanDB不支持字面量默认值,需手动调整。
- 在覆盖策略下迁移外键,如果外键所在表不迁移,则该外键无法覆盖迁移。
- 当物化视图指定为手动刷新(ON DEMAND)时,迁移后物化视图数据不一致,需要手动处理。
- 迁移初始化阶段失败的任务,不能进行迁移重试,可上一步迁移配置后重新迁移。
- 任意源端评估后对DDL进行改写验证时,不建议修改对象名或列名等信息,否则在评估迁移过程中会出现异常情况,无法找到对应对象或其他异常情况。
# 数据迁移
- 不支持表名带有单引号的迁移。
- 不支持BIT类型迁移。
- 数据迁移支持的字符集为GBK和UTF-8(MySQL要求库、表、列、服务、系统、连接编码配置要一致),并要求源端数据库与目标数据库的字符集一致。
- MySQL做数据源时,迁移不依赖评估时,相同表名(两张表名仅大小写不同,如abc与ABC)不支持迁移。
- MySQL做数据源时,迁移无法立即终止,较差情况下终止过程可能需要约10min。
- MySQL做数据源时,不支持暂停恢复功能。
- Oracle及MySQL不支持含有空格及部分特殊符号的表名进行数据迁移。
# 数据校验
- 全量校验任务不支持终止。
- 一个任务内的表分成多次迁移,只能校验最后一次迁移的表。
- 进行校验的表必须要有单列主键或单列唯一键,以下情况不支持联合主键、联合唯一键、无主键和唯一键、有多个单列唯一键但缺少主键的校验。
- Oracle 12C做为数据源时,不支持虚拟列的全量检验。
- Oracle做数据源时,不支持全量校验的数据类型有:LONG、RAW、LONG RAW、CLOB、NCLOB、BLOB、JSON、自定义类型。
- DM做数据源时,不支持全量校验的数据类型有:BINARY、BLOB、CLOB、IMAGE、LONG、VARBINARY、LONGVARBINARY、LONGVARCHAR、RAW、TEXT、自定义类型。
- 不符合数据类型映射规则的列,即使可以进行数据迁移,也有可能无法校验,如:Oracle的int与YashanDB的int。
- 对于数据迁移超过YashanDB数值范围的数据,如 Oracle和DM Float类型的边界值迁移到YashanDB变为无穷,此时迁移虽然成功,但校验结果会判断不一致。