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

OceanBase数据库之租户系统变量

Tonyhacks 2023-11-07
144

租户系统变量

OceanBase 数据库的租户系统变量分为全局变量和 Session 变量。通过系统变量的设置可以使 OceanBase 数据库的行为符合业务的要求。

  • 全局变量:表示 Global 级别的修改,数据库同一租户内的不同用户共享全局变量。全局变量的修改不会随会话的退出而失效。此外,全局变量修改后,对当前已打开的 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 创建成功以后才生效。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论