本节主要介绍主备库配置场景下,租户管理相关的一些注意事项。
在 OceanBase 数据库中,系统租户可以对普通租户进行管理。主备集群之间的系统租户是相互独立的,不会物理同步数据,但是备集群会感知主集群普通租户的变化,保证同步所有普通租户的数据。备集群从主集群的系统租户逻辑同步的租户管理操作包括创建租户、删除租户和重命名租户。
备集群也支持独立进行部分的租户管理操作,当前支持在主备集群上独立运维的租户管理操作如下:
管理租户的资源配置
管理租户的资源池
管理租户的 Locality 配置
管理租户的 Primary Zone 配置
此外,主备库配置下,主备集群均不支持物理恢复租户。
创建租户的注意事项
在主集群上创建租户的流程如下:
准备租户资源配置
创建租户资源池
执行创建租户的 DDL
默认情况下,当主集群上创建一个租户后,备集群会感知到创建租户的 DDL,并自动执行创建租户的流程。备集群上创建租户的流程与主集群一致,但由于主备集群的硬件配置可能不一样,备集群会根据自身的配置来动态创建租户资源池。
为了保证备集群上租户的正常创建,在主集群上创建租户前,需要注意以下事项:
在主集群上创建租户 Unit 配置时,需要参考备集群的资源水位。
默认备集群的 Unit 配置与主集群一致,如果备集群的可用资源不足,可能会导致后续在备集群上自动创建租户失败。建议主集群和备集群采用相同的租户资源配置,在主集群上创建 Unit 配置时应参考备集群的资源水位,保证备集群后续能成功创建资源池。
如果主备需要采用不同的租户资源配置,可以在备集群上设置 Unit 配置模板。
如果备集群的硬件资源配置确实比主集群低,并且希望主集群和备集群采用不同的租户资源配置,可以在备集群上提前创建 Unit 配置模板
standby_unit_config_template
,或者修改模板定义,用于定制备集群上的租户资源配置。用户可以在备集群上创建、删除和修改 Unit 配置模板
standby_unit_config_template
,但创建资源池时不可以直接使用该模板。创建、查看和删除 Unit 配置模板的示例如下:
创建备集群的资源规格模板
obclient> CREATE RESOURCE UNIT standby_unit_config_template
MAX_CPU 1, MIN_CPU=1, MAX_MEMORY 1073741824, MIN_MEMORY=1073741824,
MAX_IOPS 128, MAX_DISK_SIZE 536870912, MAX_SESSION_NUM 64, MIN_IOPS=128;
Query OK, 0 rows affected
查看资源规格模板配置
obclient> SELECT NAME, MAX_CPU, MAX_MEMORY, MAX_DISK_SIZE
FROM __ALL_UNIT_CONFIG
WHERE NAME LIKE 'standby_unit_config_template';
+------------------------------+---------+------------+---------------+
| NAME | MAX_CPU | MAX_MEMORY | MAX_DISK_SIZE |
+------------------------------+---------+------------+---------------+
| standby_unit_config_template | 1 | 1073741824 | 536870912 |
+------------------------------+---------+------------+---------------+
1 row in set
删除资源规格模板
obclient> DROP RESOURCE UNIT standby_unit_config_template;
Query OK, 0 rows affected
主集群的租户创建成功后,需要监控备集群上的租户是否创建成功。
备集群创建租户的过程中可能会卡住,最常见的原因是备集群资源不足,创建租户资源池失败,需要持续监控备集群的租户是否创建成功。
具体操作操作如下:
在主集群上,查询
V$OB_STANDBY_STATUS
视图的SYNCHRONIZATION_STATUS
列。如果显示
SYS SCHEMA NOT SYNC
,则表示系统租户的 Schema 不同步,可能出现了备集群创建租户卡住的情况。在备集群上,查看
V$OB_CLUSTER_STATS
视图,观察各个租户的 Schema 和用户数据的同步进度。其中,
tenant_id
为1
表示系统租户,对比主集群和备集群的REFRESHED_SCHEMA_VERSION
,确认备集群系统租户的 DDL 的同步进度,如果落后于主集群,则说明可能出现备集群同步创建租户的 DDL 卡住的情况。
关于备集群创建租户时卡住问题的排查,请参见 备集群创建租户时卡住的问题。
租户日常维护注意事项
在主集群上调整租户的资源配置时,建议也手动调整备集群的租户资源配置。
建议尽量保证主集群和备集群的资源配置相同。由于备集群不会自动同步租户资源配置修改操作,调整主集群的租户资源配置后,建议也手动调整备集群的租户资源配置。
在主集群上调整数据的多版本保留时间,保证备集群在一段时间内能成功执行 Failover。
例如,设置租户级系统变量
undo_retention
来调整多版本数据的保留时间,单位为秒。更多系统变量undo_retention
的信息,请参见 undo_retention。obclient> SET GLOBAL undo_retention = 1800;
该示例表示,设置了多版本数据的保留时间为半小时后,备集群在落后主集群半小时内均可以成功执行 Failover。
在主集群上调整租户级配置项时,需要手动修改备集群的配置项。
由于租户级配置项不会自动同步到备集群,当主集群设置了租户级配置项后,建议也手动设置备集群的配置项。