ITPub博客

首页 > 数据库 > NewSQL > oceanbase数据库配置项的修改小结

oceanbase数据库配置项的修改小结

原创 NewSQL 作者:贺子_DBA时代 时间:2025-05-05 23:26:17 0 删除 编辑
oceanbase配置项主要用于运维,常用于控制机器及其以上级别的系统行为。可以作为节点启动参数和租户创建参数,也可以在节点运行时进行修改以调整系统行为,本文结合官方文档针对ob的配置项做简单的总结,不断完善中,以备后续自查。

首先查看配置项:

sys 租户和所有用户租户均可以使用 SHOW PARAMETERS 语句或视图 GV$OB_PARAMETERS 查询该配置项,

如下所示:
方式1:root@10.1.150 : (none) 21:31:44>show  parameters   like   'log_disk_size'; +-------+----------+--------------+----------+---------------+-----------+-------+----------------------------------------------------------------+------------+---------+---------+-------------------+---------------+-----------+ | zone  | svr_type | svr_ip       | svr_port | name          | data_type | value | info                                                           | section    | scope   | source  | edit_level        | default_value | isdefault | +-------+----------+--------------+----------+---------------+-----------+-------+----------------------------------------------------------------+------------+---------+---------+-------------------+---------------+-----------+ | zone1 | observer | 10.1.141 |     2882 | log_disk_size | CAPACITY  | 10G   | the size of disk space used by the log files. Range: [0, +∞)   | LOGSERVICE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | 0M            |         0 | | zone2 | observer | 10.1.142 |     2882 | log_disk_size | CAPACITY  | 10G   | the size of disk space used by the log files. Range: [0, +∞)   | LOGSERVICE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | 0M            |         0 | | zone3 | observer | 10.1.143 |     2882 | log_disk_size | CAPACITY  | 10G   | the size of disk space used by the log files. Range: [0, +∞)   | LOGSERVICE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | 0M            |         0 | +-------+----------+--------------+----------+---------------+-----------+-------+----------------------------------------------------------------+------------+---------+---------+-------------------+---------------+-----------+ 3 rows in set (0.01 sec) 方式2:root@10.1.150 : oceanbase 21:34:21>select  * from  oceanbase.GV$OB_PARAMETERS  where   NAME='log_disk_size'\G *************************** 1. row ***************************       SVR_IP: 10.1.141     SVR_PORT: 2882         ZONE: zone1        SCOPE: CLUSTER    TENANT_ID: NULL         NAME: log_disk_size    DATA_TYPE: CAPACITY        VALUE: 10G         INFO: the size of disk space used by the log files. Range: [0, +∞)      SECTION: LOGSERVICE   EDIT_LEVEL: DYNAMIC_EFFECTIVE DEFAULT_VALUE: 0M    ISDEFAULT: NO
备注:查询结果中可以看到SCOPE是cluster,表明该配置项是集群级别生效的,如果 scope 列对应的值为 TENANT,则表示该配置项为租户级别。动态生效:edit_level 为 dynamic_effective,重启生效:edit_level 为 static_effective。
注意默认查看的是本租户的配置项,如需要查看其他租户的配置项,可以在sys租户中查看,如下所示:
SHOW PARAMETERS LIKE 'log_disk_size'  TENANT='liuwenhe';  #查看某个租户的配置项
obclient>select  * from  oceanbase.GV$OB_PARAMETERS  where   NAME='log_disk_size'  and  and TENANT_ID='1002';  #查看某个租户的配置项

1、OceanBase 数据库的配置项分为集群级配置项和租户级配置项:

集群级配置项:指适用于整个 OceanBase 数据库集群的配置选项,它们具有全局性质,用于配置整个集群的基本信息、性能参数、安全选项等等。这些配置项通常包括数据备份和恢复、负载均衡等方面的配置选项。集群级配置项通常是在集群启动时进行配置,配置后不轻易修改。
租户级配置项:指适用于租户级别的配置选项,它们是针对单个租户或多个租户的配置选项。用于对单个租户或多个租户进行特定的配置和优化。这些配置项通常包括存储引擎参数、SQL执行策略、访问控制等方面的配置选项。租户级配置项通常可以在租户创建和管理时进行配置,可以随时根据需要进行修改。

2、生效方式:

配置项一般分为动态生效和重启生效两种方式,大部分配置项为动态生效方式,即不需要重启 OBServer 节点就可以生效。  动态生效:edit_level 为 dynamic_effective,重启生效:edit_level 为 static_effective;

3、配置项生效范围:

配置项生效范围:分为集群、Zone、机器和租户,但是并不是所有的配置项目都可以在集群、Zone、机器和租户的级别生效。例如集群级配置项,那就无法设置租户级别生效,也就是说集群级配置项,没办法给不同租户设置不同的值。但是集群级配置项可以针对不同observer、zone设置不同的值。

4、可以同时修改多个配置项:

同时修改多个配置项时,以逗号(,)分隔。如下所示:
root@10..150 : (none) 23:06:42>alter  system set  standby_db_preferred_upstream_log_region='beijing',log_disk_size='101G';
Query OK, 0 rows affected (0.02 sec)

5、集群级别和租户级别配置项修改途径:

1)集群级配置项不能通过普通租户设置,也不可以通过系统租户(即 sys 租户) 指定为普通租户设置,仅支持在系统租户下配置。例如,如下所示报错,因为 memory_limit 是集群级配置项。
root@10.150 : oceanbase 22:00:38>ALTER SYSTEM SET memory_limit='10G' TENANT='liuwenhe'; ERROR 5099 (42000): System config unknown root@10.150 : oceanbase 22:00:54>ALTER SYSTEM SET memory_limit='10G' ; Query OK, 0 rows affected (0.02 sec)
2)租户级配置项可以直接在本租户下修改,也可以在系统租户下通过指定 TENANT 关键字来修改。

6、修改配置项生效规则:

ALTER SYSTEM 语句不能同时指定 Zone 和 OBServer。并且在指定 Zone 时,仅支持指定一个 Zone;指定 OBServer 时,仅支持指定一个 OBServer。如果修改时,不指定 Zone 也不指定 OBServer,则集群级配置项会在整个集群所有 OBServer 上生效;租户级配置项会在当前租户在集群内所在的 OBServer 上生效。

7、修改配置项指定SCOPE的含义:

SCOPE:指定本次配置项修改的生效范围,默认为 BOTH。
SCOPE=SPFILE:表示只修改内部表中的配置项值,当 OBServer 节点重启以后才生效。仅重启生效的配置项支持。
SCOPE=BOTH:表示既修改内部表中的配置项值,又修改内存中的配置项值,修改立即生效,且 OBServer 节点重启以后配置值仍然生效;

8、如何确认持久化的值:

我们通过SHOW PARAMETERS 语句或视图 GV$OB_PARAMETERS 查询的值是正在使用中的值,那么如何确认内部表中的配置值(或者叫持久化的值)?
持久化到内部表与配置文件,可以在 /home/admin/oceanbase/etc/observer.config.bin(当前生效的持久话的值) 与 /home/admin/oceanbase/etc/observer.config.bin.history 文件(上一次持久化的值)中查询该配置项;

9、修改配置项的示例:

修改 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='Oracle';



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

请登录后发表评论 登录
全部评论
10年数据库管理员从业经历,熟悉Oracle、mysql、tidb、oceanbase、redis、 mongodb 、python等技术栈,持有11g ocm 、mysql 5.7 ocp 、tidb 5.0 ptcp、tidb 6.0 ptca、oceanbase obcp等

注册时间:2014-05-12

  • 博文量
    327
  • 访问量
    2148887