华为云用户手册

  • 操作步骤 查看DRS任务状态,确认任务状态为增量中且增量时延在10秒以内。 确认需要执行的DDL操作,不同操作在源库和目标库执行的顺序不同。 加列:先在目标库执行,执行成功后在源库执行。 删列:先在源库执行,执行成功后在目标库执行。 增加、修改、删除列默认值:跟操作顺序无关。 修改列类型:先在目标库执行,执行成功后在源库执行。 修改字符集:先在目标库执行,执行成功后在源库执行。 修改列名:先在源库执行,执行成功后等待DRS任务因列不存在失败,然后在目标库执行,续传DRS任务。 加分区:先在目标库执行,执行成功后在源库执行。 删分区:先在源库执行,执行成功后在目标库执行。 加索引:跟操作顺序无关。 删索引:跟操作顺序无关。 加约束(主键、唯一键、check等):先在源库执行,执行成功后在目标库执行。 删约束(主键、唯一键、check等):先在目标库执行,执行成功后在源库执行。 增加字段长度:先在目标库执行,执行成功后在源库执行。 减少字段长度:先在源库执行,执行成功后在目标库执行。 如果一条DDL中包含多个操作的,所有操作除去跟操作顺序无关的操作外(比如修改默认值),剩余操作的要求顺序一样,则按要求顺序操作;否则需要拆成多条DDL操作。如加列的同时修改默认值,先在目标库执行,执行成功后在源库执行。 表1 总结 DDL操作 操作顺序 加列,修改列类型,修改字符集,加分区,删约束,增加字段长度 先在目标库执行,执行成功后在源库执行。 删列,删分区,加约束,减少字段长度 先在源库执行,执行成功后在目标库执行。 增加、修改、删除列默认值,加索引,删索引 跟操作顺序无关。 修改列名 先在源库执行,执行成功后等待DRS任务因列不存在失败,然后在目标库执行,续传DRS任务。 根据2顺序中完成DDL操作后,查看DRS任务状态是否正常。
  • 使用场景 MySQL为源的迁移或同步任务,在增量阶段使用第三方拷表方式实现的Online DDL工具(如PT-OSC、GH-OST)在源库执行DDL,会先创建临时表,通过临时表做DDL,针对这个情况,使用DRS进行迁移或同步时,可分为以下三种场景: 对于库级和实例级迁移、同步任务,由于Online DDL使用的临时表在同步列表中,DRS会自动同步DDL操作,因此不需要特殊处理。 对于表级迁移或同步任务,如果创建DRS任务时,迁移或同步对象列表中已经提前添加了第三方Online DDL涉及的临时表的场景,DRS也会自动同步DDL操作,不需要特殊处理。 对于表级迁移或同步任务,如果创建DRS任务时,只选中表的数据,由于Online DDL使用的临时表不在选中的列表中,因此不会被DRS同步。可以参考以下使用限制和操作步骤,通过手动在目标库执行DDL的方式,避免源库Online DDL操作导致的源库和目标库表结构不一致,引起的DRS任务失败。
  • 处理建议 建议用DWS的MYSQL、TD的兼容模式或给无主键表加上主键。 参考创建语句: CREATE DATABASE mysql_compatible_db DBCOMPATIBILITY 'MYSQL'; 或: CREATE DATABASE td_compatible_db DBCOMPATIBILITY 'TD'; 建议目标 GaussDB 实例使用兼容MySQL的数据库。 如果目标实例为分布式实例,参考语句:CREATE DATABASE mysql_compatible_db DBCOMPATIBILITY 'MYSQL'; 如果目标实例为主备版实例,参考语句:CREATE DATABASE mysql_compatible_db DBCOMPATIBILITY 'B';
  • 数据复制服务 是否采用了压缩技术 压缩技术是提升性能和解决数据膨胀的关键技术,DRS在数据传输和增量数据存储两大环节采用了压缩技术。 数据传输压缩:在网络带宽不理想的环境中,进行数据同步与传输,DRS可以开启压缩开关,以减少数据传输对带宽的占用量。 增量数据存储压缩:增量数据转储成逻辑文件后,将会出现膨胀现象,DRS针对该场景做了存储压缩技术,使得本地逻辑文件缓存在DRS时占用磁盘空间大大降低。 父主题: 产品咨询
  • 对等连接限制 有重叠子网网段的VPC建立的对等连接,可能不生效。 两个VPC之间不能同时建立多个VPC对等连接。 不同区域的VPC不能创建对等连接。 如果两个VPC的CIDR有重叠,建立对等连接时,只能针对子网建立对等关系。如果两个VPC下的子网网段有重叠,那么该对等关系不生效。建立对等连接时,请确保两个VPC之间没有重叠的子网。 对等连接建立后,需要在本端VPC、对端VPC分别添加对方子网的路由才能通信。 VPC A与B、C分别建立对等连接,如果B、C两个VPC的网段有重叠,A中无法添加具有相同目的网段的路由。 为了安全起见,请不要接受来自未知账号的对等连接申请。 对等连接双方账号都有权限删除对等连接,一方删除对等连接后,对等连接的所有信息会被立刻删除,包括对等连接关联的路由信息。 VPC对等连接路由存在时,VPC无法被删除。 支持在华为云中国站和国际站同一区域创建对等连接。 VPC1与VPC2创建对等连接,默认情况下VPC2不能通过VPC1的EIP访问公网。您可以通过使用NAT网关服务或配置SNAT服务器,使得VPC2下的弹性云服务器可以通过VPC1下绑定了EIP的弹性云服务器访问Internet。具体实现方式请参见无公网IP的弹性云服务器访问Internet。 具体设置VPC对等连接的方法,可参考《虚拟私有云用户指南》。 对等连接建立后,需要在本端VPC、对端VPC分别添加对方子网的路由才能通信,详细操作可参考添加VPC对等连接路由。 在添加对等路由时,建议添加网段路由信息。如果添加点对点路由,DRS任务重建后实例IP会发生改变,此时需要重新添加路由,否则会导致网络不通。
  • 策略二 在测试连接页面的目标库信息中填写数据库用户名user1,所有Definer迁移到该用户下选“否”。 图2 策略二 这种策略下,源库所有存储过程和方法的Definer迁移到目标库后账号和host保持不变,选择此选项,需要配合用户权限迁移功能,将源数据库的用户全部迁移,这样才能保持源数据库的权限体系完全不变。 如果您未选择用户权限迁移或者用户权限迁移时存在不支持迁移的账号,建议选择策略一来处理。
  • 策略一 在测试连接页面的目标库信息中填写数据库用户名user1,所有Definer迁移到该用户下选“是”。 图1 策略一 这种策略下,源库所有存储过程和方法的Definer迁移到目标库后账号都会自动修改为user1,host改为% 。若在目标库上出现调用存储过程失败的情况,可执行如下操作: 使用uesr1账号登录到目标库RDS for MySQ L实例 。 如果需要使用其他账号调用存储过程,则该账号需要具有execute权限。 通过如下语句,使用user1授予其他账号执行存储过程的权限。 其中user表示需要调用存储过程的其他账号: GRANT EXECUTE ON db.* TO user; 如果需要通过Java调用存储过程,则需要通过如下语句,使用user1授予其他账号查询mysql.proc表的权限。 授权语句可参考如下语句,user表示需要调用存储过程的账号: GRANT SELECT ON mysql.proc TO 'user'@'%';
  • 库表级多对一任务操作流程 实时同步过程中,可以使用对象名映射功能修改库、表名称,实现库表级多对一。 以库级多对一为例: 在“设定同步”页面,同步对象右侧已选对象框中,选择需要进行映射的数据库,单击“编辑”按钮。 在“编辑库名”的弹出框中,填写新的数据库名,修改后的名称即为保存在目标数据库中的库名。 例如,将源库中的库A和库B,修改为同样的库C后,即可实现库A、库B到库C的同步。 库名修改成功后,您会看到修改前的库名和修改后的新数据库名,至此,表示完成库映射的配置。 图5 查看库名修改结果 配置完成后,等待任务启动并完成同步。
  • 操作建议 为避免创建任务过程中出现空间不足问题,建议提前计算源数据库的数据量总和,根据该总和一次性规划目标实例的磁盘空间,剩余磁盘空间需大于源库实际数据量大小的总和(例如“源系统1”数据量大小为1GB,“源系统2”数据量大小为3GB,“源系统3”数据量大小为6GB,则目标实例的剩余磁盘空间应该大于10GB)。 对于MySQL引擎,目标端参数的设置需要考虑整体资源的提升,建议使用第一个任务的参数对比功能中“常规参数”的“一键修改”(其中max_connections除外),而“性能参数”应该结合目标端实际规格做相应的手工设置。 对于多对一同步任务场景,由于该场景是一个一个任务逐步创建的,后面创建任务时可能会造成已创建任务的同步阻塞,为了避免这个情况发生,请注意创建技巧。 每个同步任务都会涉及创建索引步骤,而创建索引时数据库可能会导致Schema锁进而阻塞Schema下的其他表的数据同步,从而导致后创建的任务可能在索引创建阶段对已经同步中的任务阻塞一段时间,我们可以选择在创建同步任务最后设置为“稍后启动”,这样设定在业务低峰期后创建任务,从而避免后创建任务的索引创建对已有任务的同步阻塞。 对于多对一同步任务场景,不建议使用内容对比,因为内容对比无法保证一致性。 如果涉及表级汇集的多对一同步任务,则不支持DDL,否则会导致同步全部失败。 图1 参数对比
  • 什么是区域、可用区? 我们用区域和可用区来描述数据中心的位置,您可以在特定的区域、可用区创建资源。 区域(Region):从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 可用区(AZ,Availability Zone):一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 图1阐明了区域和可用区之间的关系。 图1 区域和可用区 目前,华为云已在全球多个地域开放云服务,您可以根据需求选择适合自己的区域和可用区。更多信息请参见华为云全球站点。
  • 如何选择区域? 选择区域时,您需要考虑以下几个因素: 地理位置 一般情况下,建议就近选择靠近您或者您的目标用户的区域,这样可以减少网络时延,提高访问速度。不过,在基础设施、BGP网络品质、资源的操作与配置等方面,中国大陆各个区域间区别不大,如果您或者您的目标用户在中国大陆,可以不用考虑不同区域造成的网络时延问题。 在除中国大陆以外的亚太地区有业务的用户,可以选择“亚太-曼谷”或“亚太-新加坡”区域。 在非洲地区有业务的用户,可以选择“南非-约翰内斯堡”区域。 在欧洲地区有业务的用户,可以选择“欧洲-巴黎”区域。 在拉丁美洲地区有业务的用户,可以选择“拉美-圣地亚哥”区域。 “拉美-圣地亚哥”区域位于智利。 资源的价格 不同区域的资源价格可能有差异,请参见华为云服务价格详情。
  • 设置binlog_row_image为FULL步骤 如果源数据库为云上RDS实例,可通过RDS管理界面的参数配置,将binlog_row_image修改为FULL,完成修改后重启源数据库并重置任务即可。 云数据库RDS for MySQL 8.0版本的binlog_row_image参数默认值为FULL,您无需进行设置。 如果源数据库为本地自建库,请参考如下步骤修复。 登录MySQL源数据库所在服务器。 手动修改my.cnf配置文件,将binlog_row_image参数值修改为FULL后保存。 binlog_row_image=full 为了关闭旧的session,需选择一个非业务时间段,重启源数据库并重置任务。
  • MySQL迁移中Definer强制转化后如何维持原业务用户权限体系 Definer的使用主要应用在视图、存储过程、触发器、事件等对象里,Definer并不会限制对象被调用的权限,但会限制对象访问数据库的权限。本场景下,用户在MySQL迁移过程中选择了“所有Definer迁移到该用户下”,则源库用户体系下其他用户账号在完成用户迁移后,如果用户迁移和权限授权都执行成功,则无需授权便可继续使用原业务(使用DRS用户迁移功能可以实现用户、权限、密码迁移),否则如果想在原来的用户权限体系下沿用原业务,则需要进行授权后才具有Definer相关数据库对象的访问使用权限,从而保证原业务正常。 本章节主要介绍如何通过数据库命令行对用户账号进行授权的方法。 确保新用户(Definer统一使用指定账号)具备足够的权限执行视图、存储过程等相关SQL。 通过MySQL官方客户端或者其它工具登录目标数据库。 通过如下命令查看需要授权的用户user当前权限详情。 show grants for 'user'@'host'; 为了保证原业务不报错,使用如下命令给用户user授予涉及的数据库对象缺失的操作权限。 grant select,insert,update,delete on db_name.* to 'user'@'host'; 一般情况下,访问数据库的权限包括:SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、EXECUTE。您需要根据具体的数据库对象查看缺少哪些权限,再进行授权操作。 对于存储过程和函数,必须保证用户user对其有拥有EXECUTE权限,授权SQL命令如下: grant execute on db_name.function_name to 'user'@'host'; 使用授权后的用户账号访问目标库对象,无异常报错表示授权成功。需要注意:在java项目工程中调用存储过程、函数如果出现 Java.sql.SQLException: User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted, configure connection with "noAccessToProcedureBodies=true" to have driver generate parameters that represent INOUT strings irregardless of actual parametertypes,则需要单独执行用户user对mysql.proc库的授权: grant select on mysql.proc to 'user'@'host'; 父主题: 实时迁移
  • 安全设置global级binlog_format=ROW的步骤 通过MySQL官方客户端或者其它工具登录源数据库。 在源数据库上执行全局参数设置命令。 set global binlog_format = ROW; 在源数据库上执行如下命令确认上面操作已执行成功。 select @@global.binlog_format; 您可以通过如下两种方式确保修改后的源库binlog_format格式立即生效。 方法一: 选择一个非业务的时间段,中断当前数据库上的所有业务连接。 通过如下命令查询当前数据库上的所有业务连接(所有的binlog Dump连接及当前连接除外)。 show processlist; 中断上面查出的所有业务连接。 在上述操作未结束之前,请不要创建或者启动迁移任务,否则会导致数据不一致。 为了避免源库binlog_format格式因为数据库重启失效,请在源库的启动配置文件(my.ini或my.cnf等)中添加或修改配置参数binlog_format并保存。 binlog_format=ROW 方法二: 为了避免源库binlog_format格式因为数据库重启失效,请在源库的启动配置文件(my.ini或my.cnf等)中添加或修改配置参数binlog_format并保存。 binlog_format=ROW 确保上述配置参数binlog_format添加或修改成功后,选择一个非业务时间段,重启源数据库即可。
  • 关闭Balancer的步骤 通过Mongo Shell 登录数据库。 在mongos节点命令窗口中,使用如下命令,切换至config数据库。 use config 执行如下命令,判断是否可以关闭Balancer。 while( sh.isBalancerRunning() ) { print("waiting..."); sleep(1000); } 如果返回结果是waiting,则表示当前Balancer正在执行块(chunk)迁移,此时不能执行关闭Balancer的命令,否则可能引起数据不一致。 图1 查看输出结果 如果返回结果是空,则表示当前Balancer没有在进行块(chunk)迁移,此时可以执行下一步的关闭Balancer的命令。 关闭Balancer。 如果是整个实例的迁移,则执行如下命令,可以关闭整个实例的Balancer。 sh.stopBalancer() 如果要关闭待迁移且已经开启了分片的集合的Balancer,则执行如下命令: sh.disableBalancing("database.collection") 其中database.collection表示要关闭的集合的namespace。
  • PostgreSQL为源同步 表1 源库对象关联关系检查 预检查项 源库对象关联关系检查。 描述 源库对象关联关系检查,若不符合迁移要求,则导致迁移失败。 不通过提示及处理建议 不通过原因:已选择的对象中存在含外键的表,且未选择迁移该外键依赖的表。 处理建议:请在对象选择页面选择依赖的对象。 不通过原因:已选择的对象中存在视图,且未选择迁移该视图依赖的表或视图。 处理建议:请在对象选择页面选择依赖的对象。 不通过原因:已选择的对象中存在继承表,且未选择迁移该继承表依赖的表。 处理建议:请在对象选择页面选择依赖的对象。
  • 问题分析 出现上述内存溢出可能存在如下原因: 源数据库的mongod服务单独部署在一台机器上,如果这种情况下在迁移过程中出现内存溢出,一般就是因为在迁移过程中源库在执行会大量消耗内存的操作,比如:创建索引,排序查询等。 源数据库的mongod服务和其他服务同时部署在一台机器上,而且没有设置cacheSizeGB的大小,这种情况下,如果因为其他服务消耗掉内存导致不能给wiredTiger引擎保证的内存,则会出现内存溢出的情况。 一般默认情况下,mongod的wiredTiger引擎可以使用整个机器内存的50%(3.2的版本)或者60%(3.4以后的版本)。
  • Oracle为源同步场景 表1 源库是否正确开启补充日志 预检查项 源库是否正确开启补充日志。 描述 Oracle源库未开启库级补充日志或级别不满足要求,会导致同步失败。 不通过提示及处理建议 不通过原因:源库补充日志级别告警,源库补充日志设定为库的主键和唯一键级别,可能在UPDATE目标库不存在的数据时丢失部分字段数据。 处理建议:建议设置库或表补充日志为ALL级别。 修改库补充日志为ALL级别语句参考: alter database add supplemental log data (all) columns; 查看库补充日志为ALL级别是否打开: select supplemental_log_data_all as allLog from v$database;
  • MongoDB迁移场景 表1 源数据库账号依赖检查 预检查项 源数据库账号依赖检查。 描述 在进行用户迁移时,若所选迁移的用户与某些角色存在依赖关系,需要同时选择迁移该用户及所依赖的角色,否则会导致迁移失败。 不通过提示及处理建议 不通过原因:源数据库账号依赖的数据库在目标数据库中不存在,并且也不在所选的对象选择列表中。 处理建议:在角色选择中选择账号依赖的角色一起迁移,或者不迁移这些依赖检查不通过的账号。 不通过原因:源数据库账号依赖的数据库在目标库中不存在,并且也不在用户的对象选择列表中。 处理建议:在对象选择中选择账号依赖的数据库一起迁移,或者不迁移这些依赖检查不通过的账号。
  • MongoDB迁移场景 表1 源数据库角色依赖检查 预检查项 源数据库角色依赖检查。 描述 在进行用户迁移时,若所选迁移的用户与某些角色存在依赖关系,需要同时选择迁移该用户及所依赖的角色,否则会导致迁移失败。 不通过提示及处理建议 不通过原因:源数据库角色依赖的数据库在目标数据库中不存在,并且也不在所选的对象选择列表中。 处理建议:在对象选择中选择角色依赖的数据库一起迁移,或者不迁移这些依赖检查不通过的角色。 不通过原因:源数据库角色依赖的角色在目标数据库中不存在,并且也不在用户的角色选择列表中。 处理建议:在角色选择中选择角色依赖的角色一起迁移,或者不迁移这些依赖检查不通过的角色。
  • MySQL迁移场景 表1 源端是否存在触发器或事件 预检查项 源端是否存在触发器或事件。 描述 为了避免触发器或事件的自动触发机制导致非预期数据操作,从而引起两边数据的不一致,DRS任务将在用户结束任务时启动触发器或事件的迁移,如果您在任务运行中,关闭或断开了源数据库连接,则会导致触发器或事件未迁移。 待确认提示及处理建议 待确认原因:源数据库存在触发器或事件。 处理建议:此警告仅为迁移操作提示,请您先结束任务后再断开源端网络,则可确保迁移完整性。
  • MySQL同步场景 表2 源库无主键表检查 预检查项 源库无主键表检查。 描述 在进行MySQL同步时,源数据库若存在无主键表,可能会导致同步失败。 不通过提示及处理建议 不通过原因:源数据库同步的表中存在无主键表。 处理建议:建议修改无主键表。 不通过原因:多对一任务时,不允许源库中存在与目标库同名的无主键表。 处理建议:建议修改无主键表、删除目标库无主键表或者不迁移无主键表。 待确认提示及处理建议 待确认原因:源数据库同步的表中存在无主键表。 处理建议:无主键表由于缺乏行的唯一性标志,无法进行内容对比,且在网络不稳定情况下,可能存在目标与源库数据不一致的情况。建议将无主键表修改为主键表。
  • Oracle为源同步场景 表4 源库无主键表检查 预检查项 源库无主键表检查。 描述 源数据库若存在无主键表,可能会导致同步数据存在少量不一致的可能性。 不通过提示及处理建议 不通过原因:由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。 处理建议:建议为无主键表添加主键,或者不同步无主键表。 增加主键语句参考: ALTER TABLE table_name ADD CONSTRAINT constraint-name PRIMARY KEY (column_name); 若要同步主键表,建议在全量同步期间不执行ALTER TABLE MOVE操作,多分区操作SPLIT/MERGE分区,FLASHBACK操作,ALTER TABLE SHRINK SPACE操作,否则数据重复可能性会增加。
  • MySQL迁移场景 表1 Definer迁移权限检查 预检查项 Definer迁移权限检查。 描述 入云场景Definer迁移需要源库账号具有all privileges权限,出云场景的Definer迁移需要目标库账号具有all privileges权限。 不通过提示及处理建议 不通过原因:目标库的指定账号当前权限不足。 处理建议:选择Definer指定为目标数据库连接用户账号,或者赋予目标数据库用户all privileges权限。 可参考如下语句: grant all privileges on *.* to ‘user’@’host’ 不通过原因:源库的指定账号当前权限不足。 处理建议: 将所有Definer迁移到指定目标库用户下:在配置目标库时选择“所有Definer迁移到该用户下”,使得所有对象Definer均在该指定用户下。 保留原Definer设置,但需要赋予源数据库用户all privileges权限。 可参考如下语句: grant all privileges on *.* to ‘user’@’host’
  • 操作步骤 在“数据订阅管理”页面的任务列表中,选择要修改的任务,单击操作列“编辑”按钮。 进入“选择订阅对象”页面,填写订阅类型和订阅对象信息,单击“下一步”。 在“任务确认”页面,设置任务异常通知设置、 SMN 主题,并确认订阅任务信息无误后,勾选协议,单击“启动任务”,提交订阅任务。 图1 任务启动设置 表1 任务启动设置 参数 描述 任务异常通知设置 该项为可选参数,开启之后,选择对应的SMN主题。当订阅任务状态或时延指标异常时,系统将发送通知。 SMN主题 “任务异常通知设置”项开启后可见,需提前在SMN上申请主题并添加订阅。 SMN主题申请和订阅可参考《 消息通知 服务用户指南》。 时延阈值 源数据库和目标数据库之间的同步有时会存在一个时间差,称为时延,单位为秒。 时延阈值设置是指时延超过一定的值后(时延阈值范围为0到3600s),DRS可以发送告警通知。告警通知将在时延稳定超过设定的阈值6min后发送,避免出现由于时延波动反复发送告警通知的情况。 说明: 设置时延阈值之前,需要设置任务异常通知。 当时延阈值设置为0时,不会发送通知给收件人。 订阅任务提交后,您可在“数据订阅管理”页面,查看并管理自己的任务。 您可查看任务提交后的状态,状态请参见任务状态说明。 在任务列表的右上角,单击刷新列表,可查看到最新的任务状态。 当订阅任务创建完成后,需要使用SDK实时订阅订阅任务中的增量数据。具体的操作及注意事项请参考SDK使用说明。
  • 操作步骤 停止SDK消费进程。 在修改消费位点之前,需要先确保连接这个订阅通道的所有SDK下游都停掉。 在“数据订阅管理”页面,选择需要修改消费时间点的订阅任务,单击“消费时间点”操作列的“修改”按钮。 图1 修改消费时间点 在弹出框中,设置指定的消费时间点,单击“确认”。 图2 编辑消费时间点 选择的时间消费点必须在订阅任务的时间范围内。 重启SDK消费进程。 当修改完消费位点后,即可重启本地的SDK消费进程,此时SDK会从修改的消费位点开始订阅增量数据。
  • 操作步骤 在“数据订阅管理”页面,可查看订阅任务的数据范围。 图1 任务列表 选择指定的订阅任务,单击任务名称,页面跳转至“基本信息”页签。 单击“订阅数据”页签,查看订阅数据列表。 当前数据列表默认显示前5分钟的增量订阅数据。若需要查看指定时间段的订阅数据,您可以在页面右上角,根据需求选择显示订阅数据的时间段,设置的时间段必须在订阅任务的数据范围内。 图2 查看订阅数据 订阅数据展示的数据格式为数据复制服务内部的数据格式,数据记录的各个字段含义如表1所示: 表1 数据字段含义 数据字段名称 说明 服务ID RDS实例的IP:PORT。 库名 这条变更记录对应表所在的数据库的库名。 表名 这条变更记录对应的表的表名。 变更类型 这条变更记录的变更类型,包括:UPDATE、DELETE、INSERT、REPLACE、BEGIN、COMMIT、DDL、DML。 位点 这条变更记录在binlog中的位点,格式为binlog_file_offset@binlog_file_id,其中binlog_file_id为binlog文件名的后缀,binlog_file_offset为这条binlog记录在binlog文件中的偏移量。 时间戳 这条变更记录写入到binlog文件中时的时间戳。 如果您想查看指定数据库下指定表的数据详情,可以单击指定表操作列的“查看数据详情”。 图3 字段详情 数据详情可参考表2: 表2 字段详情 字段详情 说明 字段名称 这条变更记录对应的每个字段的名称。 字段类型 这条变更记录对应的每个字段的数据类型。 字段编码 这条变更记录对应的字符集编码。 前镜像 这条变更记录变更之前的各个字段的值。对于insert操作,没有前镜像值。 后镜像 这条变更记录变更之后的各个字段的值。对于delete操作,没有后镜像值。 update操作的前镜像和后镜像都有值。 对于操作类型为DDL的记录,只有字段详情,没有字段名称、字段类型、字段编码、前镜像及后镜像几个字段。
  • 参数配置 数据订阅过程中,部分参数会影响拉取数据的速度和间隔。 在启动SDK之前,您可以根据需要在“subscribe.properties”的配置文件中,对以下参数进行设置: # 获取订阅数据初始延时 MESSAGE_DELAY_TIME = 1500000 # 获取订阅数据间隔时间 MESSAGE_PERIOD_TIME = 2000000 # 通知用户订阅数据到达初始延时 NOTIFY_DELAY_TIME = 2000 # 通知用户订阅数据间隔 NOTIFY_PERIOD_TIME = 1000 # 返回服务端ack消息初始延时 ACK_DELAY_TIME = 3000 # 返回服务端ack消息时间间隔 ACK_PERIOD_TIME = 5000 以上参数值为默认配置,您可以使用默认值,也可以根据实际情况自定义参数值。 以上涉及到时间的单位均为微秒。
  • 如何批量导出、导入事件(event)和触发器(trigger) 在进行MySQL到MySQL的迁移时,若任务结束后发现迁移日志中提示迁移事件和触发器失败,可手动迁移。 本小节主要介绍批量导出导入事件和触发器的具体操作。 从源库批量导出触发器。 在源库执行以下语句,获取TRIGGER_SCHEMA和TRIGGER_NAME。 SELECT TRIGGER_SCHEMA,TRIGGER_NAME FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA in ('DB1','DB2','DB3') order by TRIGGER_NAME; 上述语句中,DB1,DB2,DB3分别表示从源库待迁移到目标库的数据库。 在源库执行如下语句,从字段SQL Original Statement中获取源库创建触发器的语句。 SHOW CREATE TRIGGER TRIGGER_SCHEMA.TRIGGER_NAME \G; 上述语句中,TRIGGER_SCHEMA.TRIGGER_NAME填写的为1.a中查询到的TRIGGER_SCHEMA和TRIGGER_NAME具体值。 从源库批量导出事件。 在源库执行以下语句,获取EVENT_SCHEMA和EVENT_NAME。 SELECT EVENT_SCHEMA,EVENT_NAME FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA in ('DB1','DB2','DB3') order by EVENT_NAME; 上述语句中,DB1,DB2,DB3分别表示从源库待迁移到目标库的数据库。 在源库执行如下语句,从字段SQL Original Statement中获取源库创建事件的语句。 SHOW CREATE EVENT EVENT_SCHEMA.EVENT_NAME \G; 上述语句中,EVENT_SCHEMA.EVENT_NAME填写的为2.a中查询到的EVENT_SCHEMA和EVENT_NAME具体值。 导入触发器和事件。 在目标库重新执行从源库导出的创建触发器和创建事件语句。 父主题: 实时迁移
  • 操作步骤 以下操作适用于目标数据库为RDS实例的情况。 登录关系型数据库服务控制台。 选择指定目标数据库实例。 单击实例名称。 页面跳转至“基本信息”页签,切换至“参数修改”页面。 在页面右上角搜索框,输入关键字“password”,查看搜索结果。 图1 修改密码 在5的搜索结果中,对于表1 密码参数列举的参数,需要根据密码复杂度要求进行修改,确保各参数在密码复杂度允许的范围内。 表1 密码参数 参数 允许值 说明 validate_password_length 0~2,147,483,647 validate_password插件校验的密码的最小字符数。 validate_password_mixed_case_count 0~2,147,483,647 指定当密码策略为MEDIUM(中)或更高时,为通过validate_password校验,密码至少需包含多少个大小写字符。 validate_password_number_count 0~2,147,483,647 指定当密码策略为MEDIUM(中)或更高时,为通过validate_password校验,密码至少需包含多少个数字。 validate_password_policy LOW, MEDIUM, STRONG validate_password插件执行的密码策略。 validate_password_special_char_count 0~2,147,483,647 指定当密码策略为MEDIUM(中)或更高时,为通过validate_password校验,密码至少需包含多少个非字母数字字符。 密码复杂度修改完成后,保存修改结果。 图2 保存修改结果 返回数据复制服务的“迁移模式”页面,继续执行下一步操作即可。
共100000条
提示

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