ITPub博客

首页 > 数据库 > 国内数据库 > 【手摸手玩转 OceanBase 79】多租户管理参数如何设置?

【手摸手玩转 OceanBase 79】多租户管理参数如何设置?

原创 国内数据库 作者:13579NB232 时间:2023-01-19 15:27:15 0 删除 编辑

OceanBase 数据库的配置项分为集群级配置项和租户级配置项。您可以通过配置项的设置使 OceanBase 数据库的行为符合您业务的要求。

参数分类

OceanBase 数据库的配置项分为集群级配置项和租户级配置项。通过配置项的设置可以控制整个集群的负载均衡、合并时间、合并方式、资源分配和模块开关等功能。

  • 集群级配置项:作用范围为整个集群所有 OBServer。

  • 租户级配置项:作用范围为当前租户在集群内所在的 OBServer。

名称以 "_" 开头的配置项称为隐藏配置项,如: _ob_max_thread_num 。仅供开发人员在故障排查或紧急运维时使用。本文不对隐藏配置项进行详细介绍,下文中的配置项均不包含隐藏配置项。

不同租户对配置项的查看和修改级别如下表所示:

租户类型 参数查看 参数设置
系统租户 集群级配置项、租户级配置项
说明
SHOW PARAMETERS 语句通过指定  TENANT 关键字来查看指定租户的配置项信息
集群级配置项、租户级配置项
说明
系统租户下,可以通过指定  TENANT 关键字来修改全部或指定租户的租户级配置项
普通租户 集群级配置项和本租户的租户级配置项 本租户的租户级配置项

当前 OceanBase 数据库中配置项的主要数据类型及其相关说明如下表所示:

数据类型 说明
BOOL boolean 类型(布尔),支持 true/false。
CAPACITY 容量单位,支持 b (字节)、k (KB,千字节)、m (MB,百万字节)、 g (GB,10亿字节)、t (TB,万亿字节)、p(PB,千万亿字节)。单位不区分大小写字母,默认为 m。
DOUBLE 双精度浮点数,占用 64 bit 存储空间,精确到小数点后 15 位,有效位数为 16位 。
INT int64 整型,支持正负整数和 0。
MOMENT 时刻。格式为  hh:mm(例如  02:00);或者特殊值  disable,表示不指定时间。目前仅用于  major_freeze_duty_time 参数。
STRING 字符串。用户输入的字符串的值。
STRING_LIST 字符串列表,即以分号 (;)分隔的多个字符串。
TIME 时间类型。支持 us (微秒)、ms (毫秒)、s (秒), m (分钟)、h (小时)、d (天)等单位。如果不加后缀,默认为秒(s)。单位不区分大小写字母。

通过 SQL 语句修改配置项

修改配置项的 SQL 语法如下:

ALTER SYSTEM [SET]
parameter_name = expression [SCOPE = {SPFILE | BOTH}] [COMMENT [=] 'text']
[ TENANT [=] ALL|tenant_name ] {SERVER [=] 'ip:port' | ZONE [=] 'zone'};

参数说明:

  • parameter_name:指定要修改的配置项名称。

  • expression:指定修改后的配置项的值。

  • COMMENT 'text':用于添加关于本次修改的注释。该参数为可选,建议不要省略。

  • SCOPE:指定本次配置项修改的生效范围,默认为  BOTH。

    • SPFILE:表示只修改内部表中的配置项值,当 OBServer 重启以后才生效。仅重启生效的配置项支持。

    • BOTH:表示既修改内部表中的配置项值,又修改内存中的配置项值,修改立即生效,且 OBServer 重启以后配置值仍然生效。

  • TENANT:用于在系统租户下,修改所有或指定租户的租户级配置项。

    • ALL:所有租户。

    • tenant_name:指定租户。

  • SERVER:只修改指定 Server 实例的某个配置项。

  • ZONE:表明本配置项的修改针对指定集群的特定 Server 类型,否则,针对所有集群的特定 Server 类型。

说明

  • 同时修改多个配置项时,以逗号(,)分隔。
  • 集群级配置项不能通过普通租户设置,也不可以通过系统租户(即  sys 租户) 指定为普通租户设置,仅支持在系统租户下配置。例如,执行  ALTER SYSTEM SET memory_limit='100G' TENANT='test_tenant' 语句将导致报错,因为  memory_limit 是集群级配置项。
  • 租户级配置项可以直接在本租户下修改,也可以在系统租户下通过指定  TENANT 关键字来修改。
  • ALTER SYSTEM 语句不能同时指定 Zone 和 OBServer。并且在指定 Zone 时,仅支持指定一个 Zone;指定 OBServer 时,仅支持指定一个 OBServer。如果修改时,不指定 Zone 也不指定 OBServer,则集群级配置项会在整个集群所有 OBServer 上生效;租户级配置项会在当前租户在集群内所在的 OBServer 上生效。
  • 确认一个配置项为集群级别还是租户级别,可根据  SHOW PARAMETERS 语句执行结果中的  scope 列对应的值来判断:
  • scope 值为  CLUSTER 则表示为集群级配置项。
  • scope 值为  TENANT 则表示为租户级配置项。

示例

修改  log_disk_utilization_threshold 配置项的示例如下:

obclient> ALTER SYSTEM SET log_disk_utilization_threshold = 20;

修改指定 Zone 的  log_disk_utilization_threshold 配置项的示例如下:

obclient> ALTER SYSTEM SET log_disk_utilization_threshold = 20 ZONE='z1';

修改指定 OBServer 的  log_disk_utilization_threshold 配置项的示例如下:

obclient> ALTER SYSTEM SET log_disk_utilization_threshold = 20 SERVER='XXX.XXX.XXX.XXX:XXXXX';

在系统租户下,修改所有或指定租户的租户级配置项。示例如下:

obclient> ALTER SYSTEM SET log_disk_utilization_threshold = 20 TENANT='ALL';
obclient> ALTER SYSTEM SET log_disk_utilization_threshold = 20 TENANT='MYSQL';

说明

执行成功以后,所有被指定租户的配置项均会被修改。

通过 SQL 语句查看配置项

查看配置项的 SQL 语法如下:

SHOW PARAMETERS [LIKE 'pattern' | WHERE expr] [TENANT = tenant_name]

说明

  • 系统租户下,可以查看本租户的租户级配置项和集群级配置项信息。同时,可以通过指定  TENANT 关键字来查看指定租户的配置项信息。
  • 普通租户下,可以查看本租户的租户级配置项以及系统租户的集群级配置项信息。
  • WHERE expr 中可以指定的列属性与  SHOW PARAMETERS 返回结果中的列属性一致。

通过  SHOW PARAMETERS 语句查看配置项的示例如下:

obclient> SHOW PARAMETERS WHERE scope = 'tenant';
obclient> SHOW PARAMETERS WHERE svr_ip != 'XXX.XXX.XXX.XXX';
obclient> SHOW PARAMETERS WHERE INFO like '%ara%';
obclient> SHOW PARAMETERS LIKE 'large_query_threshold';
+-------+----------+-----------------+----------+-----------------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+---------+---------+---------+-------------------+
| zone  | svr_type | svr_ip          | svr_port | name                  | data_type | value | info                                                                                                                         | section | scope   | source  | edit_level        |
+-------+----------+-----------------+----------+-----------------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+---------+---------+---------+-------------------+
| zone1 | observer | XXX.XXX.XXX.XXX |     2882 | large_query_threshold | NULL      | 5s    | threshold for execution time beyond which a request may be paused and rescheduled as a \'large request\'. Range: [1ms, +∞)   | TENANT  | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
+-------+----------+-----------------+----------+-----------------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+---------+---------+---------+-------------------+
1 row in set (0.01 sec)

返回结果中的列属性如下表所示:

列名 含义
zone 所在的 Zone
svr_type 机器类型
svr_ip 机器 IP
svr_port 机器端口
name 配置项名
data_type 配置项数据类型,包括  NUMBER 、 STRING 、 CAPACITY 等
value 配置项值
说明
由于在修改配置项值时,支持修改指定 Zone 或 Server 的配置项值,故不同 Zone 或 Server 对应的配置项的值可能不同。
info 配置项的说明信息
section 配置项所属的分类:
  • SSTABLE:表示 SSTable 相关的配置项。
  • OBSERVER:表示 OBServer 相关的配置项。
  • ROOT_SERVICE:表示 RootService 相关的配置项。
  • TENANT:表示租户相关的配置项。
  • TRANS:表示事务相关的配置项。
  • LOAD_BALANCE:表示负载均衡相关的配置项。
  • DAILY_MERGE:表示合并相关的配置项。
  • CLOG:表示 Clog 相关的配置项。
  • LOCATION_CACHE:表示 Location Cache 相关的配置项。
  • CACHE:表示缓存相关的配置项。
  • RPC:表示 RPC 相关的配置项。
  • OBPROXY:表示 OBProxy 相关的配置项。
scope 配置项范围属性:
  • TENANT:表示该配置项为租户级配置项
  • CLUSTER:表示该配置项为集群级配置项
source 当前值来源:
  • TENANT
  • CLUSTER
  • CMDLINE
  • OBADMIN
  • FILE
  • DEFAULT
edit_level 定义该配置项的修改行为:
  • READONLY:表示该参数不可修改。
  • STATIC_EFFECTIVE:表示该参数可修改但需要重启 OBServer 才会生效。
  • DYNAMIC_EFFECTIVE:表示该参数可修改且修改后动态生效。

更多信息

更多配置项参考信息,请参见《系统参考》中的  系统配置项 。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026124/viewspace-2932782/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2023-01-18

  • 博文量
    184
  • 访问量
    93228