随着业务增长,当逻辑库对应的物理存储空间不足,且并发压力大时,可对逻辑库进 行分片变更。通过增加数据节点数或者增加分片数,提高数据存储能力和并发支持能 力。
本章节以RDS for MySQL实例为例说明分片变更的使用方法。
应用场景
1. 分片数不变,增加RDS for MySQL实例数量
不改变当前分片数,只增加RDS for MySQL实例数量。将原RDS for MySQL实例 上的部分分片平移到新增RDS for MySQL实例上,分片数据进行平移,不会重新 分布,重新路由。
适用于水平拆分业务后业务规模快速增长的场景,可在业务初期减少成本。
图7-8 分片数不变,增加 RDS for MySQL 实例数量示意图
2. 分片数变化,RDS for MySQL实例数量变化/不变
既增加分片数也增加RDS for MySQL实例数量,或者增加分片数不增加RDS for MySQL实例数量。此种情况分片总数、分表总数、分表规则都会发生变化,数据 将重新分布到不同的分片中,广播表数量增加,重新路由。
图7-9 既增加分片数也增加 RDS for MySQL 实例数示意图
图7-10 增加分片数不增加 RDS for MySQL 实例数示意图
前提条件
● DDM实例中已创建逻辑库。
● 已有RDS for MySQL实例与DDM实例处于在相同的VPC,该RDS for MySQL实例 没有被其它DDM实例使用。
● 本特性需满足DDM内核版本大于等于3.0.4版本。
操作步骤
步骤1 在分布式数据库中间件服务,实例管理列表页面,选择目标DDM实例,单击实例名 称,进入实例基本信息页面。
步骤2 在实例基本信息页面左侧导航栏,选择“逻辑库管理”选项卡,查看DDM实例逻辑 库。
步骤3 在逻辑库列表页面,单击“操作”列“分片变更”。
图7-11 选择分片变更操作
步骤4 在“分片变更”页面,按需填选对应参数,单击测试连接。
图7-12 分片变更
说明
● DDM分片变更不支持无主键表。
● “变更后逻辑库总分片数”默认显示的是当前已有的总分片数,如果需要增加分片,请填写 增加后的总分片数,DDM会尽量均匀分配到数据节点上。
● 数据节点和分片数可以增加也可以保持不变,只要分片数有变化,数据都会进行重分布。
● 数据节点列表默认选中的是已有的实例,也需要填写账号密码进行连接测试。
● 逻辑库在单数据节点上的物理分片数不超过64。
步骤5 连接通过后,单击“下一步”,进入预检查页面。
说明
● 预检查时,实际还未开始真正的变更,只有点击“确定”下发任务后才开始。
● 检查项中如果出现风险项,请确保该风险项不会影响业务后,再点击“忽略此风险”,建议 先解决风险项,再进行变更。
步骤6 检查完成后,单击“开始分片变更”。
步骤7 分片变更任务进行中,数据迁移分为全量迁移和增量待处理两个阶段,可以通过进度 条查看迁移进度,点击“查看运行日志”查看任务的日志记录。
图7-13 全量迁移和增量待处理
图7-14 查看运行日志
步骤8 数据迁移完成,若切换策略选择了手动切换,需在“任务中心”点击“切换”将路由 切换到新的分片上或者数据节点上。若切换策略选择了自动切换,任务将在设置的切 换时间内,自动进行切换。
说明
● 切换过程中,如果分片数未变只增加了RDS for MySQL实例进行分片平移,会禁写,如果分 片数有变化,则会禁写禁读。
● 为了确保数据一致性,切换过程中DDM服务会进行数据完整性校验,导致切换时间变长,具 体时间由数据量大小决定,建议在业务低峰期操作。
● 没有切换前,本次分片变更还没有对原数据库中数据产生实质影响,因此在切换前可以通过 取消任务来结束本次分片变更任务。
步骤9 分片变更结束后数据将会重新分布,确认完数据无误后可单击“清理”来清除原RDS for MySQL数据库实例的数据。
图7-15 清理
步骤10 请仔细阅读弹窗内容,确认任务没有问题后单击“是”进行清理。
图7-16 清理弹窗
步骤11 清理完成。
图7-17 清理完成
----结束