华为云用户手册

  • 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;
  • 处理建议 返回对象选择页面,重新选择要同步的对象后再进行预检查。 预检查阶段,源数据库连接中断,导致检查失败。请确认源数据库连接正常后再重新进行预检查。 Oracle为源的任务,由于Oracle Logminer组件限制,增量阶段源库所选表的schema名、表名及其包含的列名不能超过30个字符。请修改不符合要求的schema名、表名及其中的列名,使其长度不超过30个字符,然后重新再进行预检查。 Microsoft SQL Server为源的任务,单个任务同步的表数量不能超过1000张。请减少单个任务同步的表数量,取消勾选不需要同步的表,或者拆分成多个同步任务执行,然后重新再进行预检查。 请检查源或者目标数据库引擎是否属于特殊版本,特殊版本可能存在某些语法不支持,导致预检查不通过,请重新更换源或者目标数据库后重新进行预检查。
  • MySQL同步场景 表1 目标数据库是否存在与源数据库同名的表 预检查项 目标数据库是否存在与源数据库同名的表(表名冲突)。 描述 校验用户提供的目标数据库是否存在与源数据库同名的表,避免已存在的表被覆盖。若存在,则无法迁移。 特殊情况:如果源和目标数据库中的表,其表名和表结构均相同,针对这种情况,系统判定为不冲突。 不通过提示及处理建议 不通过原因:目标数据库存在与源数据库同名的表。 处理建议:请先检查目标数据库的这些同名表是否需要保留,然后删除同名表或者使用新的目标库再重试。 不通过原因:目标数据库存在与对象编辑新增的表同名的表。 处理建议:请先检查目标数据库的这些同名表是否需要保留,然后删除同名表或者重新进行对象编辑。 不通过原因:源库和目标库是相同的RDS实例,且存在没有映射的库。 处理建议:对没有映射的数据库创建映射。 待确认原因:目标库存在与源库不同SRID列值的表。 处理建议:请检查目标库该表使用地理类型坐标系是否符合预期。如源端已指定地理类型列坐标系属性,请修改目标库表结构与源端保持一致。
  • MariaDB同步场景 表2 目标库是否存在与源库同名的表 预检查项 目标数据库是否存在与源数据库同名的表(表名冲突)。 描述 校验用户提供的目标数据库是否存在与源数据库同名的表,避免已存在的表被覆盖。若存在,则无法迁移。 特殊情况:如果源和目标数据库中的表,其表名和表结构均相同,针对这种情况,系统判定为不冲突。 不通过提示及处理建议 不通过原因:目标数据库存在与源数据库同名的表。 处理建议:请先检查目标数据库的这些同名表是否需要保留,然后删除同名表或者使用新的目标库再重试。 不通过原因:目标数据库存在与对象编辑新增的表同名的表。 处理建议:请先检查目标数据库的这些同名表是否需要保留,然后删除同名表或者重新进行对象编辑。 不通过原因:源库和目标库是相同的RDS实例,且存在没有映射的库。 处理建议:对没有映射的数据库创建映射。
  • 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的方法,可参考对应数据库的使用说明。
  • 处理建议 将源库的“wal_level”参数修改为logical。修改方式可以参考: 使用超级用户在源库执行alter system set wal_level = logical;,然后重启数据库生效。 或修改postgresql.conf配置文件,设置参数wal_level = logical,然后重启数据库生效。 GaussDB 可以在数据库管理页面,参数管理中进行设置,然后重启数据库生效。 修改源或者目标数据库,更换成DRS支持的数据库版本。
  • 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; 不通过原因:目标数据库中支持的扩展插件版本小于源库中安装的版本。 处理建议:请使用支持更高版本插件(不低于源库插件版本)的目标库数据库,并重新创建同步任务。
  • 处理建议 修改源数据库或者目标数据库的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”参数实现,详情请参考“修改实例参数”章节。 更多其他类型数据库修改字符集参数的方法,可参考对应数据库的使用说明。
  • 处理建议 在使用DRS进行迁移或同步时,连接源数据库的账号需要满足一定的权限要求,才能启动任务。不同引擎、不同模式的任务,需要的账号权限也不同。DRS会在“预检查”阶段对数据库账号权限进行自动检查,并给出处理建议。 以MySQL的迁移为例,源数据用户权限要求如下: 全量迁移权限要求: SELECT、SHOW VIEW、EVENT。 参考语句:GRANT SELECT, SHOW VIEW, EVENT ON *.* TO 'user1'; 全量+增量迁移权限要求: SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 其中,REPLICATION SLAVE、REPLICATION CLIENT是全局权限,必须单独开启。参考语句如下: GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user1'; SELECT、SHOW VIEW、EVENT、LOCK TABLES是非全局权限,参考语句如下: GRANT SELECT, SHOW VIEW, EVENT, LOCK TABLES ON [待迁移数据库].* TO 'user1';
  • 处理建议 在使用DRS进行迁移或同步时,连接目标数据库的账号需要满足一定的权限要求,才能启动任务。不同引擎的任务,需要的账号权限也不同。DRS会在“预检查”阶段对数据库账号权限进行自动检查,并给出处理建议。 以MySQL的迁移为例,目标数据用户权限要求如下: SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、REFEREN CES 、WITH GRANT OPTION。当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 参考语句:GRANT SELECT, CREATE, ALTER, DROP, DELETE, INSERT, UPDATE, INDEX, EVENT, CREATE VIEW, CREATE ROUTINE, TRIGGER, REFERENCES ON [待迁移数据库].* TO 'user1' WITH GRANT OPTION;
  • MySQL迁移场景 表1 目标数据库是否存在和源数据库同名的数据库 预检查项 目标数据库是否存在和源数据库同名的数据库 描述 校验用户提供的目标数据库是否存在与源数据库相同的数据库。 不通过提示及处理建议 不通过原因:源数据库连接失败,导致该项检查无法进行。 处理建议:查看源数据库连接是否成功。 不通过原因:目标数据库连接失败,导致该项检查无法进行。 处理建议:查看目标数据库连接是否成功。 不通过原因:用户基本权限不足。 处理建议:查看对应数据库账号权限是否符合迁移要求。 处理建议: 如果您进行的是入云操作,请根据实际情况判断是否需要删除目标数据库中与源数据库同名的库、或指定一个新的RDS实例进行迁移。 如果您进行的是出云操作,根据实际情况判断是否要保留这些目标端用户数据库、或者指定一个新的目标库。 不通过原因:增量迁移场景下, 目标数据库中不允许存在与源数据库中的库同名的库。 处理建议:根据实际情况判断是否需要删除目标数据库中与源数据库同名的库、或指定一个新的RDS实例进行迁移。
  • 处理建议 检查DRS测试连接时输入的用户名和密码是否正确,填入正确的数据库用户名和密码后重新执行预检查。 测试连接时输入的端口号无法访问,请检查端口是否存在。如果端口正确,需检查防火墙是否放开。 目标数据库为PostgreSQL,数据库配置文件pg_hba.conf缺少对数据库账号的配置,建议配置该账号的远程连接权限。 打开配置文件pg_hba.conf,添加如下配置,重启数据库生效。 host all xxx(dbuser) 0.0.0.0/0 method 完成DRS任务之后删除这条配置,重启数据库生效。 目标数据库为Kafka,可能存在以下原因,请进行排查: 检查Kafka brokers是否正常状态。 检查Kafka端是否开启了安全认证。如果开启了,请选择对应的安全连接方式,详细配置说明可参考这里。 进行数据迁移前需确保完成网络准备和安全规则设置,如果连接失败,请按照以下方法排查网络配置是否正确。 公网网络 请确保数据库已开放公网访问。 请确保数据库的安全规则设置正确。 数据库需要将DRS实例的弹性公网IP添加到其网络白名单中,确保DRS实例可以访问数据库。DRS实例创建成功后,可在“源库及目标库”页面获取DRS实例的弹性公网IP。 请确保防火墙设置正确。 数据中心防火墙需要放通DRS实例弹性公网IP的访问,使得DRS可以正常访问数据库。 入方向放行:放通DRS实例弹性公网IP到数据库监听端口的访问。 出方向放行:放通数据库监听端口到实例弹性公网IP的数据传输。 VPC网络 确保数据库安全组设置正确。 查看数据库安全组入方向规则,放通DRS私网IP作为源地址可以访问云数据库监听端口。DRS实例创建成功后,可在“源库及目标库”页面获取DRS实例的私网IP。 确保数据库网络ACL设置正确。 VPC默认没有网络ACL,如果您设置过网络ACL,需要增加入方向规则。 VPN、专线网络 请确保数据库VPN或专线网络配置正确。 请确保数据库的安全规则设置正确。 数据库需要将DRS实例的私有IP添加到其网络白名单中,确保DRS实例可以访问数据库。DRS实例创建成功后,可在“源库及目标库”页面获取DRS实例的私有IP。 更多关于DRS网络设置可参考准备工作概览内容。
  • 操作步骤 在“实时同步管理”界面,选择指定的同步任务。 单击任务名称,页面跳转至“基本信息”页面。 单击左侧“参数管理”,在“参数”页签可对当前同步任务的参数信息根据名称进行查询并且进行修改。 图1 查看参数信息 修改完成后,可选择“保存”或者“取消”设置。 单击“保存”,在弹出框中单击“是”,保存修改。 单击“取消”,在弹出框中单击“是”,放弃本次设置。 部分参数完成修改后,需要重启任务后才生效,可单击右上角“重启”按钮使之生效,也可参考重启同步任务内容进行重启。 除此以外,重置、续传、任务重建、主备倒换、全量阶段修改限速操作也会重启任务进程使设置生效。
  • 操作步骤 在“实时同步管理”页面,单击左上角“批量导入任务”。 在“批量导入任务”对话框中,单击“下载模板”。 图1 批量导入任务 编辑下载的Excel模板,按照要求填写任务信息。 填写完成后,单击“添加文件”,完成模板上传。 待上传并校验成功后,单击“确定”提交创建任务。 DRS不会保存上传的Excel文件,只针对内容进行解析。 任务创建后,数据库的IP地址或 域名 、数据库用户名和密码,会被系统加密暂存,直至删除该任务后自动清除。
  • 操作说明 在“实时同步管理”页面,单击“创建同步任务”。 在“同步实例”页面,填选任务名称、描述、同步实例等信息,其中DRS任务类型选择“双AZ”,完成后单击“下一步”。 返回“实时同步管理”页面可以可以看到,DRS会同时创建一主一备两个子任务。 图1 主备任务 配置并启动同步任务后,DRS会启动主AZ任务进行同步,此时备AZ任务处于暂停状态。 图2 主备倒换前 当主AZ任务发生异常,DRS会自动启动备AZ任务继续进行同步。 图3 主备倒换后
  • 约束限制 限速模式指的是限制秒级的流量上限,可能因为网络波动原因导致统计值的降低,实际统计的值可能会低于限速值大小。 限速模式只对全量同步阶段生效,增量同步阶段不生效。 增量阶段修改限速后,待任务再次进入全量阶段会生效。如增量中的任务修改限速,编辑任务新加同步对象后,限速会在同步任务的全量阶段生效。 修改限速后会出现短暂的没有流量情况,是因为DRS后台进程会重启续传,并不影响任务进度和数据一致性。
  • 约束限制 所有链路均支持修改连接密码。 目前仅MySQL和TaurusDB为源且连接方式为输入IP地址的任务,在增量阶段支持修改IP、端口、用户名信息。当源库进行某些操作导致IP地址、端口、用户名变化时,可通过此功能更新为正确的信息。 修改IP功能适用于源库IP地址变化场景,修改前后的IP必须属于同一个 数据实例 ,否则可能导致任务失败或者数据不一致。 连接信息修改后,将实时生效,不会清空目标数据库的数据。 存在再编辑子任务时,不支持修改连接信息。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全