最近更新时间:2024-10-10 18:56:05
在创建数据迁移、数据同步以及数据订阅任务前,会进行预检查校验任务,具体校验项如下。
如果预检查未通过,请参考对应解决方案修复;部分检查项支持忽略,具体可参考实际业务场景评估是否修复。
校验项未通过:表示该检测项检测未通过,需要修复问题后重新发起预检查校验。
校验项警告:表示该检测项检测不完全符合要求,用户需自行评估该警告是否影响业务场景,根据实际需求决定修复或忽略该问题。
检测项 | 检测内容 | 解决方案 |
---|---|---|
源库连接性检查 | 检查数据传输服务器是否能连通源数据库 | 请检查源数据库IP地址、端口、账户、密码是否正确,防火墙是否设置正确 |
目的库连接性检查 | 检查数据传输服务器是否能连通目的数据库 | 请检查目标数据库账户、密码是否正确 |
库版本检查 | 检查数据库的版本号 | 当前DTS支持迁移数据库版本为MySQL5.5、MySQL5.6、MySQL5.7、MySQL8.0。其中MySQL8.0只支持同版本迁移,所有版本均不支持降版本迁移。 |
源库权限检查 | 检查源数据库的帐号权限是否满足迁移要求 | DTS源数据库账户需具有Select_priv, Reload_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv,Show_view_priv, process_priv, Event_priv,XA_RECOVER_admin权限。如果源库为自建实例,且需要进行一致性校验任务,请授权源库迁移用户Super权限;如果不需要进行一致性校验,则可忽略该警告直接创建任务。当源库存在XA事务时,需要授予用户XA_RECOVER_admin权限,由于XA Prepare持久化的问题可能导致全量和增量衔接的时候XA事务不完整最终导致数据不一致 |
目的库权限检查 | 检查目的数据库的帐号权限是否满足迁移要求 | DTS目标数据库账户需具有读写权限 |
同名对象存在性检查 | 检查目的库是否存在跟待迁移对象同名的结构对象 | 请修改迁移对象或者修改目的库名 |
源端同名对象存在性检查 | 源库schema的所有对象都要存在 | 请修改迁移对象,确保迁移对象存在 |
源库server_id检查 | 检查源数据库是否设置server_id大于1 | 源库server_id设置错误,请修改server_id大于1,修改命令为 set global server_id = xx |
源库binlog开启检查 | 检查源数据库是否开启binlog | 源库未开启binlog, 请添加如下配置至源库 MySQL 配置文件my.cnf,并重启;log-bin=[自定义binlog文件名] |
源库日志模式检查 | 检查源数据库的日志模式是否合法 | 请设置源库binlog为ROW,修改命令为set global binlog_format=ROW;请设置源库binlog_row_image为FULL,修改命令为set global binlog_row_image=FULL |
约束完整性检查 | 检查迁移表依赖的外键父表是否迁移 | 请将迁移表依赖的父表与迁移表一并迁移 |
存储引擎检查 | 检查迁移表是否有不支持的存储引擎 | 请修改迁移对象,迁移对象支持MyISAM和INNODB引擎 |
系统变量检查 | 检查目的库中的关键系统变量是否满足迁移条件 | 请将目标库参数lower_case_table_names 修改为与源库一致,请将目标库参数log_bin_trust_function_creators开启 |
连接数检查 | 检查源库、目标库的连接数是否满足要求 | 请检查重新设置max_connenctions和max_user_connenctions以满足迁移要求 |
MySQL密码格式检查 | 检查MySQL是否使用老的密码格式 | 不支持老密码格式的数据库迁移 |
检测项 | 检测内容 | 解决方案 |
---|---|---|
源库连接性检查 | 检查数据传输服务器是否能连通源数据库 | 请检查源数据库IP地址、端口、账户、密码是否正确,防火墙是否设置正确 |
目的库连接性检查 | 检查数据传输服务器是否能连通目的数据库 | 请检查目标数据库账户、密码是否正确 |
源库server_id检查 | 检查源数据库是否设置server_id大于1 | 源库server_id设置错误,请修改server_id大于1,修改命令为 set global server_id = xx |
源库binlog开启检查 | 检查源数据库是否开启binlog | 源库未开启binlog,请添加如下配置至源库 MySQL 配置文件my.cnf,并重启;log-bin=[自定义binlog文件名] |
源库日志模式检查 | 检查源数据库的日志模式是否合法 | 请设置源库binlog为ROW,修改命令为set global binlog_format=ROW;请设置源库binlog_row_image为FULL,修改命令为set global binlog_row_image=FULL |
MySQL密码格式检查 | 检查MySQL是否使用老的密码格式 | 不支持老密码格式的数据库迁移 |
源库权限检查 | 检查源数据库的帐号权限是否满足迁移要求 | DTS源数据库账户需具有Select_priv, Reload_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv,Show_view_priv, process_priv, Event_priv,XA_RECOVER_admin权限。如果源库为自建实例,且需要进行一致性校验任务,请授权源库迁移用户Super权限;如果不需要进行一致性校验,则可忽略该警告直接创建任务。当源库存在XA事务时,需要授予用户XA_RECOVER_admin权限,由于XA Prepare持久化的问题可能导致全量和增量衔接的时候XA事务不完整最终导致数据不一致。 |
源端同名对象存在性检查 | 源库schema的所有对象都要存在 | 请修改迁移对象,确保迁移对象存在 |
同名对象存在性检查 | 检查目的库是否存在跟待迁移对象同名的结构对象 | 请修改迁移对象或者修改目的库名 |
约束完整性检查 | 检查迁移表依赖的外键父表是否迁移 | 请将迁移表依赖的父表与迁移表一并迁移 |
存储引擎检查 | 检查迁移表是否有不支持的存储引擎 | 请修改迁移对象,迁移对象支持MyISAM和INNODB引擎 |
连接数检查 | 检查源库、目标库的连接数是否满足要求 | 请检查重新设置max_connenctions和max_user_connenctions以满足迁移要求 |
库版本检查 | 检查数据库的版本号 | 当前DTS仅支持MySQL5.7迁移至TiDB |
目的库权限检查 | 检查目的数据库的帐号权限是否满足迁移要求 | DTS目的数据库账户需具有select_priv,insert_priv,update_priv,delete_priv,create_priv,drop_priv,index_priv,create_view_priv,process_priv权限 |
系统变量检查 | 检查关键系统变量是否满足迁移条件 | DTS要求MySQL参数lower_case_table_names为1(不区分大小写);MySQL与TiDB参数sql_mode、system_time_zone、time_zone保持一致 |
检测项 | 检测内容 | 解决方案 |
---|---|---|
源库连接性检查 | 检查数据传输服务器是否能连通源数据库 | 请检查源数据库IP地址、端口、账户、密码是否正确,防火墙是否设置正确 |
源库server_id检查 | 检查源数据库是否设置server_id大于1 | 源库server_id设置错误,请修改server_id大于1,修改命令为 set global server_id = xx |
源库binlog开启检查 | 检查源数据库是否开启binlog | 源库未开启binlog,请添加如下配置至源库 MySQL 配置文件my.cnf,并重启;log-bin=[自定义binlog文件名] |
源库日志模式检查 | 检查源数据库的日志模式是否合法 | 请设置源库binlog为ROW,修改命令为set global binlog_format=ROW;请设置源库binlog_row_image为FULL,修改命令为set global binlog_row_image=FULL |
MySQL密码格式检查 | 检查MySQL是否使用老的密码格式 | 不支持老密码格式的数据库迁移 |
源库权限检查 | 检查源数据库的帐号权限是否满足迁移要求 | DTS源数据库账户需具有Select_priv, Reload_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv,Show_view_priv, process_priv, Event_priv,XA_RECOVER_admin权限。如果源库为自建实例,且需要进行一致性校验任务,请授权源库迁移用户Super权限;如果不需要进行一致性校验,则可忽略该警告直接创建任务。当源库存在XA事务时,需要授予用户XA_RECOVER_admin权限,由于XA Prepare持久化的问题可能导致全量和增量衔接的时候XA事务不完整最终导致数据不一致。 |
源端同名对象存在性检查 | 源库schema的所有对象都要存在 | 请修改迁移对象,确保迁移对象存在 |
约束完整性检查 | 检查迁移表依赖的外键父表是否迁移 | 请将迁移表依赖的父表与迁移表一并迁移 |
存储引擎检查 | 检查迁移表是否有不支持的存储引擎 | 请修改迁移对象,迁移对象支持MyISAM和INNODB引擎 |
目的库连接性检查 | 检查数据传输服务器是否能连通目的数据库 | 请检查目标数据库账户、密码是否正确 |
库版本检查 | 检查数据库的版本号 | 当前DTS支持ES版本为ES6.8 |
检测项 | 检测内容 | 解决方案 |
---|---|---|
源库连接性检查 | 检查数据传输服务器是否能连通源数据库 | 请检查源数据库IP地址、端口、账户、密码是否正确,防火墙是否设置正确 |
目的库连接性检查 | 检查数据传输服务器是否能连通目的数据库 | 请检查目标数据库账户、密码是否正确 |
库版本检查 | 检查源数据库和目标库的版本号,源库版本是否满足不大于目标库版本 | 当前DTS支持迁移源数据库和目标库版本为PostgreSQL9.4 |
结构任务及全量任务源库权限检查 | 检查源数据库的帐号权限是否满足迁移要求 | DTS源数据库账户权限不足,请检查用户是否有待迁移库的connect权限,是否有待迁移schema的usage权限 |
增量任务源库权限检查 | 检查源数据库的帐号权限是否满足迁移要求 | DTS源数据库账户需具有superuser权限 |
目的库权限检查 | 检查目的数据库的帐号权限是否满足迁移要求 | DTS目标数据库账户需具有createdb或superuser权限,如果需要迁移postgres库,请确保目标库账户有postgres的create权限 |
同名对象存在性检查 | 检查目的库是否存在跟待迁移对象同名的结构对象 | 请修改迁移对象或者修改目的库对象名 |
LC_MONETARY一致性检查 | 检查源库和目标库的LC_MONETARY参数设置是否一致 | 请检查源库和目标库的LC_MONETARY参数设置是否一致 |
逻辑流复制参数检查 | 检查源库参数是否满足逻辑流复制的要求 | 请配置源库参数wal_level为logical;max_replication_slots >= 当前复制槽个数 + database个数;max_wal_senders >= max_replication_slots+当前从库连接数 |
逻辑复制插件及逻辑复制配置检查 | 检查源库是否安装逻辑复制插件,检查逻辑复制是否配置DTS的IP地址 | 请将DTS的IP地址加入至源库PostgreSQL的配置文件(pg_hba.conf)中,并在源库安装wal2json插件 |
最大连接数检查 | 检查源库、目标库的最大连接数是否满足迁移要求 | 请重新设置max_connections参数,以满足迁移要求 |
约束完整性检查 | 检查迁移表依赖的外键父表是否迁移 | 请将迁移表依赖的父表与迁移表一并迁移 |
检测项 | 检测内容 | 解决方案 |
---|---|---|
目标库连接性检查 | 检查数据传输服务器是否能连通目标数据库 | 请检查目标数据库IP地址、端口、密码是否正确,防火墙是否设置正确 |
目的库配额检查 | 检查目的数据库内存是否大于等于源库内存 | 请检查目标数据库内存是否大于等于源库内存,如果源库为自建实例且maxmemory配置为0,请确保目标库拥有足够空间 |
目的库是否为空检查 | 检查目的数据库中是否存在数据 | 请删除目的库存在的数据 |
源数据库连接性检查 | 检查数据传输服务器是否能连通源数据库 | 请检查源数据库IP地址、端口、密码是否正确,防火墙是否设置正确 |
数据库版本检查 | 检查数据库的版本是否符合要求 | 请保证数据库版本在2.8~6.0范围内,且目标库版本不低于源库版本 |
数据库DB数目检查 | 检查源库和目标库DB数目是否符合迁移要求 | 集群移到集群:仅支持源库所使用DB数为1的情况,源库集群使用多DB暂不支持;主从迁移到主从:请保证目标库DB数大于源库DB数 |
检测项 | 检测内容 | 解决方案 |
---|---|---|
目标库性连接性检查 | 检查数据传输服务器是否能连通目标数据库 | 请检查目标数据库IP地址、端口、用户密码是否正确,防火墙是否设置正确 |
源库性连接性检查 | 检查数据传输服务器是否能连通源数据库 | 请检查源数据库IP地址、端口、用户密码是否正确,防火墙是否设置正确 |
目标库数据冲突检查 | 检查目标数据库中是否存在和源数据库冲突的库表 | 请删除目标数据库存在冲突的表,如果是合库操作请确认数据不会发生冲突,如数据冲突任务会直接失败 |
源数据库账户检查 | 用于源库检查给定的用户是否能够完成数据迁移工作 | 请检查源数据库账号权限,源数据库账户至少需具有 root 权限 |
目标数据库账户检查 | 用于源库检查给定的用户是否能够完成数据迁移工作 | 请检查目标数据库账号权限,目标数据库账户至少需具有 root 权限 |
数据库版本检查 | 检查源数据库版本号及目标数据库版本是否符合要求 | 请保证源数据库版本及目标数据库版本在3.2~6.0范围内;且目标库版本不得低于源库版本 |
源端平衡器状态检查 | 检查源端平衡器是否关闭 | 请保持源端平衡器处于关闭状态,修改命令为 sh.stopBalancer() |
纯净模式