云迁移

数据库迁移模块

2024-12-19 09:40:09

1.1.1 产品咨询

1.1.1.1 我在什么场景下使用数据库迁移工具?

当您需要将其余云服务商的数据库数据迁移上天翼云时,您可以使用数据库迁移工具帮助您有序、安全、便捷、轻松地将数据部分或完全迁移到天翼云,同时保证云上业务的可用性、安全性以及连续性。

1.1.1.2 数据库迁移工具是否支持从阿里云、天翼云等其余云迁移至天翼云?

支持。

数据库迁移工具支持市面上主流云厂商的数据库迁移至天翼云,如阿里云、天翼云、以及腾讯云等;

1.1.1.3 数据库迁移工具是否支持将天翼云上的数据,迁移到其余云服务商或本地?

不支持。

数据迁移工具迁移目标端仅能够选择天翼云,无法将天翼云数据迁移到本地或其他云服务商。

1.1.1.4 当我使用数据库迁移工具时,是否能够要求天翼云技术人员帮助迁移?

天翼云技术人员不直接参与您的业务迁移,您可以通过查看帮助中心,然后实行迁移;

若帮助中心未涉及您的问题,您可通过页面反馈问题,相关技术人员后续对内容进行补充;

若您需要专业的迁移方案和专属的技术支持,您可以订购我们的迁移服务,帮助您平滑迁移业务,缩短整体业务停机时间,减少上云对业务的影响,解除您的上云顾虑,让您聚焦于业务发展。

1.1.1.5 源数据库有多个数据库,如何迁移到天翼云一个数据库里?

假设源数据库端有两个库,可以创建两个迁移任务:

先创建迁移任务1:源端A库->天翼云A库

再创建迁移任务2:源端B库->天翼云A库

如果有重名对象[,需根据需求使用表名映射功能,修改重名对象。

1.1.1.6 迁移对源端数据是否有影响?

迁移对源端数据无影响

迁移过程中不会对源端数据进行修改。

迁移时不会对源端的对象进行锁定。

迁移完成后,不会删除源端的数据。

1.1.1.7 如果一直有数据写入数据库的情况下,使用数据库迁移工具如何保证数据一致性?

该问题可分以下两种情况处理:

1. 开启增量迁移的情况下,数据库迁移工具会自动捕获增量数据变更,并迁移到目标数据库。

2. 未开启增量迁移的情况,用户可在源端不再发生数据变更后,通过配置稽核修复任务进行比对,保证数据迁移后的一致性。

1.1.1.8 数据库迁移任务的适用场景是什么?

适用于单个数据库数据量不超过1TB或表数量不超过1000个的数据库数据迁移场景。通过创建数据迁移任务,可将数据库数据进行快速迁移。创建方式参见创建迁移任务。

1.1.1.9 迁移是否会影响目的端表的已有数据?

数据库迁移工具对目的端表的已有数据影响,主要看目的端与源端是否存在同名表。

不存在同名表,则不产生影响。

存在同名表,以下场景会导致迁移失败:

存在同名表,且用户未勾选“允许用户自建表”;

存在同名表,用户勾选“允许用户自建表”,表配置有主键,主键和源端存在重复值。

存在同名表,以下场景会使数据插入目的端表:

存在同名表,用户勾选“允许用户自建表”,表配置有主键,主键和源端不存在重复值。

存在同名表,用户勾选“允许用户自建表”,表未有主键。

出于数据的完整性考虑,由于数据传输操作不可逆,不建议用户迁移至已经有数据的目的端表。

1.1.1.10 数据库迁移后源和目标数据不一致,可能原因有哪些?

数据不一致的可能原因如下:

1、任务启动前,目标端数据未清空,存在存量数据;

2、配置任务时只选择了全量迁移模式,没有选择增量迁移模式,且任务运行过程中源端发生了数据变更;

3、目标数据库除了数据库迁移工具之外还有其他数据写入;

4、增量迁移存在延迟,增量数据未能完全写入目标库。

1.1.1.11 先配置一个全量迁移任务,再配置增量数据迁移任务,是否会出现数据不一致?

可能会出现数据不一致。迁移任务仅配置增量迁移时,任务启动后才开始迁移数据,在任务启动之前,源数据库产生的增量数据都不会被同步到目标数据库。如需进行不停机迁移,建议配置任务时,迁移类型选择全量迁移+增量迁移。

1.1.1.12 如何判断增量迁移可以停止?

您可遵循以下步骤,判断增量迁移是否可以停止:

1、先中断业务;

2、在源数据库观察在1-5分钟内若无任何新会话执行SQL,则可认为业务系统已经停止;

3、增量迁移数量不在变更,并稳定保持一段时间后,可手动停止增量迁移。

1.1.2 迁移限制

1.1.2.1 兼容性列表有哪些?

您可参见兼容性列表

迁移限制有哪些。

您可以参见迁移约束与限制,以及任务配置的前提条件和要求。

1.1.2.2 为何不支持同步/迁移系统库?

由于系统库中数据迁移/同步至目标库中,可能会影响数据库实例的可用性,因此不支持将数据库的系统库作为源或目标。

1.1.2.3 为何不支持高版本向低版本迁移?

建议源和目标库版本保持一致,或者从低版本向高版本以保障兼容性。如高版本向低版本,可能存在数据库兼容性问题。

1.1.2.4 数据库迁移工具重要声明有哪些?

具体内容您可请参见免责声明

1.1.3 迁移时长

1.1.3.1 我如何能知道迁移任务的进度?

一般情况,数据库迁移工具的迁移速度的参考值是200-240GB/小时。由于迁移速度受源端对象个数、大小以及公网传输距离影响,建议用户创建一个实际数据的迁移任务来测试实际迁移速度。

1.1.3.2 为什么有时候迁移速度会很慢?

迁移速度的影响因素很多,比如迁移的表大小、正在迁移的表个数、网络传输情况等。在不考虑网络环境的情况下分析迁移速度慢的原因可能有下面几个方面:

大量的小表

由于每个迁移任务的最大并发数是固定的,导致同时在迁移的表数是有限制的。迁移前会列举表。相比于迁移大表,迁移同样大小的数据量,会有更多的列举表的时间消耗。

解决方式:通过将源端待迁移的表拆分到多个迁移任务中并行迁移,提升迁移速度。

迁移数量较少的大对象

当迁移的对象数量较少(小于10个)且大小很大时,导致迁移的并发低,所以迁移速度会较慢。

这种情况请耐心等待,无法提升迁移的速度。

1.1.3.3 迁移需要多长时间?

您可以通过以下公式进行迁移前估算:迁移时长=总数据量/带宽大小/8*1.25。详细时间预估请参见评估迁移时间与测试传输速度

1.1.3.4 迁移带宽由什么决定?

以下三点中最小带宽为准:

· 数据源出口带宽。

· 目标端入口带宽。

· 数据迁移平台中限制带宽。

1.1.3.5 如何确定任务是否卡死?

· 查看数据库迁移工具当前阶段进展展示(记录数、总耗时)是否正常。

· 查看源端迁移日志,如果日志信息长时间未刷新,可能是任务异常。

1.1.3.6 为什么迁移速率有时远远低于带宽大小?

出现这种现象的原因,一般但不限于以下场景:

· 大表数据行数多,但平均行大小较小

· 小表多

· 源库或目标库磁盘IO受限

1.1.4 异常恢复

1.1.4.1 任务提示“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"语句即可。

1.1.4.2 任务提示“invalid input syntax for type bigint XXX”怎么办?

这是由于源端数据库中表字段没有配置精度所致,请进行以下操作后重新发起迁移任务。

需针对没有配置精度的表,根据实际数据情况配置精度。

1.1.4.3 任务提示“ORA-12547: TNS:lost contact”怎么办?

这是由于节点未加入到数据库白名单中所致。请进行以下操作后重新发起迁移任务。

将服务节点地址加到数据库白名单中。

1.1.4.4 迁移完成后,若想再次迁移如何操作?

可在清理目标库后,点击“重试”按钮。

1.1.4.5 创建迁移任务时,连接检测不通过怎么办?

查看数据库是否允许公网访问:

如果不允许公网访问则开通公网访问。

如果允许公网访问,则排查节点地址是否被纳入到数据库白名单,如未纳入,请在数据库白名单加入节点地址。

1.1.4.6 迁移任务中提示“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配置小于云迁批处理提交大小。

由于列设置了默认值,因此过滤后会生成默认值。

具体步骤:

1. MySQL执行“set global max_allowed_packet=z”,z需要大于报错信息中x的值。

1.1.4.7 迁移任务中提示“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。

1.1.4.8 迁移任务中提示 “relation "XXX" does not exist”如何处理

表依赖的对象不存在。

具体步骤:

手动将表以来的对象迁移至目标库后,再重新执行迁移任务。

1.1.4.9 迁移任务中提示“type XXX does not exist”如何处理

表依赖的数据类型不存在

具体步骤:

手动将表依赖的数据类型迁移至目标库后,再重新执行迁移任务。如是异构数据库,则该类型可能无法构建,将无法迁移。

1.1.4.10 迁移/订阅/同步任务速度慢/卡住,如何排查?

步骤如下:

1)通过评估获取源库数据量,进行迁移时间预估,判断当前性能是否符合预期。

2)排查节点所在主机内存和CPU是否已经占满,如占满建议将任务分批分时段进行,规避资源紧张。

3)排查源库和目标库所在主机的内存、CPU、IO、磁盘是否占满,如占满建议排查资源占用,降低资源占用后,再重试迁移。

4)排查网络连通性、带宽是否存在限制,在条件允许的情况建议升级带宽。

1.1.4.11 迁移记录数为什么比预期数量多?

迁移任务启动后,源数据库又写入了新的数据。

解决步骤:

1)迁移任务仅选择全量迁移时,迁移任务开始后,请勿对源库进行数据变更操作;

2)选择全量+增量迁移的方式同步增量。

1.1.4.12 迁移任务过滤某些列,为什么迁移后这些列有值?

由于列设置了默认值,因此过滤后会生成默认值。

解决方法: 移除列的默认值配置。


0jGg4kzCgO26