Locality变更

https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000355096

当租户在目标 Zone 的 Locality 变更没有发起时,Locality 不为空的表在目标 Zone 的 Locality 变更不允许执行。

问题:
啥意思啊?不知所云。

意思是 如果 locality 要新增一个zone,在租户的locality 没有将这个 zone 放进去的时候(变更),租户下的表 的locality 是不能将这个 zone 放进去。

SELECT t.tenant_id,a.tenant_name,d.database_name,t.table_name,tg.tablegroup_name,t.part_num,t2.partition_id, t2.zone, t2.svr_ip ,round( t2.data_size/1024/1024/1024) data_size_gb
    ,a.primary_zone , if(t.locality='' or t.locality is null, a.locality, t.locality) as locality 
from oceanbase.__all_tenant as a
    join oceanbase.__all_virtual_database as d on (a.tenant_id=d.tenant_id)
    join oceanbase.__all_virtual_table as t on (t.tenant_id=d.tenant_id and t.database_id=d.database_id)
    join oceanbase.__all_virtual_meta_table as t2 on (t.tenant_id=t2.tenant_id and (t.table_id=t2.table_id or t.tablegroup_id=t2.table_id) and t2.role in (1))
    left join oceanbase.__all_virtual_tablegroup as tg on (t.tenant_id=tg.tenant_id and t.tablegroup_id=tg.tablegroup_id)
where a.tenant_id in (1007) and t.table_type in (3) and d.database_name like 'TPCC%'
;

表的locality 从属于 租户的 locality,一般不需要跟租户 不一样,继承就行了。
复制表 是个例外, 对租户的 locality 变更是个 制约。扩容的时候,先扩租户再扩复制表;反之,缩容的时候先缩复制表,再缩租户。V2.2 的时候是这样,V3.2 版本复制表应该没有这么麻烦了(需要测试验证),文档是继承之前的文档。

详情参考:OceanBase 独立部署高级玩法三:副本数调整