OceanBase 数据库集群的分布式架构可以方便的完成集群扩容和缩容操作。当需要扩容集群时,向集群内添加服务器,系统会自动把数据向新添加的空闲服务器上迁移。当需要缩容集群时,通过命令下线服务器,系统会自动把需要下线的服务器上的数据迁移到其他服务器上,直到服务器上不包含任何数据后,服务器会从集群中删除。
扩容操作使用 ALTER SYSTEM ADD SERVER 命令,缩容操作使用 ALTER SYSTEM DELETE SERVER 命令。下面的例子是向三个 Zone 的集群中,每个 Zone 内各添加一台服务器,添加前每个 Zone 内有 3 台服务器,添加后每个 Zone 内有 4 台服务器。
示例:集群扩容
ALTER SYSTEM ADD SERVER '10.0.0.4:2880' ZONE 'zone1';
ALTER SYSTEM ADD SERVER '10.0.1.4:2880' ZONE 'zone2';
ALTER SYSTEM ADD SERVER '10.0.2.4:2880' ZONE 'zone3';
添加过服务器后,集群内已经存在的资源单元会开始向新的空闲服务器迁移。如果要扩大已有租户的服务能力,则需要再调整租户的资源单元。下面的语句调整租户的资源池内资源单元的数量,调整前是 3,调整后是 4。
示例:资源池扩容
ALTER RESOURCE POOL rp1 UNIT_NUM 4;
下面的例子是使用 ALTER SYSTEM DELETE SERVER 命令删除集群里的服务器进行缩容操作,在每个 Zone 内各删除一台服务器。DELETE SERVER 命令要等待所有待删除服务器上的数据迁移到其他服务器,所以可能执行的时间会比较长。
示例:集群缩容
ALTER SYSTEM DELETE SERVER '10.0.0.4:2880';
ALTER SYSTEM DELETE SERVER '10.0.1.4:2880';
ALTER SYSTEM DELETE SERVER '10.0.2.4:2880';
如果其他服务器没有足够空间容纳需要迁出的资源单元,则删除服务器的动作会无法成功。需要先调整租户资源单元的数量。下面的语句调整租户资源池的数量,调整前是 4,调整后是 3。
示例:资源池缩容
ALTER RESOURCE POOL rp1 UNIT_NUM 3;