说明
- OceanBase 数据库的系统变量分为全局变量(GLOBAL)和 Session 变量(SESSION)。
- 全局变量:表示 Global 级别的修改,数据库同一租户内的不同用户共享全局变量。全局变量的修改不会随会话的退出而失效。此外,全局变量修改后,对当前已打开的 Session 不生效,需要重新建立 Session 才能生效。
- Session 变量:表示 Session 级别的修改。当客户端连接到数据库后,数据库会复制全局变量来自动生成 Session 变量。Session 变量的修改仅对当前 Session 生效。
查询方式
obclient> SHOW VARIABLES LIKE 'ob_query_timeout';
obclient> SELECT * FROM SYS.TENANT_VIRTUAL_SESSION_VARIABLE WHERE VARIABLE_NAME = 'ob_query_timeout';
obclient> SHOW GLOBAL VARIABLES LIKE 'ob_query_timeout';
obclient> SELECT * FROM SYS.TENANT_VIRTUAL_GLOBAL_VARIABLE WHERE VARIABLE_NAME = 'ob_query_timeout';
修改方式
obclient> SET ob_query_timeout = 7200000000;
obclient> ALTER SESSION SET ob_query_timeout = 7200000000;
obclient> SET GLOBAL ob_query_timeout = 7200000000;
obclient> ALTER SYSTEM SET ob_query_timeout = 7200000000;
autocommit
| 属性 |
描述 |
| 变量类型 |
bool |
| 默认值 |
1 |
| 取值范围 |
0:不自动提交 |
|
1:自动提交 |
| 生效范围 |
GLOBAL、SESSION |
| 建议值 |
根据业务需求设置 |
ob_query_timeout
- ob_query_timeout 用于设置对 SQL 语句进行 DML 操作的超时时间,单位是微秒(μs)。
- 1秒(s) = 1000 毫秒(ms) = 1,000,000 微秒(μs) = 1,000,000,000 纳秒(ns) = 1,000,000,000,000 皮秒(ps)
| 属性 |
描述 |
| 变量类型 |
int |
| 默认值 |
10,000,000 |
| 取值范围 |
[0, 3216672000000000] |
| 生效范围 |
GLOBAL、SESSION |
| 建议值 |
根据业务需求设置,考虑 7200000000(2小时) |
ob_trx_timeout
- ob_trx_timeout 用于设置事务超时时间,单位是微秒(μs)。
| 属性 |
描述 |
| 变量类型 |
int |
| 默认值 |
100,000,000 |
| 取值范围 |
NULL |
| 生效范围 |
GLOBAL、SESSION |
| 建议值 |
根据业务需求设置,考虑 7200000000(2小时) |
ob_trx_idle_timeout
- ob_trx_idle_timeout 用于设置事务空闲超时时间,即事务中两条语句之间的执行间隔超过该值时超时,单位是微秒(μs)。
| 属性 |
描述 |
| 变量类型 |
int |
| 默认值 |
120,000,000 |
| 取值范围 |
[100000000,+∞) |
| 生效范围 |
GLOBAL、SESSION |
| 建议值 |
根据业务需求设置,考虑 7220000000(2小时+20秒) |
ob_trx_lock_timeout
- ob_trx_lock_timeout 用于设置事务的等锁超时时长,单位是微秒(μs)。
| 属性 |
描述 |
| 变量类型 |
int |
| 默认值 |
-1 |
| 取值范围 |
[0,+∞) |
| 生效范围 |
GLOBAL、SESSION |
| 建议值 |
根据业务需求设置,考虑 300000000(5分钟) |
connect_timeout
- connect_timeout 用于设置连接超时时间,单位为秒。
| 属性 |
描述 |
| 变量类型 |
int |
| 默认值 |
10 |
| 取值范围 |
[2, 31536000] |
| 生效范围 |
GLOBAL |
| 建议值 |
10 |
group_concat_max_len
- group_concat_max_len 用于设置允许的 GROUP_CONCAT() 函数结果的最大长度,单位为字节。
| 属性 |
描述 |
| 变量类型 |
uint |
| 默认值 |
1024 |
| 取值范围 |
[4, 18446744073709551615] |
| 生效范围 |
GLOBAL、SESSION |
| 建议值 |
32767 |
lower_case_table_names
- lower_case_table_names 用于设置是否对大小写敏感。
- 该变量仅对 DataBase 和 Table 对象名生效。
| 属性 |
描述 |
| 变量类型 |
int |
| 默认值 |
1 |
| 取值范围 |
0:表名将按照指定的大小写形式进行存储,并以区分大小写形式进行比较 |
|
1:表名将按照小写形式进行存储,并以不区分大小写形式进行比较 |
|
2:表名将按照指定的大小写形式进行存储,并以不区分大小写形式进行比较 |
| 生效范围 |
GLOBAL |
| 是否可修改 |
该变量仅支持使用 CREATE TENANT 语句创建租户时指定,租户创建后不能通过 SQL 语句修改 |
| 建议值 |
1 |
- 使用 CREATE TENANT 语句创建租户时,指定 lower_case_table_names 变量的值为 0 的示例如下:
CREATE TENANT IF NOT EXISTS t1 zone_list = ('zone1'), primary_zone = 'zone1', resource_pool_list = ('pool1') SET ob_compatibility_mode = 'MYSQL', lower_case_table_names = 0;
ob_compatibility_mode
- ob_compatibility_mode 用于指定租户的兼容模式。
| 属性 |
描述 |
| 变量类型 |
enum |
| 默认值 |
MYSQL |
| 取值范围 |
MYSQL:表示兼容 MYSQL |
|
ORACLE:表示兼容 ORACLE |
| 生效范围 |
GLOBAL、SESSION |
| 是否可修改 |
该变量仅支持使用 CREATE TENANT 语句创建租户时指定,租户创建后不能通过 SQL 语句修改 |
| 建议值 |
根据业务需求设置 |
- 使用 CREATE TENANT 语句创建租户时,指定 ob_compatibility_mode 变量的值为 mysql 的示例如下:
CREATE TENANT IF NOT EXISTS t1 zone_list = ('zone1'), primary_zone = 'zone1', resource_pool_list = ('pool1') SET ob_compatibility_mode = 'MYSQL', lower_case_table_names = 0;
max_allowed_packet
- max_allowed_packet 用于设置最大网络包大小,单位是 Byte。
| 属性 |
描述 |
| 变量类型 |
int |
| 默认值 |
4,194,304 |
| 取值范围 |
[1024,1073741824] |
| 生效范围 |
GLOBAL、SESSION |
| 是否可修改 |
该变量可通过 SET GLOBAL 语句修改 Global 生效方式下的取值,不可通过 SET SESSION 语句修改 Session 生效方式下的取值。Session 值仅支持查看,且 Session 值只能与 Global 值相同。 |
| 建议值 |
536,870,912 |
ob_plan_cache_percentage
- ob_plan_cache_percentage 用于设置计划缓存可使用内存占租户内存的百分比。
- 计划缓存最多可使用内存(内存上限绝对值)= 租户内存上限 * ob_plan_cache_percentage/100。
| 属性 |
描述 |
| 变量类型 |
int |
| 默认值 |
5 |
| 取值范围 |
[0, 100] |
| 生效范围 |
GLOBAL |
| 建议值 |
10 |
ob_sql_work_area_percentage
- ob_sql_work_area_percentage 用于 SQL 执行的租户内存百分比限制。
| 属性 |
描述 |
| 变量类型 |
int |
| 默认值 |
5 |
| 取值范围 |
[0, 100] |
| 生效范围 |
GLOBAL |
| 建议值 |
10 |
ob_tcp_invited_nodes
- ob_tcp_invited_nodes 用于设置租户的 IP 白名单,支持百分号(%) 、短横线(_) 和 IP(多个 IP 之间用逗号分隔),支持 IP 列表匹配、掩码匹配和模糊匹配。
| 属性 |
描述 |
| 变量类型 |
varchar |
| 默认值 |
127.0.0.1,::1 |
| 取值范围 |
符串长度小于 1024 |
| 生效范围 |
GLOBAL |
| 建议值 |
% |
read_only
- read_only 用于设置租户是否为只读模式。
- 设置后,会影响该租户下的所有普通用户,不影响 root 权限用户。
| 属性 |
描述 |
| 变量类型 |
bool |
| 默认值 |
0 |
| 取值范围 |
0:租户为读写模式 |
|
1:租户为只读模式 |
| 生效范围 |
GLOBAL |
| 建议值 |
根据业务需求设置 |
recyclebin
- recyclebin 用于设置是否开启回收站功能。
- 启用回收站后,删除的表及其依赖对象将放置在回收站中;当禁用回收站时,删除的表及其依赖对象不会放置在回收站中,会直接删除。
| 属性 |
描述 |
| 变量类型 |
bool |
| 默认值 |
OFF |
| 取值范围 |
OFF(0):表示不开启 |
|
ON(1):表示开启 |
| 生效范围 |
GLOBAL、SESSION |
| 建议值 |
ON |
transaction_isolation
- transaction_isolation 用于设置事务的隔离级别。
| 属性 |
描述 |
| 变量类型 |
varchar |
| 默认值 |
READ-COMMITTED |
| 取值范围 |
READ-COMMITTED |
|
REPEATABLE-READ |
|
SERIALIZABLE |
| 生效范围 |
GLOBAL、SESSION |
| 建议值 |
READ-COMMITTED |
tx_isolation
| 属性 |
描述 |
| 变量类型 |
varchar |
| 默认值 |
READ-COMMITTED |
| 取值范围 |
READ-COMMITTED |
|
REPEATABLE-READ |
|
SERIALIZABLE |
| 生效范围 |
GLOBAL、SESSION |
| 建议值 |
READ-COMMITTED |
undo_retention
- undo_retention 表示系统应保留的多版本数据范围,单位为秒,在转储时控制多版本数据的回收。
- OceanBase 数据库转储的数据会保留多个版本的历史数据行,您可以通过 undo_retention 来控制转储中保留的多版本数据范围。
其中:
当 undo_retention 的值为 0 时,表示未开启多版本转储,即转储文件仅保留当前最新版本的行数据。
当 undo_retention 的值大于 0 时,表示开启多版本转储,并且转储文件保留这段时间(单位为秒)以内的多版本行数据。
- 租户开启多版本转储后,大版本合并会保留对应的增量转储文件,但 Major SSTable 中不会存放多版本数据。建议该参数不要设置过大,防止因参数过大而导致保留的 SSTable 数量超限。
| 属性 |
描述 |
| 变量类型 |
int |
| 默认值 |
1800 |
| 取值范围 |
[0, 232) |
| 生效范围 |
GLOBAL |
| 建议值 |
1800 |
wait_timeout
- wait_timeout 用于设置服务器关闭非交互连接之前等待活动的秒数。
- 在会话启动时,会根据全局 wait_timeout 的值或全局 interactive_timeout 的值来初始化会话 wait_timeout 的值,具体根据全局 wait_timeout 的值还是全局 interactive_timeout 的值取决于客户端类型。客户端类型由 mysql_real_connect() 的连接选项 CLIENT_INTERACTIVE 定义。
| 属性 |
描述 |
| 变量类型 |
int |
| 默认值 |
28800 |
| 取值范围 |
[1, 31536000] |
| 生效范围 |
GLOBAL、SESSION |
| 建议值 |
259200 |
default_password_lifetime
- default_password_lifetime 用于设置密码的过期时间。
| 属性 |
描述 |
| 变量类型 |
uint |
| 默认值 |
0 |
| 取值范围 |
[0,65535] |
| 生效范围 |
GLOBAL |
| 建议值 |
根据业务需求设置 |
validate_password_check_user_name
- validate_password_check_user_name 用于设置用户密码是否可以和用户名相同。
- 该变量需要与 validate_password_policy 变量配合使用,仅当 validate_password_policy 取值为 MEDIUM 时,该变量才会生效。
| 属性 |
描述 |
| 变量类型 |
enum |
| 默认值 |
off |
| 取值范围 |
on:表示用户密码不可以和用户名相同 |
|
off:表示用户密码可以和用户名相同 |
| 生效范围 |
GLOBAL |
| 建议值 |
on |
validate_password_length
- validate_password_length 设置用户密码最小长度。
| 属性 |
描述 |
| 变量类型 |
uint |
| 默认值 |
0 |
| 取值范围 |
[0,2147483647] |
| 生效范围 |
GLOBAL |
| 建议值 |
0 |
validate_password_mixed_case_count
- validate_password_mixed_case_count 用于设置用户密码至少包含的大写字母个数以及至少包含的小写字母个数。
| 属性 |
描述 |
| 变量类型 |
uint |
| 默认值 |
0 |
| 取值范围 |
[0,2147483647] |
| 生效范围 |
GLOBAL |
| 建议值 |
0 |
validate_password_number_count
- validate_password_number_count 用于设置用户密码至少包含的数字个数。
| 属性 |
描述 |
| 变量类型 |
uint |
| 默认值 |
0 |
| 取值范围 |
[0,2147483647] |
| 生效范围 |
GLOBAL |
| 建议值 |
0 |
validate_password_policy
- validate_password_policy 用于设置密码检查策略。
| 属性 |
描述 |
| 变量类型 |
enum |
| 默认值 |
LOW |
| 取值范围 |
LOW:表示仅包含密码常见的检测 |
|
MEDIUM:表示包括密码长度检测、大写字母个数检测、小写字母个数检测、数字个数检测、特殊字符个数检测、用户名密码相同检测 |
| 生效范围 |
GLOBAL |
| 建议值 |
LOW |
validate_password_special_char_count
- validate_password_special_char_count 用于设置用户密码至少包含的特殊字符个数。
| 属性 |
描述 |
| 变量类型 |
uint |
| 默认值 |
0 |
| 取值范围 |
[0,2147483647] |
| 生效范围 |
GLOBAL |
| 建议值 |
0 |