#Release Notes
# 版本信息
版本号:23.4.1
发版日期:2025年5月7号
版本升级:v23.2.1.2及之后版本,可以直接升级到本版本
# 版本定位
崖山迁移平台(Yashan Migration Platform,YMP)是为崖山数据库配套提供的数据迁移产品。v23.4版本全面支持Mysql与YashanDB之间的实时同步能力,能覆盖大部分的主流场景,支持对接Prometheus和Grafana。全面提升离线数据迁移可用性,丰富数据源端,提升产品易用性,实现低门槛、低成本、高效率的异构数据库迁移实施。增强对PostgreSQL、Oracle等数据源的支持,提升迁移稳定性与灵活性,并提供更精细化的校验能力,助力用户实现高效、精准的数据迁移。
# 特性更新
# 新增Mysql数据源
YMP V23.4新增了Mysql数据源类型,支持Mysql数据源做为源端和目标端增量同步场景,具备以下能力:
- 支持元数据同步,包括表、主键等。
- 支持全量和增量数据同步,包括基础数据类型以及LOB数据类型的同步。增量同步时支持断点续传,提升同步可用性。
- 支持增量DDL同步,包括CREATE TABLE、RENAME TABLE、DROP TABLE、TRUNCATE TABLE等。
- 支持对接开源监控平台Prometheus,用户在同步过程中可以实时关注性能指标,及时掌握同步链路信息。
# 新增PostGreSQL数据源
YMP V23.4支持PostGreSQL做源端离线迁移到YashanDB场景,具备以下能力:
- 支持元数据评估和迁移,包括表,视图,索引,序列,约束等。
- 支持全量数据迁移,包括数值类型、字符类型、日期和时间、GIS数据类型等。
- 支持统计校验、全量数据内容校验,在迁移任务结束后,检查源端、目标端数据是否一致。
# 迁移兼容性提高
YMP V23.4在Oracle和YashanDB作为源端时,针对离线迁移场景完成了以下优化:
- Oracle作为源端:
- 支持对Oracle 9i版本的兼容能力,支持元数据评估、数据迁移、校验全流程能力。
- 全量校验时针对Oracle时间数据类型,支持用户自定义配置校验精度,灵活度更高。
- 支持迁移Oracle的PL/SQL中包含语句的存储过程。
- 支持自动过滤不支持的高级包授权语句,提高迁移兼容度。
- 支持评估时过滤创建全文索引(TEXT)生成的表,提高迁移兼容度。
- 支持迁移公共同义词。
- YashanDB作为源端:
- 支持迁移GIS、BIT数据类型。
- 支持迁移RTREE索引。
- 支持在迁移过程中对schema进行映射,满足迁移过程中库表合并场景。
- 支持数据不落盘迁移,提高迁移性能。
# 评估能力增强
- 支持对评估任务进行暂停、恢复以及终止操作,并且支持查看每个对象的评估进度。解决评估任务报错场景下没有进展和报告的问题。
- 支持在评估完成后,用户手动修复对象的不兼容DDL,兼容率和评估报告自动刷新,无需用户重新评估,提高评估效率。
- 优化同一任务下评估库和目标库的冲突检测机制,支持用户在同一任务下选择相同的数据库做评估和迁移场景。
- 支持对对象的DDL内容进行刷新,解决在评估过程中用户产生新的DDL场景下评估耗时过长的问题。
# 数据校验能力
- 校验配置支持用户在页面自定义配置,包括性能配置,零值校验配置,空值校验配置等。
- 支持条件校验,用户可以对源端和目标端数据库分别编写where条件表达式,平台会根据筛选满足条件的表数据,进行数据校验。该功能可用于增量数据校验场景,用户无需每次都发起全量校验,提升校验速率。
- 支持用户设置校验策略,定时的周期性的自动发起校验任务,并且生成校验报告。
# 易用性改进
- 支持查看每张表的迁移耗时,帮助用户针对性的做迁移性能优化。
- 新增英文语言,满足平台海外使用场景。
- 支持在目标端对迁移后的用户授予CONNECT和RESOURCE角色,解决迁移用户权限不足问题。
# 支持迁移的产品与版本
| 能力模块 | 数据源 | 数据源版本 | 数据源部署形态 | 目标端 | 目标端版本 |
|---|---|---|---|---|---|
| 离线迁移 | Oracle | 9i,11g,12c,19c,21c | 单机主备、共享集群 | YashanDB(yashan模式) | 22.2,23.2,23.3,23.4 |
| Mysql | 5.6,5.7,8.0 | 单机主备、集群 | YashanDB(yashan模式+mysql模式) | 22.2,23.2,23.3,23.4 | |
| DM | 8.1 | 单机主备、集群 | YashanDB(yashan模式) | 22.2,23.2,23.3,23.4 | |
| YashanDB(yashan模式) | 23.2.4版本及之后版本 | 单机主备 | YashanDB(yashan模式) | 23.2.4版本及之后版本 | |
| PostGreSQL | 14.x,15.x | 单机 | YashanDB | 23.2 ,23.3,23.4 | |
| 实时同步 | YashanDB | 23.2.7, 23.3,23.4 | 单机、YAC | Oracle | 19c |
| YashanDB | 23.3,23.4 | 单机、YAC | YashanDB | 23.3,23.4 | |
| YashanDB | 23.3,23.4 | 单机、YAC | Mysql | 5.7 | |
| Mysql | 5.7 | 单机主备、集群 | YashanDB | 23.3,23.4 |
# 版本配套关系
YashanDB迁移平台(v23.4)已适配YashanDB数据库v22.2、v23.1、v23.2、v23.3、v23.4版本,支持单机和共享集群产品形态。
# 版本约束
| 能力模块 | 约束描述 |
|---|---|
| 评估迁移 | * 内置库或YMP故障场景下,重启后评估失败的任务不支持恢复评估。 * 添加Oracle 9i数据源时,连接用户密码不能超过8位。 * Oracle 9i做源评估时,评估范围会多展示部分系统用户且检查约束(包括非空约束)会丢失部分属性。 * PG目前由于数据库差异,分区表无法自动兼容。 * 所有源的Mybatis Mapper XML文件评估只支持评估DML类型SQL。 |
| 离线迁移 | * 数据迁移支持的字符集为GBK和UTF-8(MySQL要求库、表、列、服务、系统、连接编码配置要一致),并要求源端数据库与目标数据库的字符集一致。 * 不支持表名带有单引号及不可读字符串的数据迁移。 * MySQL5.7做源时不支持迁移表情符号。 * PG的类型TEXT、BYTEA暂不支持分段获取,有OOM的风险。 |
| 实时同步 | * 元数据阶段支持常量默认值,非常量默认值在元数据阶段仍会同步,但不做任何特殊处理。如果同步失败,则需要用户自行介入修正,并重新运行任务。 * 增量数据同步阶段的DDL仅支持常量、值为 null、empty_clob()、empty_blob()的默认值,其他类型的默认值将导致任务失败。* YashanDB为源端时,元数据同步和全量数据同步阶段不允许对同步范围内的对象执行DDL,否则将导致同步失败。 |
| 数据校验 | * 不支持不可读字符串及CLOB/NCLOB中带表情类符号数据的校验。 * mysql模式下不支持无符号数和有符号数之间的校验。 * Oracle做数据源时,全量校验不支持JSON及自定义类型。 * DM做数据源时,全量校验不支持IMAGE及自定义类型。 |
# 修复问题
- 修复评估时转换语句部分elseIf语句空格丢失,部分特殊参数丢失问题。
- 修复数据迁移时Oracle的LOB对象的empty_lob、MySQL大对象的空串迁移为null的问题。
- 修复删除评估任务时,评估数据库异常导致任务删除不成功问题。
- 修复Oracle做源评估时,包类型中包头有效包体失效时未展示为失效对象问题。
- 修复MySQL做源时字符集为utf4mb的char(n)、varchar(n)字符类型,迁移时字段长度映射太短,导致数据被截断问题。
- 修复Oracle往YashanDB迁移用户和权限时,不支持的高级包授权出错问题。
- 修复分区表超长DDL在评估前拆分DDL卡住问题。
- 修复OCI检查阻塞YMP部署的问题。
- 修复表的注释带换行符时评估失败问题。
- 修复YashanDB作源端时,特殊字符密码导致评估任务失败问题。

