检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
DDM准备 创建DDM实例 创建逻辑库并关联RDS for MySQL实例 创建DDM账号 创建目标库表结构 父主题: 通过DDM对RDS for MySQL实例进行分库分表
SQL语法 简介 DDL DML Online DDL 函数 使用限制 实用SQL语句 全局序列 数据库管理语法 SQL高级功能
您可以通过“任务中心”的进度条查看迁移进度。 单击任务前的可查看本次分片变更的任务详情,包含变更前后逻辑库总分片数、变更前后数据节点数、切换策略等详细内容。 图4 查看分片变更任务进度条 也可以通过在SQL客户端执行“show migrate status”命令来查看分片变更的操作进度。 图5
RDS for MySQL哪些高危操作会影响DDM RDS for MySQL相关高危操作如表1所示。 表1 RDS for MySQL高危操作 操作类别 操作 操作影响 RDS for MySQL控制台操作类 删除RDS for MySQL实例 RDS for MySQL实例删除后,DDM关联该RDS
创建目标端VPC和安全组 创建DDM实例 创建RDS for MySQL实例 创建逻辑库并关联RDS for MySQL实例 创建DDM账号 创建目标库表结构 创建目标端VPN 父主题: 通过数据复制服务(DRS)将RDS for MySQL数据迁移到DDM
选择“对象级对比”页签,查看对象是否缺失。 单击“开始对比”,对比完成后,查看对比结果。 选择“数据级对比”页签,查看迁移对象行数是否一致。 单击“创建对比任务”。 在弹出的对话框中选择对比类型、时间和对象。 等待对比任务结束后,查看数据对比结果。 如需查看对比明细,可单击对比任务后的“查看对比报表”。
实用SQL语句 CHECK TABLE SHOW RULE SHOW TOPOLOGY SHOW DATA NODE TRUNCATE TABLE HINT- ALLOW_ALTER_RERUN LOAD DATA SHOW PHYSICAL PROCESSLIST 自定义HINT读写分离
SQL高级功能 暂不支持Prepare\EXECUTE语法。 暂不支持用户自定义数据类型、自定义函数。 暂不支持视图、存储过程、触发器、游标。 暂不支持BEGIN…END、LOOP…END LOOP、REPEAT…UNTIL…END REPEAT、WHILE…DO…END WHILE等复合语句。
退出生成不完整的数据文件,建议在系统后台执行。 执行语句:nohup {mysqldump 命令行} & 导出表结构 DDM为2.4.X及以上版本执行以下命令导出表结构。 MySQL客户端版本为5.6和5.7时请执行以下命令: mysqldump -h {DDM_ADDRESS}
MySQL连接DDM时出现乱码如何解决 MySQL连接的编码和实际的编码不一致,可能导致DDM解析时出现乱码。 通过“default-character-set=utf8”指定客户端连接的编码即可。 如下所示: mysql -h 127.0.0.1 -P 5066 -D database
如何选择数据节点RDS for MySQL的规格 数据节点RDS for MySQL的规格建议不小于DDM的规格,否则会产生木桶效应,影响性能。 示例: Q:例如DDM是8核16GB,那么RDS for MySQL的规格应该选多少?应该选择主备还是单机架构? A:根据最佳实践结果,一般建议DDM和RDS
如果可以通信,说明网络正常。 如果无法通信,请检查安全组规则。 查看ECS的安全组的出方向规则,如果目的地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将DDM实例的内网IP地址和端口添加到出方向规则。 图16 ECS的安全组 查看DDM的安全组的入方向规则,需要将ECS实例的私有IP地址和端口添加到入方向规则。
SQL语法类 DDM是否支持分布式JOIN 如何进行SQL优化 DDM是否支持数据类型强制转换 如何处理INSERT语句批量插入多条数据时报错
在使用LEFT或RIGHT JOIN时,ON会优先执行,WHERE条件在最后执行,所以在使用过程中,条件尽可能在ON语句中判断,减少WHERE的执行。 尽量少用子查询,改用JOIN,避免大表全表扫描。 父主题: SQL语法类
场景六:从华为云RDS for MySQL迁移到DDM 通过数据复制服务(DRS)将RDS for MySQL数据迁移到DDM。 父主题: 数据迁移
SHOW TOPOLOGY 命令格式: 查看数据库下指定逻辑表的物理分布情况。 show topology from <table_name> 输出详解: Rds_instance_id:RDS的实例ID。 HOST :IP 。 PORT :端口 。 DATABASE :物理库 。
SHOW RULE 命令格式: 查看数据库下每一个逻辑表的拆分情况。 show rule 查看数据库下指定逻辑表的拆分情况。 show rule from <table_name> 输出详解: TABLE_NAME :表名。 BROADCAST:是否为广播表(0:否,1:是)。
登录分布式数据库中间件控制台。 在实例管理列表页面,选择目标DDM实例,单击实例名称,进入实例基本信息页面。 在左侧导航栏,选择“逻辑库管理”,查看DDM实例逻辑库。 在逻辑库列表页面,单击右侧操作栏的“配置SQL黑名单”。 图1 配置SQL黑名单 在配置SQL黑名单弹窗中,单击“编辑
方案概述 操作场景 本文将介绍如何通过DDM对已有RDS for MySQL实例进行分库分表。 操作流程 图1 流程图 前提条件 拥有华为账号。 新的RDS for MySQL实例已创建成功。 源RDS for MySQL实例与目标DDM实例、新RDS for MySQL实例必须处于相同VPC,且安全组配置相同。
确认迁移执行结果 操作步骤 待迁移任务结束后,可登录DDM实例查看数据迁移结果。确保DDM实例数据与源数据库数据一致。 图1 查看user_test表数据 图2 查看address_test表数据 执行以下命令查看表数据分布情况。广播表各分片数据一致,拆分表数据会按照拆分算法分布在选取的分片中。