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

OceanBase Oracle模式下运维常用的变量

原创 张玉龙 2023-06-17
1862

说明

  • OceanBase 数据库的系统变量分为全局变量(GLOBAL)和 Session 变量(SESSION)。
  • 全局变量:表示 Global 级别的修改,数据库同一租户内的不同用户共享全局变量。全局变量的修改不会随会话的退出而失效。此外,全局变量修改后,对当前已打开的 Session 不生效,需要重新建立 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'; # Global 级别的变量查询 obclient> SHOW GLOBAL VARIABLES LIKE 'ob_query_timeout'; obclient> SELECT * FROM SYS.TENANT_VIRTUAL_GLOBAL_VARIABLE WHERE VARIABLE_NAME = 'ob_query_timeout';

修改方式

# Session 级别的修改变量 obclient> SET ob_query_timeout = 7200000000; obclient> ALTER SESSION SET ob_query_timeout = 7200000000; # Global 级别的修改变量 obclient> SET GLOBAL ob_query_timeout = 7200000000; obclient> ALTER SYSTEM SET ob_query_timeout = 7200000000;

autocommit

  • 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

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

文章被以下合辑收录

评论