You need to enable JavaScript to run this app.
导航
迁移评估简介
最近更新时间:2025.04.24 16:12:52首次发布时间:2023.01.18 10:42:54
我的收藏
有用
有用
无用
无用

DTS 支持在实际数据迁移前,对源数据库进行全面评估与分析包括实例状态、迁移任务依赖等进行预检查评估,提高数据迁移任务的成功率与效率,有助于提前识别并解决潜在问题、降低风险、控制成本,助力您高效且全面地从其他数据库迁移至火山引擎数据库,确保迁移过程顺利完成。

优势

  • 降低风险:通过预先评估并识别潜在问题,能够降低数据迁移过程中的风险,保障数据完整性以及迁移过程的平稳推进。

  • 提高效率:对迁移时间及资源需求进行预估,有助于优化迁移流程,合理配置资源,提升迁移效率。

  • 保障业务连续性:评估有助力选择最优的迁移时间窗口,最大程度减少对业务的影响,保障业务的持续开展。

  • 成本控制:通过精准评估资源需求,能够有效控制迁移成本,避免资源的浪费。

  • 源库数据分析及目标库配置推荐:上云前协助分析源库数据等信息,并给出目标库的配置推荐。

  • 识别数据迁移障碍因素:提前找出会对数据迁移产生影响的障碍因素 。

  • 解决兼容性问题:数据迁移评估能够检查源数据与目标环境在系统参数配置、时区、字符集等方面的兼容性,确保数据可顺利迁移,同时保障业务的正常运行。

费用

推广期间暂不计费。

影响

迁移评估任务基本不会对业务造成影响。

支持的地域

当前支持进行迁移评估任务的地域如下所示:

开通地域RegionId
中国地域华东2(上海)cn-shanghai
华北2(北京)cn-beijing
华南1(广州)cn-guangzhou
中国香港cn-hongkong
海外地域亚太东南(柔佛)ap-southeast-1
亚太东南(雅加达)ap-southeast-3

支持的数据源

数据库类型源数据库目标数据库

MySQL

  • 公网自建 MySQL

  • 专有网络 MySQL

火山引擎版 MySQL

迁移评估功能

数据库传输服务 DTS 在进行迁移评估时,会从基本信息、系统配置、迁移依赖、对象兼容性、规格推荐以及迁移时长等评估类型开展评估工作。同时,对于存在评估风险以及未通过评估的项目,会提供具体原因说明。

基本信息

评估项评估内容
源实例 TDE 检查检查源实例是否含有开启 TDE 加密的表。
源实例和目标实例版本是否支持源版本向目标版本迁移。
源实例元数据读取权限源实例账号是否可以查询 information_schema 库的数据。
查看源实例表定义的权限源实例账号是否可以执行 show create table 语句。
查看源实例视图定义的权限源实例账号是否可以执行 show create view 语句。
查看源实例可编程对象定义的权限源实例账号是否可以执行 show create function/trigger/procedure 语句。
源实例日志读取权限源实例账号是否可以执行 show binary logs 语句。

系统配置

评估项评估内容
源和目标实例时区是否一致MySQL 的 time_zone 参数用于设置数据库服务器的时区,控制时间函数(如 NOW()CURTIME())的返回值及 TIMESTAMP 类型数据的存储与显示。若未显式指定,可能导致应用与数据库时间不一致。主从复制时需确保主从节点时区统一,避免 TIMESTAMP 字段因时区转换产生差异。支持全局或会话级配置,建议与应用时区对齐,确保时间数据处理准确可靠。
目标端默认字符集是否兼容源端MySQL 的 character_set_database 参数定义数据库的默认字符集,当新建表或列未显式指定时,自动采用该字符集存储数据。它影响数据写入、查询的编码方式,需与连接字符集等配置一致,避免乱码。若未显式设置数据库字符集,则继承此参数值,建议与全局字符集(如 utf8mb4)统一,确保数据兼容性与多语言支持。
目标端默认校验集是否兼容源端MySQL 的 collation_database 参数定义数据库的默认排序规则,用于指定字符比较、排序及索引的规则(如大小写敏感、重音处理等)。若未显式设置表或列的排序规则,则自动继承此值。需与字符集(如 utf8mb4)兼容,确保数据查询、索引优化的正确性,避免因规则不匹配导致结果异常或性能问题,建议与全局配置统一。

源和目标实例的表名大小写设置是否一致

MySQL 的 lower_case_table_names 参数控制表名和数据库名的存储及比较方式:

  • 0:(默认)区分大小写,按创建时名称存储。

  • 1:不区分,表名转为小写存储。

  • 2:(仅适用于 Windows)保留创建时大小写,但比较时转为小写。

用于解决跨操作系统(如 Linux 与 Windows)迁移时因文件名大小写敏感差异导致的表无法识别问题,需在初始化前配置,避免数据冲突。

源和目标的事务隔离级别是否一致MySQL 的 tx_isolation(现版本更名为 transaction_isolation)参数用于设置事务的默认隔离级别,控制事务间的数据可见性与并发冲突处理方式,如 READ UNCOMMITTED(读未提交)、REPEATABLE READ(可重复读)等。不同级别平衡数据一致性与并发性能,需根据业务场景调整,避免脏读、幻读等问题。建议结合应用需求与数据库负载配置。
源和目标的 InnoDB_strict_mode 是否一致MySQL 的 InnoDB_strict_mode 参数启用 InnoDB 存储引擎的严格模式,对 DDL 操作(如建表、修改表)进行更严格的语法和配置检查。若检测到不兼容选项(如无效行格式、索引键长度超限等),直接报错而非警告,避免潜在数据不一致或性能问题。建议开启以确保配置合规性,尤其在迁移或升级时防止隐式错误。
源和目标的 InnoDB_large_prefix 是否一致MySQL的 InnoDB_large_prefix 参数(5.7.7 + 默认启用)允许 InnoDB 表使用更长的索引前缀(最大 3072 字节),突破默认 767 字节限制,需配合 ROW_FORMAT=DYNAMICCOMPRESSEDInnoDB_file_format=Barracuda。适用于 UTF8MB4 等多字节字符集的大字段索引场景,解决 “index column size too large” 错误。高版本中此参数已弃用,因默认支持。
源和目标的 log_bin_trust_function_creators 是否一致MySQL的 log_bin_trust_function_creators 参数用于控制是否信任存储函数或触发器的创建者,避免因函数未声明 DETERMINISTICNO SQL 等属性而报错。启用后(设为 1),允许非 SUPER 权限用户创建函数,但需确保函数逻辑安全,否则可能因非确定性操作导致主从复制数据不一致。建议仅在受信任环境中开启,或严格审核函数逻辑后使用。
源和目标的 event_scheduler 是否一致MySQL 的 event_scheduler 参数用于控制事件调度器的启停(ON/OFF/DISABLED),决定是否自动执行预定义的事件任务(如定时执行 SQL 语句或存储过程)。启用后(设为 ON),可周期性触发数据维护、统计等自动化操作;关闭时(OFF 或 DISABLED),所有事件任务暂停。需确保用户具备 EVENT 权限,且事件状态为 ACTIVE。适用于定时清理日志、数据备份等场景,需注意全局变量配置及资源占用问题。

源和目标的 sql_mode 是否一致

MySQL 的 sql_mode 参数用于定义服务器执行 SQL 语句时的语法规则、数据校验及兼容性行为,通过调整模式组合可控制严格性、容错性及功能支持。常用模式包括:

  • 严格模式(如 STRICT_TRANS_TABLESSTRICT_ALL_TABLES):禁止非法数据插入(如超长字符串、无效日期),直接报错而非截断或填充默认值。

  • 传统模式(TRADITIONAL):组合严格模式与其他限制(如禁用除数为零、无效日期),模拟传统数据库的严格校验。

  • ANSI 兼容(ANSI):启用标准 SQL 行为(如引号处理、函数名解析)。

  • 功能控制:如 ONLY_FULL_GROUP_BY 要求 GROUP BY 子句包含所有非聚合列,NO_ZERO_IN_DATE 禁止日期中的零值等。

合理配置 sql_mode 可确保数据一致性、避免隐式错误,但需注意不同 MySQL 版本的默认值差异(如 5.7 + 默认含严格模式)。建议根据应用场景明确设定,避免因模式变化导致迁移或升级时兼容性问题。

迁移依赖

评估项评估内容
源实例 binlog_format 是否为 row 格式MySQL 的 binlog_format 设为 ROW 时,二进制日志记录每行数据的变更细节而非执行的 SQL 语句,确保主从复制数据严格一致,避免因不确定性函数(如 NOW()UUID())或触发器导致从库逻辑错误。此模式支持行级复制,减少锁冲突,但日志量较大,适用于对数据准确性要求高的场景。
源实例 binlog_row_image 是否为 full 模式MySQL 的 binlog_row_image 设为 FULL 时,二进制日志会记录修改行的全部列数据(变更前和变更后的完整行信息),确保主从复制时数据绝对一致。此模式适用于依赖完整行数据的场景(如触发器、外键约束或复杂存储过程),避免因部分列未记录导致的逻辑错误或恢复失败。虽增加日志体积,但数据安全性和可靠性更高,尤其对严格一致性要求的系统至关重要。
源实例 log_slave_updates 是否开启MySQL 的 log_slave_updates 设为 ON 时,从库会将主库同步的更新操作记录到自身二进制日志中,使该从库可作为其他实例的主库,支持多级复制架构(如链式或树状拓扑)。此设置确保级联复制中数据变更逐级传递,同时便于灾备或新增从库时直接基于该从库建立新复制链路,增强架构灵活性,但会略微增加从库的 I/O 及日志存储开销。

源实例 gtid_mode 是否开启

在源库的实例版本大于等于 5.6 时,需设置参数 gtid_modeON
当 MySQL 的版本小于 8.0 且未开启参数 gtid_mode 时,可能会在数据迁移过程中导致外键级联删除失败,从而造成数据差异。
主库宕机时,从库通过 GTID 快速定位未同步事务,减少数据丢失风险。

源实例是否包含无主键表无法保证数据一致性,目标端可能会多数据。

对象兼容性

评估项评估内容
迁移对象信息表/视图/函数/存储过程/触发器/事件的数量。
表字符集和校验集是否兼容目标端是否兼容源端表的字符集和校验集设置。

是否包含 Memory 引擎的表

Memory 无法保证数据的完整性,实例重启或者切换主备节点时,表中的所有数据都会丢失。
火山 RDS 仅支持 InnoDB 存储引擎, 并且火山 InnoDB 做了很多内核优化,已具备明显的性能优势。
DTS 会自动将其转换为 InnoDB。

是否包含 MyISAM 引擎的表

MyISAM 采用的是表级锁机制,而 InnoDB 采用的是行级锁机制,InnoDB 在通常情况下具备更高的写入效率。
MyISAM 对数据完整性的保护存在缺陷,这些缺陷会导致数据库数据的损坏甚至丢失。这些缺陷多为设计问题,无法在不破坏兼容性的前提下进行修复。
火山 InnoDB 做了很多内核优化,已具备明显的性能优势。
DTS 会自动将其转换为 InnoDB。

是否包含 MGRMyISAM 引擎的表火山 RDS 不支持此引擎。
是否包含其他引擎的表火山 RDS 不支持非 InnoDB 引擎,DTS 会自动转换为 InnoDB 引擎。
表名和列名是否包含 8.0 新增的关键词如果表名或列名是 8.0 新增的关键词,使用 SQL 时,需要用 `` 引起来,否则在 8.0 版本会报语法错误。

规格推荐

评估项评估内容
InnoDB 缓冲池大小InnoDB 缓冲池用于缓存表数据、索引及辅助结构,减少磁盘 I/O 操作,显著提升数据库读写效率。其大小通过InnoDB_buffer_pool_size 参数设定,直接影响数据缓存能力。建议设置为物理内存的 60%~80%(需预留系统及其他进程内存),过小会导致频繁磁盘访问,过大可能引发内存资源竞争。
实例连接数设置MySQL 的 max_connections 参数定义了数据库允许的最大并发客户端连接数。合理设置可平衡资源利用与并发需求:过低会导致连接请求被拒绝(如 “Too many connections” 错误),过高可能耗尽内存或 CPU 资源,引发性能下降。需根据服务器配置(内存、线程处理能力)及实际负载调整,并可通过连接池管理优化资源复用,避免频繁创建连接的开销。
ThreadRunning 活跃线程数用于表示当前正在执行查询或事务的活跃线程数量,反映数据库的实时并发负载情况。该指标过高可能提示锁竞争、资源瓶颈或慢查询堆积,需结合其他状态参数优化连接池配置或排查性能问题。
源库当前 TPS 和 QPS 指标当前每秒执行的更新数和查询数。
源实例数据空间大小源实例所选库的数据空间和索引空间。
推荐的目标端规格基于源实例以上性能指标,推荐满足条件的火山 RDS 规格。

迁移时长

评估项评估内容
源实例数据空间大小仅数据空间,不包含索引空间。
源和目标网络延迟迁移任务所在的机器与源实例和目标机器的网络延迟,影响读取和写入的吞吐量。
预估 DTS 迁移速度根据网络延迟、源和目标的性能参数配置,预估的迁移速度。这里没有考虑带宽等配置,实际迁移速度可能有所出入。
预估 DTS 迁移时长根据当前表数据所占空间以及预估速度,计算的预估迁移时长,实际迁移时长会受源和目标机器性能、负载、带宽等影响。

相关文档