暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ob中show parameters和show variables异同

手机用户3302 2025-02-28
33

ob中通过show parameters查询配置项;show variables查看系统变量(mysql模式)。

配置项

通过配置项的设置可以控制集群的负载均衡、合并时间、合并方式、资源分配和模块开关等功能。

配置项分类

ob数据库的配置项分为集群级配置项和租户级配置项。

  • 集群级配置项:指适用于整个 OceanBase 数据库集群的配置选项,它们具有全局性质,用于配置整个集群的基本信息、性能参数、安全选项等等。这些配置项通常包括数据备份和恢复、负载均衡等方面的配置选项。集群级配置项通常是在集群启动时进行配置,配置后不轻易修改。

  • 租户级配置项:指适用于租户级别的配置选项,它们是针对单个租户或多个租户的配置选项。用于对单个租户或多个租户进行特定的配置和优化。这些配置项通常包括存储引擎参数、SQL 执行策略、访问控制等方面的配置选项。租户级配置项通常可以在租户创建和管理时进行配置,可以随时根据需要进行修改。


系统变量

通过系统变量的设置可以控制数据库系统的各种行为,如缓存大小、并发连接数、CPU 使用率、内存使用率等等。同时,系统变量也可以用于配置数据库系统的各种功能。

系统变量分类

OceanBase 数据库的系统变量分为全局变量和 Session 变量。

  • Global 变量:表示 Global 级别的修改,数据库同一租户内的不同用户共享全局变量。全局变量的修改不会随会话的退出而失效。此外,全局变量修改后,对当前已打开的 Session 不生效,需要重新建立 Session 才能生效。

  • Session 变量:表示 Session 级别的修改。当客户端连接到数据库后,数据库会复制全局变量来自动生成 Session 变量。Session 变量的修改仅对当前 Session 生效。


配置项与系统变量的区分

对比项配置项系统变量
生效范围分为集群、Zone、机器和租户。分为租户的 Global 或 Session 级别。
生效方式
  • 动态生效:edit_level 为 dynamic_effective
  • 重启生效:edit_level 为 static_effective
  • 设置 Session 级别的变量仅对当前 Session 有效,对其他 Session 无效。
  • 设置 Global 级别的变量对当前 Session 无效,需要重新登录建立新的 Session 才会生效。
修改方式
  • 支持通过 SQL 语句修改,示例:
    ALTER SYSTEM SET schema_history_expire_time='1h';
  • 支持通过启动参数修改,示例:
    cd /home/admin/oceanbase && ./bin/observer -o "schema_history_expire_time='1h'";
仅支持通过 SQL 语句修改,示例如下:
  • MySQL 模式
    SET ob_query_timeout = 20000000;
    SET GLOBAL ob_query_timeout = 20000000;
  • Oracle 模式
    ALTER SESSION SET ob_query_timeout = 20000000;
    ALTER SYSTEM SET ob_query_timeout = 20000000;
    或者
    SET ob_query_timeout = 20000000;
    SET GLOBAL ob_query_timeout = 20000000;
查询方式可以使用 SHOW PARAMETERS 语句查询。示例:SHOW PARAMETERS LIKE 'schema_history_expire_time';可以使用 SHOW [GLOBAL] VARIABLES 语句查询。示例如下:
  • MySQL 模式
    SHOW VARIABLES LIKE 'ob_query_timeout';
    SHOW GLOBAL VARIABLES LIKE 'ob_query_timeout';
  • Oracle 模式
    SELECT * FROM SYS.TENANT_VIRTUAL_SESSION_VARIABLE WHERE VARIABLE_NAME = 'ob_query_timeout';
    SELECT * FROM SYS.TENANT_VIRTUAL_GLOBAL_VARIABLE WHERE VARIABLE_NAME = 'ob_query_timeout';
持久化持久化到内部表与配置文件,可以在 /home/admin/oceanbase/etc/observer.config.bin 与 /home/admin/oceanbase/etc/observer.config.bin.history 文件中查询该配置项。仅 Global 级别的变量会持久化,Session 级别的变量不会进行持久化。
生命周期长,从进程启动到退出。短,需要租户的 Schema 创建成功以后才生效。


视图 GV$OB_PARAMETERS 用于展示租户所在的所有 OBServer 节点上的配置项信息

但根据配置项里各个参数,有的在gv$ob_parameters并没有查询到。

参考:

配置项和系统变量概述:

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013018

配置项总览:

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013478

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论