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

OceanBase管理租户变量

2023-02-25
750

本节主要介绍租户管理变量的查询及设置方法。

租户的变量分为 Global 级别和 Session 级别。Session 级别的变量默认继承自 Global 级别的变量。同时,Session 建立后可以设定 Session 级别的变量。

查询变量

通过 SHOW 语句查询某个变量

您可以通过 SHOW 语句或视图来查询变量值。

通过 SHOW 语句查询 Session/Global 级别变量的语法如下:

  • 查询 Session 级别变量

    SHOW [SESSION] VARIABLES [LIKE 'pattern' | WHERE expr]
    
  • 查询 Global 级别变量

    SHOW GLOBAL VARIABLES [LIKE 'pattern' | WHERE expr]
    

其中,pattern 表示变量关键字。

示例:

obclient> SHOW VARIABLES LIKE 'ob_query_timeout';

obclient> SHOW SESSION VARIABLES LIKE 'ob_query_timeout';

obclient> SHOW GLOBAL VARIABLES WHERE variable_name LIKE 'ob_query_timeout';

通过视图查询变量

sys 租户可以通过 oceanbase.CDB_OB_SYS_VARIABLES 查询所有租户的系统变量信息。

示例如下:

obclient> SELECT * FROM oceanbase.CDB_OB_SYS_VARIABLES WHERE VARIABLE_NAME = 'ob_query_timeout';

MySQL 租户还可以通过查询以下视图来获取 Session/Global 级别的变量值:

示例如下:

obclient> SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'ob_query_timeout';

obclient> SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME = 'ob_query_timeout';

设置变量

设置 Session 级别的变量仅对当前 Session 有效,对其他 Session无效。设置 Global 级别的变量对当前 Session 无效,需要重新登录建立新的 Session 才会生效。

设置 Session/Global 级别变量语句的语法如下:

  • 设置 Session 级别变量

    SET [SESSION] VARIABLE_NAME = 'VALUE';
    

    说明

    Oracle 模式还可以通过 ALTER SYSTEM SESSION SET VARIABLE_NAME = 'VALUE'; 语句设置 Session 级别的变量。

  • 设置 Global 级别变量

    SET GLOBAL VARIABLE_NAME = 'VALUE';
    

    其中,MySQL 模式下设置 Global 级别变量,要求当前用户拥有 SUPER 权限或 ALTER SYSTEM 权限。

    说明

    Oracle 模式还可以通过 ALTER SYSTEM SET VARIABLE_NAME = 'VALUE'; 语句设置 Global 级别的变量。

说明

  • Oracle 模式下,查看权限的相关操作请参见 查看用户权限。如果您没有所需的权限,请联系管理员为您添加,为用户添加权限的相关操作请参见 修改用户权限

  • MySQL 模式下,查看当前拥有权限的操作请参见 查看用户权限。如果您没有所需的权限,请联系管理员为您添加,为用户添加权限的相关操作请参见 修改用户权限

示例:

obclient> SET ob_query_timeout = 20000000;

obclient> SET SESSION ob_query_timeout = 20000000;

obclient> SET GLOBAL ob_query_timeout = 20000000;

对于变量中类型为 INT, 并且在 SHOW VARIABLES 命令中显示 ON/OFF 或者 True/False的变量,可以通过如下任意方法设置变量值。

obclient> SET @@foreign_key_checks = ON;

obclient> SET @@foreign_key_checks = 1;

以上两种方式的 Session 级别变量的设置是等效的。

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

评论