昨天我们学习了如何通过分区表来驾驭海量数据并在课后留下了一个悬念当集群资源不够用时我们往里面加新机器OceanBase 是怎么把数据自动“搬运”过去的今天我们就来揭秘这个让 DBA 彻底告别半夜加班的“黑科技”——在线扩容与自动负载均衡Rebalance。核心原理RootService 的“智能调度”在传统分库分表架构下增加节点往往需要 DBA 手动编写脚本去拆分和迁移数据不仅容易出错还会导致业务抖动。而在 OceanBase 的原生分布式架构中集群内置了一个强大的“大管家”——RootService。当你通过命令将新的物理机OBServer加入集群并扩充了租户的资源池Resource Pool后RootService 就会接管一切。它会自动触发 Rebalance数据均衡过程将部分数据分区Partition从负载较高的旧节点平滑地在线复制到新节点上。整个过程对应用完全透明无需停机也无需修改任何业务代码。10分钟实操模拟一次水平扩容假设你的集群已经准备好了新的物理机IP:192.168.1.100只需在rootsys租户下执行以下 SQL即可完成扩容-- 1. 将新机器添加到集群中 ALTER SYSTEM ADD SERVER 192.168.1.100:2882 ZONE zone1; -- 2. 扩充资源池让新机器承载更多数据 ALTER RESOURCE POOL my_pool UNIT_NUM 2;执行完第二条命令后OceanBase 就会在后台默默开始“搬家”。你可以通过以下视图实时观察数据均衡的进度-- 查看当前集群的负载均衡任务状态 SELECT * FROM oceanbase.DBA_OB_TENANT_JOBS WHERE job_type REBALANCE_TASK; 扩容避坑与最佳实践虽然扩容很丝滑但在生产环境中仍需注意以下两点扩容耗时与数据量成正比Rebalance 过程涉及大量的数据网络传输和磁盘 I/O。如果集群数据量达到 TB 级别均衡过程可能会持续数小时。因此建议在业务低峰期触发扩容。跨机执行与表组Table Group优化如果你的业务经常需要跨多个分区进行 JOIN 查询数据分散在不同机器上会增加网络开销RT 升高。此时可以利用 OceanBase 的表组Table Group特性将存在关联关系的表绑定在一起确保它们的主副本始终落在同一个节点上从而将分布式查询降级为高效的单机查询。今日小结今天我们见证了 OceanBase 真正的“弹性”魅力。通过 RootService 的自动调度集群能够像细胞分裂一样自动吸收新增的硬件资源并自动完成数据的重新分布。这让数据库真正具备了与业务共同成长的弹性管理能力。 课后思考既然 OceanBase 支持无缝的水平扩容Scale-out那如果我想给现有的某台物理机升级 CPU 和内存垂直扩容 Scale-upOceanBase 又是怎么做到不停机、不丢数据的呢提示这与 Paxos 协议的多副本切换机制有关。