任务提示“function uuid_generate_v4() does not exist”怎么办?
这是由于目标数据库PostgreSQL未安装uuid-ossp插件所致,请进行以下操作后重新发起迁移任务。
需要在目标PostgreSQL数据库安装uuid-ossp插件。插件下载地址:http://www.ossp.org/pkg/lib/uuid/。安装完插件后,在目标库的SCHEMA下执行create extension
"uuid-ossp"语句即可。
任务提示“invalid input syntax for type bigint XXX”怎么办?
这是由于源端数据库中表字段没有配置精度所致,请进行以下操作后重新发起迁移任务。
需针对没有配置精度的表,根据实际数据情况配置精度。
任务提示“ORA-12547: TNS:lost contact”怎么办?
这是由于节点未加入到数据库白名单中所致。请进行以下操作后重新发起迁移任务。
将服务节点地址加到数据库白名单中。
迁移完成后,若想再次迁移如何操作?
可在清理目标库后,点击“重试”按钮。
创建迁移任务时,连接检测不通过怎么办?
查看数据库是否允许公网访问:
如果不允许公网访问则开通公网访问。
如果允许公网访问,则排查节点地址是否被纳入到数据库白名单,如未纳入,请在数据库白名单加入节点地址。
迁移任务中提示“Packet for query is too large (x>y). You can change this value on the server by setting the 'max_allowed_packet' variable”如何处理
由于MySQL的max_allowed_packet配置小于云迁批处理提交大小。
由于列设置了默认值,因此过滤后会生成默认值。
具体步骤:
- 在MySQL执行“set global max_allowed_packet=z”,z需要大于报错信息中x的值。
迁移任务中提示“Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs.”如何处理
MySQL中规定,表中所有字段的长度不能超过65535。
具体步骤:
将源库中长度过长的字段的类型替换为Text或blob。
迁移任务中提示 “relation "XXX" does not exist”如何处理
表依赖的对象不存在。
具体步骤:
手动将表以来的对象迁移至目标库后,再重新执行迁移任务。
迁移任务中提示“type XXX does not exist”如何处理
表依赖的数据类型不存在
具体步骤:
手动将表依赖的数据类型迁移至目标库后,再重新执行迁移任务。如是异构数据库,则该类型可能无法构建,将无法迁移。
迁移/订阅/同步任务速度慢/卡住,如何排查?
步骤如下:
(1)通过评估获取源库数据量,进行迁移时间预估,判断当前性能是否符合预期。
(2)排查节点所在主机内存和CPU是否已经占满,如占满建议将任务分批分时段进行,规避资源紧张。
(3)排查源库和目标库所在主机的内存、CPU、IO、磁盘是否占满,如占满建议排查资源占用,降低资源占用后,再重试迁移。
(4)排查网络连通性、带宽是否存在限制,在条件允许的情况建议升级带宽。
迁移记录数为什么比预期数量多?
迁移任务启动后,源数据库又写入了新的数据。
解决步骤:
(1)迁移任务仅选择全量迁移时,迁移任务开始后,请勿对源库进行数据变更操作;
(2)选择全量+增量迁移的方式同步增量。
迁移任务过滤某些列,为什么迁移后这些列有值?
由于列设置了默认值,因此过滤后会生成默认值。
解决方法: 移除列的默认值配置。