华为云用户手册

  • MySQL迁移场景 表1 目标库参数log_bin_trust_function_creators校验 预检查项 目标库参数log_bin_trust_function_creators校验。 描述 RDS for MySQL到MySQL出云场景下,所选的迁移对象包含自定义函数,但目标数据库不支持创建自定义函数,可能会导致迁移失败。 不通过提示及处理建议 不通过原因:目标数据库不支持自定义函数。 处理建议:请检查目标数据库my.cnf文件中是否存在参数log_bin_trust_function_creators=on,若不存在则在my.cnf中加上该参数, 并重启目标数据库使之生效。
  • MongoDB迁移场景 表1 目标库最大支持chunk数目检查 预检查项 目标库最大支持chunk数目检查。 描述 检查目标数据库的最大chunk数目是否足以支撑源库数据的分片分裂,当chunk个数达到目标库的最大支撑数目时,chunk不再分裂,会影响写入性能。 不通过提示及处理建议 待确认原因:目标库的最大chunk数目不足以支撑源库数据的分片分裂,当chunk个数达到目标库的最大支撑数目时,chunk不再分裂,会影响写入性能。 处理建议:选择更高规格的目标库实例。
  • MongoDB迁移场景 表1 源数据库索引(_id)检查 预检查项 源数据库索引(_id)检查。 描述 检查源库是否存在没有索引(_id)的集合,若存在,则导致迁移失败。 待确认提示及处理建议 不通过原因:源数据库存在没有索引(_id)的集合。 处理建议:针对源数据库没有索引(_id)的集合手动添加索引,参考命令:db.集合名.ensureIndex({_id: 1}),如果创建索引不通过提示有重复的索引(_id)值,则不支持该集合的迁移。
  • Oracle为源库的迁移、同步场景 表1 源库约束完整性检查 预检查项 源库约束完整性检查。 描述 源库约束完整性检查,若不符合迁移要求,则导致迁移失败。 待确认提示及处理建议 不通过原因:需要迁移的表中含有依赖,但是被依赖的表没有被迁移。 处理建议:在对象选择中添加这些表。 不通过原因:迁移列表中含有不允许迁移的视图。 处理建议:检查迁移列表中视图所包含的依赖,并将这些依赖添加到对象选择中。 不通过原因:迁移对象中包含仅大小写不同的重名视图。 处理建议:建议修改视图名或者不迁移这些重名视图。 不通过原因:部分约束无法迁移,这些约束的特征为:约束名称的字母相同但大小写不同。 处理建议:建议修改约束名或者不迁移这些重名约束。
  • PostgreSQL为源同步场景 表1 源库是否包含无日志表(UN LOG GED TABLE) 预检查项 源库包含无日志表(UNLOGGED TABLE)。 描述 检查源库包含无日志表(UNLOGGED TABLE),若存在无日志表,则导致同步失败。 待确认提示及处理建议 待确认原因:源数据库包含无日志表(UNLOGGED TABLE),对无日志表的修改不会记录日志, 因此进入增量同步后,UNLOGGED类型的表将无法同步增量数据。 处理建议:请确认这些无日志表是否需要同步增量数据,如果需要,请将这些表的UNLOGGED属性去掉,参考命令:ALTER TABLE TABLE_NAME SET LOGGED。
  • MongoDB迁移场景 表1 源库和目标库数据库固定集合一致性检查 预检查项 源库和目标库数据库固定集合一致性检查。 描述 检查源库和目标库数据库固定集合是否一致,若不一致,则导致迁移失败。 不通过提示及处理建议 不通过原因:源数据库的集合是固定集合,但是目标数据库存在和源库固定集合名称相同的集合。 处理建议:为了保证数据的一致性,可以删除目标库已经存在的和源数据库选择的固定集合的同名集合,或者选择不迁移这些冲突的固定集合。 不通过原因:用户选择迁移集合在目标库已经存在,并且是固定集合。 处理建议:为了保证数据的一致性,可以删除目标库已经存在的和用户选择迁移的同名集合,或者选择不迁移这些冲突的集合。
  • MongoDB迁移场景 表1 数据库SSL一致性检查 预检查项 数据库SSL一致性检查。 描述 检查源数据库和目标数据库的SSL是否一致,源数据库和目标数据库不能同时开启SSL安全连接,否则,会导致迁移失败。 不通过提示及处理建议 不通过原因:源数据库和目标数据库同时使用了SSL连接。 处理建议:若为入云场景,源数据库使用了SSL连接,则目标数据库须关闭SSL连接;若为出云场景,目标数据库使用了SSL连接,则源数据库须关闭SSL连接。
  • MySQL迁移场景 表1 目标数据库SSL证书类型检查 预检查项 目标数据库SSL证书类型检查。 描述 检查云内数据库迁移出云时,目标数据库的SSL证书类型是否正确,如不符合要求,会导致迁移失败。 不通过提示及处理建议 不通过原因:目标数据库SSL证书不存在。 处理建议:请在“源库及目标库”页面,目标库信息处开启SSL安全连接并上传内容只包含一段以“BEGIN CERTIFICATE”开始和“END CERTIFICATE”结束的SSL加密证书。 不通过原因:不支持目标数据库SSL证书类型。 处理建议:请在“源库及目标库”页面,目标库信息处开启SSL安全连接并上传内容只包含一段以“BEGIN CERTIFICATE”开始和“END CERTIFICATE”结束的SSL加密证书。
  • PostgreSQL迁移场景 表2 源数据库的表名是否合法 预检查项 源数据库的表名是否合法。 描述 源数据库的表名不支持 '" .字符,检查源数据库表名是否合法,若存在不合法的字符,会导致实时同步失败。 不通过提示及处理建议 不通过原因:源数据库表名包含不支持的字符。 处理建议:通过执行如下语句,在源数据库修改包含不支持字符的表名: alter table old_name rename to new_name;
  • PostgreSQL迁移场景 表1 源库的schema名是否合法 预检查项 源库的schema名是否合法。 描述 源数据库的schema名不支持 '" .字符,检查源数据库schema名是否合法,若存在不合法的字符,会导致实时同步失败。 不通过提示及处理建议 不通过原因:源数据库schema名包含不支持的字符。 处理建议:通过执行如下语句,在源数据库修改包含不支持字符的schema名。 alter schema old_name rename to new_name;
  • 处理建议 返回对象选择页面,重新选择要同步的对象后再进行预检查。 预检查阶段,源数据库连接中断,导致检查失败。请确认源数据库连接正常后再重新进行预检查。 Oralce为源的任务,由于Oracle Logminer组件限制,增量阶段源库所选表的schema名、表名及其包含的列名不能超过30个字符。请修改不符合要求的schema名、表名及其中的列名,使其长度不超过30个字符,然后重新再进行预检查。 Microsoft SQL Server为源的任务,单个任务同步的表数量不能超过1000张。请减少单个任务同步的表数量,取消勾选不需要同步的表,或者拆分成多个同步任务执行,然后重新再进行预检查。 请检查源或者目标数据库引擎是否属于特殊版本,特殊版本可能存在某些语法不支持,导致预检查不通过,请重新更换源或者目标数据库后重新进行预检查。
  • MariaDB同步场景 表2 目标库是否存在与源库同名的表 预检查项 目标数据库是否存在与源数据库同名的表(表名冲突)。 描述 校验用户提供的目标数据库是否存在与源数据库同名的表,避免已存在的表被覆盖。若存在,则无法迁移。 特殊情况:如果源和目标数据库中的表,其表名和表结构均相同,针对这种情况,系统判定为不冲突。 不通过提示及处理建议 不通过原因:目标数据库存在与源数据库同名的表。 处理建议:请先检查目标数据库的这些同名表是否需要保留,然后删除同名表或者使用新的目标库再重试。 不通过原因:目标数据库存在与对象编辑新增的表同名的表。 处理建议:请先检查目标数据库的这些同名表是否需要保留,然后删除同名表或者重新进行对象编辑。 不通过原因:源库和目标库是相同的RDS实例,且存在没有映射的库。 处理建议:对没有映射的数据库创建映射。
  • MySQL同步场景 表1 目标数据库是否存在与源数据库同名的表 预检查项 目标数据库是否存在与源数据库同名的表(表名冲突)。 描述 校验用户提供的目标数据库是否存在与源数据库同名的表,避免已存在的表被覆盖。若存在,则无法迁移。 特殊情况:如果源和目标数据库中的表,其表名和表结构均相同,针对这种情况,系统判定为不冲突。 不通过提示及处理建议 不通过原因:目标数据库存在与源数据库同名的表。 处理建议:请先检查目标数据库的这些同名表是否需要保留,然后删除同名表或者使用新的目标库再重试。 不通过原因:目标数据库存在与对象编辑新增的表同名的表。 处理建议:请先检查目标数据库的这些同名表是否需要保留,然后删除同名表或者重新进行对象编辑。 不通过原因:源库和目标库是相同的RDS实例,且存在没有映射的库。 处理建议:对没有映射的数据库创建映射。 待确认原因:目标库存在与源库不同SRID列值的表。 处理建议:请检查目标库该表使用地理类型坐标系是否符合预期。如源端已指定地理类型列坐标系属性,请修改目标库表结构与源端保持一致。
  • MySQL迁移场景 表1 源数据库中是否存在非ASCII字符的触发器名 预检查项 源数据库中是否存在非ASCII字符的触发器名。 描述 源数据库中不能存在非ASCII字符的触发器名,若存在,可能会导致迁移失败。 待确认提示及处理建议 待确认原因:源数据库中存在非ASCII字符的发器名。 处理建议:针对该问题提供如下解决方法。 方法一: 单击“上一步”,返回至“迁移模式”页面,迁移对象选择自定义对象,请不要选择包含非ASCII字符名的触发器。 方法二:修改触发器名。
  • MongoDB迁移场景 表1 源数据库分片键配置检查 预检查项 源数据库分片键配置检查。 描述 检查用户提供的目标数据库账号权限是否符合迁移要求,若权限不够,会导致迁移失败。 不通过提示及处理建议 待确认原因:源数据库是副本集,没有分片键配置。 处理建议:如果无法获取源数据库的分片键信息在目标库进行配置,源数据库的数据都会迁移到目标库分片集群的主shard节点,无法充分发挥集群的读写性能,存储能力和高可用特性,建议先在目标库对要迁移的集合进行分片配置,如何设置分片键请参考常见问题。 待确认原因:源数据库实例类型未知,没有分片键配置。 处理建议:如果无法获取源数据库的分片键信息在目标库进行配置,源数据库的数据都会迁移到目标库分片集群的主shard节点,无法充分发挥集群的读写性能,存储能力和高可用特性,建议先在目标库对要迁移的集合进行分片配置,如何设置分片键请参考常见问题。 待确认原因:源数据库存在未配置分片键的集合。 处理建议:如果无法获取源数据库的分片键信息在目标库进行配置,源数据库的数据都会迁移到目标库分片集群的主shard节点,无法充分发挥集群的读写性能,存储能力和高可用特性,建议先在目标库对未设置分片键的集合进行分片配置,如何设置分片键请参考常见问题。
  • 处理建议 如果源数据库为云上RDS实例,可通过RDS管理界面的参数配置,将binlog_row_image修改为FULL,完成修改后重启源数据库即可。 如果源数据库为本地自建库,请参考如下步骤修复。 登录MySQL源数据库所在服务器。 手动修改my.cnf配置文件,将binlog_row_image参数值修改为FULL后保存。 binlog_row_image=full 为防止继续生成非全镜像日志导致任务失败,需选择一个非业务时间段,重启源数据库即可。
  • 处理建议 修改源数据库或者目标数据库的sql_mode参数,使其保持一致。 如果为自建的MySQL数据库,可通过命令行方式修改。 SET sql_mode = '修改后的值'; 如果为RDS for MySQ L实例 ,可通过修改数据库sql_mode参数实现,详情请参考修改实例参数章节。 如果涉及MyISAM表的迁移,目标数据库sql_mode参数取值中不能包含no_engine_substitution。 更多其他类型数据库修改sql_mode的方法,可参考对应数据库的使用说明。
  • MongoDB迁移场景 表1 源数据库的实例类型检查 预检查项 源数据库的实例类型检查。 描述 源数据库的实例类型需要和目标数据库的实例类型一致,若不一致,会导致迁移失败。 不通过提示及处理建议 不通过原因:目标数据库是集群但是源数据库是副本集。 处理建议:建议更换源数据库实例类型或者目标数据库实例类型。 不通过原因:目标数据库是副本集但是源数据库是集群。 处理建议:建议更换源数据库实例类型或者目标数据库实例类型。
  • MySQL迁移场景 表1 源数据库的库名是否合法 预检查项 源数据库的库名是否合法。 描述 源数据库库名不能包含非法字符,库名名称要在1到64个字符之间,由小写字母、数字、中划线、下划线组成,不能包含其他特殊字符。 该项校验源数据库的库名中是否包含上述非法的字符,若包含非法字符会导致迁移失败。 不通过提示及处理建议 不通过原因:源数据库连接失败,导致该项检查无法进行。 处理建议:查看源数据库连接是否成功。 不通过原因:源数据库库名包含不支持的字符,库名名称要在1到64个字符之间,由小写字母、数字、中划线、下划线组成,不能包含其他特殊字符。 处理建议:修改包含非法字符的数据库库名或者返回到对象选择页面迁移合法库名的数据库。
  • MongoDB迁移场景 表1 目标数据库是否存在与源数据库同名的数据库下的同名非空集合 预检查项 目标数据库是否存在与源数据库同名的数据库下的同名非空集合。 描述 校验用户提供的目标数据库是否存在与源数据库同名的数据库下的同名非空集合,避免已存在的数据库被覆盖。若存在,则无法迁移。 不通过提示及处理建议 不通过原因:源数据库连接失败,导致该项检查无法进行。 处理建议:查看源数据库连接是否成功。 不通过原因:目标数据库连接失败,导致该项检查无法进行。 处理建议:查看目标数据库连接是否成功。 不通过原因:目标数据库存在与源数据库同名的数据库下的同名非空集合。 处理建议:根据实际情况判断是否要保留与源数据库同名的目标数据库下的同名非空集合、或者指定一个新的DDS实例。
  • PostgreSQL同步场景 表1 扩展插件合法性检查 预检查项 扩展插件合法性检查。 描述 检查目标数据库是否缺少源数据库所安装的插件。 不通过提示及处理建议 不通过原因:源数据库中已安装的扩展插件,在目标数据库中不支持。 处理建议: 如果源数据库中没有业务这些插件,请在源数据库中删除该插件。参考如下SQL(plugin_name替换为待删除插件名称): drop extension plugin_name; 或使用支持这些插件的目标库,并重新创建同步任务。 不通过原因:源库中存在包含成员表的插件。 处理建议:请确认源库插件是否存在创建后新增的元数据信息,如果存在,请在迁移结束后使用该插件专用的语法重建相关元数据信息。 不通过原因:目标库同步账户没有创建插件的权限。 处理建议:请在目标库中使用root用户给同步账户授权。可参考如下SQL(将username替换为同步账户): alter user username inherit; grant root to username; 不通过原因:目标数据库中支持的扩展插件版本小于源库中安装的版本。 处理建议:请使用支持更高版本插件(不低于源库插件版本)的目标库数据库,并重新创建同步任务。
  • PostgreSQL同步场景 表1 货币金额格式是否一致 预检查项 货币金额格式是否一致。 描述 检验源数据库和目标数据库的货币金额格式是否一致,若不一致,会导致同步失败。 不通过提示及处理建议 不通过原因:源数据库连接失败,导致该项检查无法进行。 处理建议:查看源数据库连接是否成功。 不通过原因:目标数据库连接失败,导致该项检查无法进行。 处理建议:查看目标数据库连接是否成功。 不通过原因:源数据库和目标数据库的“lc_monetary”参数值不同。 处理建议:查看源数据库和目标数据库的“lc_monetary”参数值是否符合同步要求。 不通过原因:用户基本权限不足。 处理建议:查看对应的数据库账号权限是否符合同步要求。
  • Microsoft SQL Server为源同步场景 表1 源数据库恢复模式检查 预检查项 源数据库恢复模式检查。 描述 检查源数据库是否存在备份恢复模式不是FULL的数据库。 不通过提示及处理建议 不通过原因:源数据库存在备份恢复模式不是FULL的数据库。 处理建议: 对每个恢复模式不是FULL的数据库执行如下SQL语句: USE [master] GO ALTER DATABASE [数据库名] SET RECOVERY FULL WITH NO_WAIT GO
  • 处理建议 修改源数据库或者目标数据库的collation_server参数,使其保持一致。 如果为自建的MySQL数据库,可通过命令行方式修改。 通过以下命令查看数据库的字符集。 SHOW VARIABLES LIKE "collation_server"; 使用命令修改服务器的字符集。 SET collation_server='utf8_unicode_ci'; 如果为RDS for MySQL实例,可通过修改数据库collation_server参数实现,详情请参考修改实例参数章节。 更多其他类型数据库修改collation_server的方法,可参考对应数据库的使用说明。
  • 处理建议 如果数据库为云上RDS for MySQL实例,可参考RDS for MySQL大小写参数敏感类问题内容,修改lower_case_table_names参数值。 如果数据库为本地自建MySQL,请参考如下步骤修复。 登录源数据库MySQL所在服务器。 手动修改my.cnf配置文件,在MySQL配置文件my.cnf中的[mysqld]标签下增加一行lower_case_table_names=n。 修改完成后,需选择一个非业务时间段,重启源数据库即可。
  • 处理建议 登录源数据库MySQL所在服务器。 执行以下SQL语句,查看server_id值。 show variables like '%server_id%'; 如果server_id不满足要求,执行如下命令,修改server_id: set global server_id=n n表示源数据库的server_id,如果源数据库版本为MySQL5.6,n的取值范围在2-4294967296之间;如果源数据库版本为MySQL5.5和MySQL5.7,n的取值范围在1-4294967296之间。 修改完成后,重新执行预检查。
  • 处理建议 如果源数据库为云上RDS for MySQL实例,可参考设置RDS for MySQL本地Binlog日志清理内容,将expire_logs_days设置在合理的范围内。 如果源数据库为本地自建MySQL,请参考如下步骤修复。 登录源数据库MySQL所在服务器。 执行以下命令,查看设置的Binlog保留时间。 show variables like 'expire_logs_days'; 或 show variables like 'binlog_expire_logs_seconds'; 手动修改my.cnf配置文件,设置Binlog保留时间,以3天为例。 expire_logs_days=3 或 binlog_expire_logs_seconds=259200; 修改完成后,需选择一个非业务时间段,重启源数据库即可。
  • 处理建议 如果源数据库为本地自建MySQL,可通过如下方法,修改源数据库Binlog格式: 方法一:手动修改my.cnf或my.ini配置文件,然后重启数据库。 binlog_format=row 方法二:执行如下命令,中断所有业务连接。 set global binlog_format='ROW' 然后手动修改my.cnf或my.ini配置文件。 binlog_format=row 在row模式下,日志增长速率会变大,注意磁盘使用情况。 如果源数据库为云上RDS for MySQL实例,请使用修改实例参数功能,将源数据库参数binlog_format修改为row,重启数据库后生效。
  • 处理建议 如果源数据库为本地自建MySQL库,建议参考如下操作开启Binlog日志。 查看binlog日志是否开启。 show variables like "log_bin"; 如果是关闭状态,在MySQL配置文件my.cnf或my.ini中的[mysqld]标签下增加一行log-bin = mysql-bin。 重启数据库。 如果源数据库为云上RDS for MySQL实例,则默认开启Binlog,无需额外配置,binlog_format格式为row,详细说明可参考设置RDS for MySQL本地Binlog日志清理。 如果源库TiDB,建议在数据库配置文件的[binlog]标签下增加一行enable=true,然后重启数据库使设置生效。
  • 处理建议 修改源数据库或者目标数据库字符集。 数据库为MySQL时,可通过以下方式进行修改: 如果为自建的数据库,可通过命令行方式修改。 通过以下命令查看数据库的字符集。 SHOW VARIABLES LIKE "character_set_server"\G; 使用命令修改服务器的字符集。 SET character_set_server='utf8'; 如果为RDS for MySQL实例,可通过修改数据库“character_set_server”参数实现,详情请参考“修改实例参数”章节。 数据库为PostgreSQL时,可通过以下方式修改: 如果为自建的数据库,可通过命令行方式修改。 通过以下命令查看数据库的字符集。 show server_encoding; 使用命令修改服务器的字符集。 set server_encoding='utf8'; 如果为RDS for PostgreSQL实例,可通过修改数据库“server_encoding”参数实现,详情请参考“修改实例参数”章节。 更多其他类型数据库修改字符集参数的方法,可参考对应数据库的使用说明。
共100000条