欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/
租户的跨 Zone 资源管理是一种通过调整资源池的 Zone 分布范围来调整租户每一份数据的副本数,进而改变租户数据容灾能力的资源管理方式。
对资源池的 ZONE_LIST 支持如下集中类型的操作:
ZONE_LIST变更分裂资源池
合并资源池
ZONE_LIST 的变更
调整资源池的 ZONE_LIST,可以调整资源池在 Zone 维度的使用范围,从而调整租户数据在 Zone 维度的服务范围。
调整资源池 ZONE_LIST 的示例语句如下:
obclient> CREATE RESOURCE POOL pool1 UNIT_NUM=3, UNIT='unit_config', ZONE_LIST=('z1','z2','z3');
obclient> CREATE RESOURCE POOL pool2 UNIT_NUM=3, UNIT='unit_config', ZONE_LIST=('z1','z2','z3');
obclient> ALTER RESOURCE POOL pool1 ZONE_LIST=('z1','z2','z3','z4');
obclient> ALTER RESOURCE POOL pool2 ZONE_LIST=('z1','z2');
ZONE_LIST 的变更可以分为两类,即扩大 Zone 维度的使用范围和缩小 Zone 维度的使用范围。示例语句 ALTER RESOURCE POOL pool1 ZONE_LIST=('z1','z2','z3','z4'); 是扩大 Zone 维度使用范围,示例语句 ALTER RESOURCE POOL pool2 ZONE_LIST=('z1','z2'); 是缩小 Zone 维度使用范围。
扩大 Zone 维度的使用范围
扩大 Zone 维度的使用范围通常使用在以下两个场景中:
场景 1 :租户副本数升级,以提高租户的可用性。
场景 2:数据从一个机房(Zone)搬迁到另一个机房(Zone)时,在新机房中进行数据补全。
下面通过示例介绍这 2 种使用场景:
场景 1:副本数升级示例
需要将租户
tt从 3 副本升级为 5 副本,数据范围从'z1', 'z2', 'z3'扩大到'z1','z2','z3','z4','z5',以便提高租户的可用性。obclient>CREATE RESOURCE POOL r_p0 UNIT 'uc1', UNIT_NUM 1, ZONE_LIST ('z1', 'z2', 'z3'); obclient>CREATE TENANT tt RESOURCE_POOL_LIST = ('r_p0'); obclient>ALTER RESOURCE POOL r_p0 ZONE_LIST=('z1','z2','z3','z4'); obclient>ALTER TENANT tt locality="F@z1,F@z2,F@z3,F@z4";//在 z4 上为租户 tt 增加数据 obclient>ALTER RESOURCE POOL r_p0 ZONE_LIST=('z1','z2','z3','z4','z5'); obclient> ALTER TENANT tt locality="F@z1,F@z2,F@z3,F@z4,F@z5";//在 z5 上为租户 tt 增加数据场景 2:在新机房中补全数据
新机房内的数据补全是数据在机房内搬迁的一个子操作,假设租户期望将机房
z1的数据搬迁到z4,则新机房的数据补全的具体操作如下:obclient> CREATE RESOURCE POOL r_p0 UNIT 'uc1', UNIT_NUM 1, ZONE_LIST ('z1', 'z2', 'z3'); obclient> CREATE TENANT tt RESOURCE_POOL_LIST = ('r_p0'); // 以下为新机房中数据补全子操作 obclient> ALTER RESOURCE POOL r_p0 ZONE_LIST=('z1','z2','z3','z4'); obclient> ALTER TENANT tt locality="F@z1,F@z2,F@z3,F@z4";//在 z4 上为租户 tt 增加数据 // 接着再从旧机房中删除数据的子操作可以参考缩小 Zone 维度的使用范围以上操作帮助租户先在
z4机房内添加数据,完成了数据在机房间搬迁过程中,在新机房补全数据的操作。
缩小 Zone 维度的使用范围
缩小 Zone 维度的使用范围通常使用在以下 2 个场景中:
场景 1:租户副本数降级,以减少租户的存储资源使用量。
场景 2:数据从一个机房(Zone)搬迁到另一个机房(Zone)时,在旧机房中删除数据。
下面通过示例介绍这 2 种使用场景:
场景 1:副本数降级示例
需要将租户 tt 从 5 副本降级为 3 副本,数据范围从
'z1','z2','z3','z4','z5'缩小到'z1','z2','z3'。减少租户存储资源使用量。obclient> CREATE RESOURCE POOL r_p0 UNIT 'uc1', UNIT_NUM 1, ZONE_LIST ('z1','z2','z3','z4','z5'); obclient> CREATE TENANT tt RESOURCE_POOL_LIST = ('r_p0'); obclient> ALTER TENANT tt locality="F@z1,F@z2,F@z3,F@z4";//在 z5 上为租户 tt 删除数据 obclient> ALTER RESOURCE POOL r_p0 ZONE_LIST=('z1','z2','z3','z4'); // 为资源池删除 z5 obclient> ALTER TENANT tt locality="F@z1,F@z2,F@z3";//在 z4 上为租户 tt 删除数据 obclient> ALTER RESOURCE POOL r_p0 ZONE_LIST=('z1','z2','z3'); // 为资源池删除 z4场景 2:从旧机房中删除数据示例
旧机房内的数据删除是数据在机房内搬迁的另一个子操作,假设租户期望将机房
z1的数据搬迁到z4。则旧机房的数据删除的具体操作如下:obclient> CREATE RESOURCE POOL r_p0 UNIT 'uc1', UNIT_NUM 1, ZONE_LIST ('z1', 'z2', 'z3'); obclient> CREATE TENANT tt RESOURCE_POOL_LIST = ('r_p0'); // 以下为新机房中数据补全子操作 obclient> ALTER RESOURCE POOL r_p0 ZONE_LIST=('z1','z2','z3','z4'); obclient> ALTER TENANT tt locality="F@z1,F@z2,F@z3,F@z4";//在 z4 上为租户 tt 增加数据 // 以下为旧机房中数据删除子操作 obclient> ALTER TENANT tt locality="F@z2,F@z3,F@z4";//先在 z1 上为租户 tt 删除数据 obclient> ALTER RESOURCE POOL r_p0 ZONE_LIST=('z2','z3','z4');上面的操作帮助租户先在
z4机房内添加数据,然后在z1机房内删除数据,将租户数据从z1搬迁到z4。
欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/




