Files
oceanbase/docs/docs-cn/6.administrator-guide/3.basic-database-management/5.tenants/9.tenant-management-variables.md
2022-02-10 14:51:49 +08:00

76 lines
1.9 KiB
Markdown

租户管理变量
===========================
租户的变量分为 Global 级别和 Session 级别。Session 级别的变量继承自 Global 级别的变量。同时,Session 建立后可以设定 Session 级别的变量。Session 级别的变量在 Session 中覆盖 Global 级别的变量。
查询变量
-------------
下述展示查询 Session/Global 级别变量语句的语法:
```sql
SHOW [GLOBAL] VARIABLES [SHOW_VARIABLES_OPTS]
SHOW_VARIABLES_OPTS:
[LIKE 'pattern' | WHERE expr]
```
示例:
```sql
obclient> SHOW VARIABLES LIKE 'ob_query_timeout';
obclient> SHOW GLOBAL VARIABLES WHERE variable_name LIKE 'ob_query_timeout';
```
sys 租户可以通过内部表 `__all_virtual_sys_variable` 查询其他所有普通租户的 Global 变量。
如果连接 sys 租户后再切换到普通租户,此时查询的 Session 级别变量仍然是 sys 租户的 Session 级别的变量。查询的 Global 级别的变量是切换后普通租户的 Global 级别变量。
设置变量
-------------
设置 Session 级别的变量仅对当前 Session 有效,对其他 Session 无效。设置 Global 级别的变量对当前 Session 无效,需要重新登录建立新的 Session 才会生效。
下述展示设置 Session/Global 级别变量语句的语法:
```sql
SET [GLOBAL] VARIABLE_NAME = 'VALUE'
```
示例:
```sql
obclient> SET ob_query_timeout = 20000000;
obclient> SET GLOBAL ob_query_timeout = 20000000;
```
变量中类型为 `INT`,并且在 `SHOW VARIABLE` 命令中显示 `ON/OFF` 或者 `True/False` 的变量,可以通过如下任意方法设置值:
```sql
SET @@foreign_key_checks = ON
SET @@foreign_key_checks = 1
SET @@foreign_key
```
以上三种方式的 Session 级别变量的设置是等效的。
更多变量参考信息,请参见 [系统变量参考](../../../14.reference-guide-oracle-mode/2.system-variable-1/2.auto_increment_increment-2.md)。