检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
概览 本手册基于华为云分布式数据库中间件实践所编写,用于指导您完成相关设置,购买更符合业务的分布式数据库中间件实例。 表1 DDM最佳实践一览表 章节名称 简介 合理制定分片策略 介绍创建拆分表时如何选择拆分键和拆分算法。 如何选择DDM逻辑库分片数 介绍创建拆分库时如何合理选择逻辑库分片。
创建表 禁止创建表名以"_ddm"为前缀的表,系统默认认定此类表为系统内部表。 拆分表不支持全局唯一索引,当唯一键和拆分键不一致时,不能保证数据的唯一性。 建议使用bigint型作为自增键的数据类型。tinyint、smallint、mediumint、integer、int数据
广播表和单表的使用场景 单表 DDM管理控制台不提供单表创建操作,用户可以通过MySQL客户端或应用程序连接到DDM实例后自行创建。 如果一张表的数据量预估在1000万条以下,且没有与其他拆分表进行关联查询的需求,建议将其设置为单表类型,存储在默认分片中。 单表创建样例,不做任何拆分:
通过DDM对RDS for MySQL实例进行分库分表 方案概述 RDS for MySQL准备 DDM准备 创建DRS迁移任务
DDM表数据重载 功能介绍 DDM实例跨region容灾场景下,针对目标DDM实例实现表数据reload,使数据同步。 接口约束 无。 调试 您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
延,提高访问速度。 如果不在同一VPC,可以修改ECS的VPC,请参见切换虚拟私有云。 步骤五:连接DDM逻辑库 测试连通性并安装MySQL-Front。 登录ECS实例,请参见《弹性云服务器用户指南》中“Windows弹性云服务器管理控制台远程登录(VNC方式)”。 登录分布式数据库中间件控制台。
进行建表操作。 建表操作是将源RDS for MySQL数据库中的表在DDM实例中重新创建,根据表的性质可选择创建为广播表、单表、拆分表。广播表和单表的使用场景请参考广播表和单表的使用场景。 图1 原数据库表 图2 address_test表数据 图3 user_test表数据
表数据重载 DDM跨region容灾场景下,通过数据复制服务(DRS)进行存储层数据迁移,迁移完成之后,目标DDM无法感知逻辑表信息所在位置,所以需要在目标DDM主动下发“表数据重载”,重新加载信息,跟分片建立联系。 操作步骤 登录分布式数据库中间件控制台。 在“实例管理”页面,选择目标实例。
逻辑库类型 逻辑表类型 表结构迁移策略 表数据迁移策略 拆分 拆分表 在原表结构基础上增加拆分键声明(详见建表语句说明文档),形成适用于DDM的建表语句,连接DDM并登录对应逻辑库后执行。 通过DDM导入源表数据。 拆分 广播表 在原表结构基础上增加广播声明(详见建表语句说明文档)
TABLE_NAME:逻辑表名称。 TABLE_TYPE:逻辑表类型。 SINGLE:单表。 BROADCAST:广播表。 SHARDING:拆分表。 DDL_CONSISTENCY:该逻辑表对应所有物理表DDL是否一致。 TOTAL_COUNT:该逻辑表有几个物理表。 INCONSIS
每一行表示一个不一致的物理拆分表的详细检查结果。 DATABASE_NAME:物理表所在的物理分库。 TABLE_NAME:物理表表的表名。 TABLE_TYPE:物理表所属逻辑表类型。 EXTRA_COLUMNS:该物理表多出来的列。 MISSING_COLUMNS:表示该物理表缺少的列。
采用存算分离架构,提供分库分表、读写分离、弹性扩容等能力,具有稳定可靠、高度可扩展、持续可运维的特点。服务器集群管理对用户完全透明,用户通过DDM管理控制台进行数据库运维与数据读写,提供类似传统单机数据库的使用体验。 介绍视频 产品优势 自动分库分表 传统数据库通常是单机部署,一
所差异,详情如表1所示。 表1 迁移策略 Mycat表类型 DDM表类型 迁移策略 非拆分表 单表 Mycat导出表结构和表数据。 连接目标DDM关联的RDS将数据导入至目标DDM(非拆分表场景)。 拆分表:分片规则为hash类(含年月日等日期类) 拆分表:拆分算法为hash(含日期函数)
产品核心功能 表1 主要功能介绍 功能名称 说明 水平拆分 在创建逻辑表时,只需选择拆分键,DDM就可以按照拆分键生成拆分规则,实现数据水平拆分。 说明: 拆分键是在水平拆分逻辑表的过程中,用于生成路由结果的表字段,指定表字段后,可以进一步选择日期函数,也可以手动输入“日期函数(
方案概述 操作场景 本文将介绍如何通过DDM对已有RDS for MySQL实例进行分库分表。 操作流程 图1 流程图 前提条件 拥有华为账号。 新的RDS for MySQL实例已创建成功。 源RDS for MySQL实例与目标DDM实例、新RDS for MySQL实例必须处于相同VPC,且安全组配置相同。
正常状态 正常状态返回码如表1所示。 表1 正常状态返回码 状态码 编码 错误码说明 200 OK 处理正常。 202 OK 异步请求成功提交。 异常状态 异常状态返回码如表2所示。 表2 异常状态返回码 状态码 编码 错误码说明 400 Bad Request 服务器未能处理请求,可能原因如下:
DDM事务模型 因为DDM中的表一般都做了分库分表,使得这些表中的数据可能分布在很多个RDS实例上的不同数据库分片内。在DDM中一个事务中对各个逻辑表的增删改查很有可能实际发生在多个RDS实例上的不同数据库分片上,每个RDS实例上同一数据库分片内所发生的对分片内数据表的一系列操作相当于一个
拆分算法概述 支持的拆分算法概览 DDM是一个支持既分库又分表的数据库服务,目前DDM分库函数与分表函数的支持情况如下: 表1 拆分算法概览表 拆分函数 描述 能否用于分库 能否用于分表 MOD_HASH 简单取模 是 是 MOD_HASH_CI 简单取模(大小写不敏感) 是 是
按照数据表的实际使用需求,选择最合适的逻辑表类型创建,实际操作请参考创建表。 单表只在第一个分片创建表以及存储数据。 全局表在每一个分片创建表并且存储全量数据。 拆分表在每一个分片创建表,数据按照拆分规则分散存储在分片中。 逻辑表的分片规则 逻辑表的拆分键选择非常重要。建议按实际
HTTP方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 在获取用户Token的UR