检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
读写分离操作指导 DDM读写分离功能可以将只读查询的流量按比例分摊至下挂数据节点的主实例和只读实例,从而减轻主实例的工作负担,保障读写事务的性能。此功能对应用透明,业务代码无需改造,只需要在控制台上设置主实例和只读实例的读权重,即可实现将读流量按照权重分流到主实例和只读实例上,写
版本发布说明 分布式数据库中间件(Distributed Database Middleware,简称DDM),是一款分布式关系型数据库中间件。兼容MySQL协议,专注于解决数据库分布式扩展问题,突破传统数据库的容量和性能瓶颈,实现海量数据高并发访问。 DDM各版本的生命周期规划
什么是分布式数据库中间件 产品定义 分布式数据库中间件(Distributed Database Middleware,简称DDM),是一款分布式关系型数据库中间件。兼容MySQL协议,专注于解决数据库分布式扩展问题,突破传统数据库的容量和性能瓶颈,实现海量数据高并发访问。 DD
分库的拆分键及分表的拆分键,均不支持为空。 在DDM中,一张逻辑表的拆分方式是由拆分函数(包括分片数目与路由算法)与拆分键(包括拆分键的MySQL数据类型)共同定义。 当一张逻辑表的分库拆分方式与分表拆分方式不一致时,如果SQL查询没有同时带上分库条件与分表条件,则DDM在查询过程会产生全分库扫描或全分表扫描的操作。
逻辑表扫描时的分片并发执行级别: DATA_NODE:分库间并行扫描,同一分库内各分片串行扫描。 RDS_INSTANCE:RDS实例间并行扫描,同一RDS实例内各分片串行扫描。 PHY_TABLE:各物理分片全部并行扫描。 RDS_INSTANCE、DATA_NODE、PHY_TABLE DATA_NODE
不超过MySQL限制。 请修改过长的表名。 DN实例binlog全量备份时间检查 客户全量备份是否保留足够长时间。 进入DN console,确保全量备份保留时间大于等于30天。 DN节点binlog必须开启 Binlog必须开启以支持在线变更。 如果您的DN节点是RDS实例,确保Binlog开启。
常用概念 数据节点 数据节点是分布式数据库中间件服务的最小管理单元,表示DDM关联的RDS for MySQL实例,DDM目前仅支持这种引擎,一个实例代表了一个独立运行的数据库。您可以在一个DDM实例中通过创建多个逻辑库管理多个数据节点,并且可以独立访问数据节点。 DDM实例自身
数据节点,且数据节点没有被其他DDM实例使用。DDM将在关联的数据节点上新建数据库,不会影响已有的库表。 创建逻辑库时,同一个逻辑库,MySQL大版本需要相同,不可以混用。 数据节点的规格建议不小于DDM的规格,否则会影响性能。 创建逻辑库时,同一个DDM实例可以创建多个逻辑库。多个逻辑库可关联同一个数据节点。
版本回滚。 操作步骤 登录分布式数据库中间件控制台。 在“实例管理”页面,选择指定的目标实例,单击实例名称。 在实例基本信息页面,单击“实例信息”模块的“版本回滚”。 在版本回滚弹窗中选单击“立即回滚”。 确认无误后单击“是”进行版本回滚。 版本回滚时,实例状态将变为“回滚中”。
// 配置JdbcUrl连接串中的参数 config.setJdbcUrl("jdbc:mysql:loadbalance://192.168.0.10:5066,192.168.0.11:5066/db_name?loadBalan
迁移介绍 迁移评估 场景一:数据中心自建MySQL迁移到DDM 场景二:其他云MySQL迁移到DDM 场景三:华为云上自建MySQL迁移到DDM 场景四:从DDM实例导出数据 场景五:其他异构数据库迁移到DDM 场景六:从华为云RDS for MySQL迁移到DDM
操作流程。 分库分表 通过DDM对RDS for MySQL实例进行分库分表 本实践主要介绍通过DDM对已有RDS for MySQL实例进行分库分表的操作流程。 数据迁移 数据中心自建MySQL迁移到DDM 企业当前使用数据中心自建MySQL,希望能使用DDM将数据进行分布式存储。
如果是单表或普通表, mysql -f -h {RDS_ADDRESS} -P {RDS_PORT} -u {RDS_USER} -p {DB_NAME} < {mysql_table_schema.sql} Enter password: ********** mysql -f -h {RDS_ADDRESS}
迁移源/目标 信息项 源RDS实例 RDS实例连接地址 RDS实例侦听端口 数据库用户 数据库名称 数据库表名 目标DDM实例 DDM实例连接地址 DDM实例侦听端口 DDM实例用户名 DDM关联RDS实例上创建的数据库名称 新建RDS实例连接地址 新建RDS实例侦听端口 RDS实例用户名 数据库名称
该方式适用于水平拆分业务后业务规模快速增长的场景,可在业务初期减少成本。也适用于RDS for MySQL实例无法满足存储空间,读写性能的场景。 图1 分片数不变,增加RDS for MySQL实例数量 方式二:增加分片数,不增加数据节点数量 该变更方式增加分片数,不增加数据节
成长地图 由浅入深,带您玩转DDM 01 了解 分布式数据库中间件(Distributed Database Middleware,简称DDM),是一款分布式关系型数据库中间件。兼容MySQL协议,专注于解决数据库分布式扩展问题,突破传统数据库的容量和性能瓶颈,实现海量数据高并发访问。
如何解决JDBC驱动方式连接DDM异常问题 使用mysqldump从MySQL导出数据非常缓慢的原因 导入数据到DDM过程中出现主键重复 如何处理数据迁移过程中自增列报错:主键重复 如何处理配置参数未超时却报错 如何处理DDM逻辑库与RDS实例的先后关系 DDM逻辑库删除后,数据节点
广播表和单表的使用场景 单表 DDM管理控制台不提供单表创建操作,用户可以通过MySQL客户端或应用程序连接到DDM实例后自行创建。 如果一张表的数据量预估在1000万条以下,且没有与其他拆分表进行关联查询的需求,建议将其设置为单表类型,存储在默认分片中。 单表创建样例,不做任何拆分:
连接管理类 MySQL连接DDM时出现乱码如何解决
String 租户在某一region下的project ID。 获取方法请参见获取项目ID。 instance_id 是 String 关联RDS实例ID。 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 索引位置,偏移量。 从第一条数据偏移offset条数据后开始查询,默认为0。