首批通过分布式安全可靠测评,为关键业务系统打造
系统变量总览
更新时间:2026-04-10 11:58:02
本文根据系统变量的功能,详细地罗列了 OceanBase 数据库的系统变量。
Global 级别
安全相关
| 变量名 | 功能描述 |
|---|---|
| validate_password_check_user_name | 用于设置用户密码是否可以和用户名相同。 |
| validate_password_length | 用于设置用户密码最小长度。 |
| validate_password_mixed_case_count | 用于设置用户密码至少包含的大写字母个数以及至少包含的小写字母个数。 |
| validate_password_number_count | 用于设置用户密码至少包含的数字个数。 |
| validate_password_policy | 用于设置密码检查策略。 |
| validate_password_special_char_count | 用于设置用户密码至少包含的特殊字符个数。 |
| ob_tcp_invited_nodes | 用于设置租户的 IP 白名单,支持百分号(%) 、短横线(_) 和 IP(多个 IP 之间用逗号分隔),支持 IP 列表匹配、掩码匹配和模糊匹配。 |
| default_password_lifetime | 用于设置密码的过期时间。 |
| block_encryption_mode | 用于指定在函数 aes_encrypt 和 aes_decrypt 中使用的加密算法。 |
| sql_safe_updates | 用于设置是否启用 MySQL 的 SQL 安全模式,默认为关闭。 |
版本信息相关
| 变量名 | 功能描述 |
|---|---|
| version_comment | 用于查看 OBServer 节点的版本信息。 |
| version | 用于查看服务器的版本号。 |
| ob_last_schema_version | 用于设置该 session 中最新使用的 Schema 版本号。 |
| ob_proxy_global_variables_version | 用于设置 OBServer 节点返回给 OBproxy 所需的全局变量的最新版本信息。 |
| ob_enable_transmission_checksum | 用于设置 obproxy 和 OBServer 节点之间是否进行数据包校验和,设置后实时生效。 |
Debug 相关
| 变量名 | 功能描述 |
|---|---|
| debug_sync | 用于在 Debug 时设置同步点,与 MySQL 兼容。 |
大小写相关
| 变量名 | 功能描述 |
|---|---|
| lower_case_table_names | 用于设置是否对大小写敏感。 |
读写/查询相关
| 变量名 | 功能描述 |
|---|---|
| query_cache_size | 用于设置分配给存储历史查询结果的内存,即尚未使用的内存。 |
| query_cache_type | 用于查询缓存类型。 |
| ob_query_timeout | 用于设置查询超时时间。 |
| is_result_accurate | 当查询带有 topk 提示时,is_result_accurate 表示结果是否正确。 |
| net_buffer_length | 用于设置 OBServer 节点能接受的 SQL Query 的大小。 |
| read_only | 用于设置租户是否为只读模式。 |
| ob_read_consistency | 用于设置读一致性级别。 |
| ob_max_read_stale_time | 弱读取查询的最大延迟阈值(us)。 |
| net_read_timeout | 用于中断读之前等待连接的其它数据的秒数。 |
| net_write_timeout | 用于设置中断写之前等待块写入连接的秒数。 |
| ob_enable_index_direct_select | 用于设置是否允许用户直接查询索引表。 |
| ob_enable_aggregation_pushdown | 用于设置是否允许聚合操作下压。 |
| ob_enable_jit | 用于设置 JIT 执行引擎模式。 |
| sql_throttle_network | 用于指定请求排队时间,如果请求排队时间大于或等于该值,则不允许执行查询。 |
| parallel_servers_target | 用于设置每个 Server 上的大查询排队条件。 |
| cte_max_recursion_depth | 用于设置公共表表达式(CTE)的最大递归深度。服务器会终止执行任何超过此 CTE 值的操作。 |
| regexp_stack_limit | 用于正则表达式匹配操作的内部堆栈的最大可用内存。 |
| regexp_time_limit | 用于正则表达式匹配操作的时间限制。 |
| long_query_time | 用于设置慢查询的阈值。 |
调度程序相关
| 变量名 | 功能描述 |
|---|---|
| event_scheduler | 用于确定事件调度程序是否在服务器上启用和运行。 |
外键相关
| 变量名 | 功能描述 |
|---|---|
| foreign_key_checks | 用于设置是否在 DML/DDL 中检查外建约束。 |
副本相关
| 变量名 | 功能描述 |
|---|---|
| ob_create_table_strict_mode | 用于设置建表的严格模式。 |
| ob_default_replica_num | 用于设置每个集群中表的默认副本数。 |
回收站相关
| 变量名 | 功能描述 |
|---|---|
| recyclebin | 用于设置是否开启回收站功能。 |
| ob_enable_truncate_flashback | 用于设置是否启用表截断的闪回。 |
缓存相关
| 变量名 | 功能描述 |
|---|---|
| ob_enable_plan_cache | 用于设置是否打开 Plan Cache。 |
| ob_plan_cache_percentage | 用于设置计划缓存可使用内存占租户内存的百分比。 |
| ob_plan_cache_evict_high_percentage | 用于设置触发计划缓存淘汰的内存大小占内存上限绝对值的百分比。 |
| ob_plan_cache_evict_low_percentage | 用于设置停止淘汰计划缓存的内存大小占内存上限绝对值的百分比。 |
| ob_bnl_join_cache_size | 用于设置 Batch Nest Loop Join 一次 Cache 多少数据做一次 Batch。 |
函数相关
| 变量名 | 功能描述 |
|---|---|
| interactive_timeout | 用于设置服务器关闭交互式连接前等待活动的秒数。 |
| wait_timeout | 用于设置服务器关闭非交互连接之前等待活动的秒数。 |
| group_concat_max_len | 用于设置允许的 GROUP_CONCAT() 函数结果的最大长度。 |
集群相关
| 变量名 | 功能描述 |
|---|---|
| ob_capability_flag | 是 OBServer 节点能够提供的能力,用于和 Proxy 连接时进行能力协商,告知 Proxy 当前 OBServer 节点支持哪些功能,不支持哪些功能。 |
| ob_compatibility_mode | 用于指定租户的兼容模式。 |
| ob_route_policy | 用于设置 OBServer 节点内部选择数据副本的路由策略。 |
| performance_schema | 用于向客户端声明是否支持 Performance 信息的查询,其默认值为 OFF。
说明该变量仅用于兼容 MySQL 8.0,相关功能并不支持,可以查询及设置,设置行为不报错但不生效。 |
| resource_manager_plan | 用于激活资源管理计划。指定不同计划,会使用不同 CPU 的额度来限定资源组下的用户活动。 |
| license | 用于查看 license 的类型。 |
| ob_proxy_partition_hit | 用于设置 obproxy 是否将 SQL 语句请求的数据发送到这些数据主 Partition 所在的 OBServer 节点上。 |
| ob_org_cluster_id | 用于设置 OceanBase 集群的 CLUSTER_ID。 |
| server_uuid | 用于查看 OBServer 节点 UUID。 |
| default_storage_engine | 用于查看 OBServer 节点的默认存储引擎。 |
目录路径相关
| 变量名 | 功能描述 |
|---|---|
| datadir | 用于查看数据存储的本地磁盘路径。 |
| plugin_dir | 用于查看存放插件 DLL 的路径。 |
| secure_file_priv | 控制导入或导出到文件时可以访问的路径。 |
| ob_enable_hash_group_by | 用于设置是否打开 Hash Group by 的路径。 |
内存相关
| 变量名 | 功能描述 |
|---|---|
| ob_sql_work_area_percentage | 用于 SQL 执行的租户内存百分比限制。 |
| ob_sql_audit_percentage | 用于设置 SQL Audit 内存上限占当前租户内存的百分比。 |
| ob_reserved_meta_memory_percentage | 用于设置租户预留内存的比例,主要存储 Meta 相关的结构信息。 |
| ob_temp_tablespace_size_percentage | 用于租户磁盘中临时表空间大小的百分比限制。 |
系统日志相关
| 变量名 | 功能描述 |
|---|---|
| binlog_row_image | 用于控制是否记录全列日志。 |
| ob_enable_show_trace | 用于设置是否使用 Trace 日志。 |
| ob_log_level | 用于设置 session 级的日志级别,如果不指定则使用系统中的日志级别。 |
| tracefile_identifier | 用于在日志中增加指定内容,便于筛选行迭代跟踪日志。 |
Runtime Filter 相关
| 变量名 | 功能描述 |
|---|---|
| runtime_filter_type | 用于设置租户级别的 Runtime Filter 类型。 |
| runtime_filter_wait_time_ms | 用于设置 Runtime Filter 的最大等待时间。 |
| runtime_filter_max_in_num | 用于设置 Runtime In Filter 的 NDV (某个列中不同值的个数)个数。 |
| runtime_bloom_filter_max_size | 用于设置 Runtime Bloom Filter 的最大使用内存,单位为字节。 |
时区和日期相关
| 变量名 | 功能描述 |
|---|---|
| time_zone | 用于设置当前租户会话使用的时区,支持 '+08:00' 的 Offset 形式和 Asia/Shanghai 的地域形式取值。 |
| timestamp | TIMESTAMP 是时间戳,单位为秒,该变量影响 select now(6)的结果。 |
| system_time_zone | 用于设置服务器机器系统时区。 |
| error_on_overlap_time | 用于设置夏令时重叠区时间发生歧义时是否作报错处理。 |
| nls_language | 表示数据库国际化支持中的默认语言,用于提示信息、日期、月份名以及 NLS_SORT 和NLS_DATE_LANGUAGE 的默认值。 |
| nls_territory | 表示数据库国际化支持中的当前地域,与 nls_language 结合使用。 |
| nls_date_language | 表示数据库国际化支持中的日期默认语言。 |
| nls_calendar | 用于控制数据库使用的日历系统。 |
| ob_timestamp_service | 用于指定使用何种时间戳服务。 |
事务及事务日志相关
| 变量名 | 功能描述 |
|---|---|
| autocommit | 用于设置是否自动提交事务。 |
| tx_isolation | 用于设置事务隔离级别。 |
| ob_proxy_set_trx_executed | 用于设置用户是否通过 obproxy 发送 START TRANSACTION Syntax 给 OBServer。 |
| ob_early_lock_release | 用于控制事务是否开启提前解锁( ELR )功能。
说明该变量从 V2.2.30 版本开始废弃。ELR 产品行为调整为受租户级别配置项 |
| ob_trx_idle_timeout | 用于设置事务空闲超时时间,即事务中两条语句之间的执行间隔超过该值时超时。 |
| transaction_isolation | 用于设置事务的隔离级别。 |
| transaction_read_only | 用于控制是否只允许开启只读事务。 |
| ob_trx_lock_timeout | 用于设置事务的等锁超时时长。 |
| tx_read_only | 用于设置是否为只读事务。 |
| ob_trx_timeout | 用于设置事务超时时间。 |
| ob_trace_info | 用于透传 Trace 信息,该信息最终可透持久化到 REDO 日志中。 |
审计相关
| 变量名 | 功能描述 |
|---|---|
| ob_enable_sql_audit | 用于控制当前租户是否开启 SQL Audit 功能。 |
数据类型相关
| 变量名 | 功能描述 |
|---|---|
| nls_length_semantics | 表示 CHAR、VARCHAR2 类型的 Length 语义。 |
| nls_nchar_conv_excp | 用于控制 NCHAR/NVARCHAR2 与 CHAR/VARCHAR2 之间转换丢失数据时是否报错。 |
| nls_numeric_characters | 用于控制 Number 和字符串转换中字符串中小数分隔符和千分位分隔符的字符。 |
| nls_currency | 用于设置数字格式元素 L 的本地货币符号。 |
| nls_iso_currency | 用于设置数字格式元素 C 的本地货币符号。 |
| nls_dual_currency | 用于设置数字格式元素 U 的本地货币符号。 |
| nls_date_format | 用于控制 date 类型转 str 的格式,以及 str 隐式转 date 的格式。 |
| nls_timestamp_format | 用于控制 Timestamp 或 Timestamp 中 ltz 类型转 str 的格式,以及 str 隐式转 Timestamp 或 Timestamp 中 ltz 的格式。 |
| nls_timestamp_tz_format | 用于控制 Timestamp tz 类型转 str 的格式,以及 str 隐式转 Timestamp tz 的格式。 |
| explicit_defaults_for_timestamp | 用于指定 timestamp 数据类型在处理默认值和空值时是否启用非标准行为。 |
| log_row_value_options | 用于控制 Lob 是否使用部分更新。 |
| ob_default_lob_inrow_threshold | 用于指定建表时,表中 LOB 字段的默认行内存储阈值。 |
SQL/PL 相关
| 变量名 | 功能描述 |
|---|---|
| connect_timeout | 用于设置连接超时时间。 |
| ob_pl_block_timeout | 用于设置 PL 的最大超时时间。 |
| cursor_sharing | 用于判断处理 SQL 时是否进行参数化。 |
| innodb_strict_mode | 用于设置特定语法的 SQL 检查模式。 |
| max_connections | 用于设置整个租户的最大连接数。 |
| sql_mode | 用于设置 SQL 模式,不同的 SQL 模式对于插入等行为有很大影响。 |
| sql_quote_show_create | 用于设置是否为 SHOW CREATE TABLE 和 SHOW CREATE DATABASE 语句启动引用标识符。 |
| ob_enable_rich_error_msg | 用于控制 SQL 执行出错时是否显示 svr_ip、time、trace_id 等信息。 |
| sql_throttle_current_priority | 用于设置限流优先级,只有 sql_throttle_current_priority 小于 sql_throttle_priority 的那些 session 上的请求才会被限流。 |
| sql_throttle_priority | 用于设置限流优先级。 |
| sql_throttle_rt | 用于指定 RT 值。 |
| max_allowed_packet | 用于设置最大网络包大小。 |
| max_user_connections | 用于指定单个用户可以向 OBServer 节点建立的连接数,设置为 0 时表示不限制连接数。 |
| max_sp_recursion_depth | 用于设置可以递归调用任一指定存储过程的最大层次。 |
| sql_select_limit | 用于设置一个 Select 查询允许返回的最大行数。 |
| max_connections | 用于设置整个租户的最大连接数。 |
| ob_enable_blk_nestedloop_join | 用于设置是否允许打开 block nested loop join。 |
| parallel_max_servers | 用于设置每台 Server 上并行执行(Parallel eXecution,PX)线程池中的最大线程数。 |
优化器相关
| 变量名 | 功能描述 |
|---|---|
| optimizer_use_sql_plan_baselines | 用于控制优化器是否会使用 Plan Baseline 计划。 |
| optimizer_capture_sql_plan_baselines | 用于控制是否自动捕获新计划到 Plan Baseline。 |
| parallel_degree_policy | 用于设置并行度选择策略。 |
| parallel_degree_limit | 用于设置在使用 Auto DOP 策略时,优化器选择并行度的上限值。 |
| parallel_min_scan_time_threshold | 设置对基表扫描进行并行处理的最小评估执行时间。 |
| optimizer_dynamic_sampling | 用于控制动态采样的等级。 |
| optimizer_features_enable | 用于启用不同 OceanBase 版本优化器功能。 |
| ob_enable_transformation | 用于设置是否开启 SQL 优化器的改写功能。 |
自增列相关
| 变量名 | 功能描述 |
|---|---|
| auto_increment_increment | 用于设置自增步长,仅用于 MySQL 客户端登录。 |
| auto_increment_offset | 用于确定 AUTO_INCREMENT 列值的起点。 |
| last_insert_id | 用于返回本 session 最后一次插入的自增字段值。 |
| sql_auto_is_null | 用于控制是否获取最后插入行的自增列值。 |
| auto_increment_cache_size | 用于设置缓存的自增值个数。 |
| div_precision_increment | 用于设置除法结果精度在被除数精度基础上的增量,是 MySQL 兼容功能。 |
字符集和字符串相关
| 变量名 | 功能描述 |
|---|---|
| character_set_client | 用于设置客户端发送语句的字符集。 |
| character_set_connection | 用于设置收到语句后应转换的字符集。 |
| character_set_database | 用于设置默认数据库的字符集。 |
| character_set_results | 用于设置服务器在将结果集或错误消息发送回客户端之前应转换为的字符集。 |
| character_set_server | 用于设置服务器字符集。 |
| character_set_system | 用于查看服务器使用的字符集。 |
| collation_connection | 用于设置连接使用的字符集和字符序。 |
| collation_database | 用于设置创建数据库默认字符集和字符序。 |
| collation_server | 用于设置服务器默认字符集和字符序。 |
| character_set_filesystem | 用于设置文件系统字符集类型。 |
| sql_warnings | 用于在出现告警时控制单行 INSERT 语句是否生成信息字符串。 |
| init_connect | 用于设置服务器为每个连接的客户端执行的字符串,该字符串由一条或多条 SQL 语句组成,用分号分隔。 |
| nls_sort | 表示字符串值的排序规则。 |
| nls_comp | 表示字符串值的比较规则。 |
| nls_characterset | 用于查看数据库中 CHAR、VARCHAR2、CLOB 等数据类型的默认字符集。 |
| nls_nchar_characterset | 表示数据库默认字符集,用于 NCHAR、NVARCHAR2、NCLOB 等数据类型。 |
Session 级别
版本信息相关
| 变量名 | 功能描述 |
|---|---|
| ob_last_schema_version | 用于设置该 session 中最新使用的 Schema 版本号。 |
读写/查询相关
| 变量名 | 功能描述 |
|---|---|
| is_result_accurate | 当查询带有 topk 提示时,is_result_accurate 表示结果是否正确。 |
| long_query_time | 用于设置慢查询的阈值。 |
Debug 相关
| 变量名 | 功能描述 |
|---|---|
| ob_global_debug_sync | 用于 Debug 时设置同步点,与 debug_sync 不同,设置此变量会影响所有 session。 |
集群相关
| 变量名 | 功能描述 |
|---|---|
| ob_capability_flag | 是 OBServer 节点能够提供的能力,用于和 Proxy 连接时进行能力协商,告知 Proxy 当前 OBServer 节点支持哪些功能,不支持哪些功能。 |
| ob_proxy_partition_hit | 用于设置 obproxy 是否将 SQL 语句请求的数据发送到这些数据主 Partition 所在的 OBServer 节点上。 |
| ob_org_cluster_id | 用于设置 OceanBase 集群的 CLUSTER_ID。 |
系统日志相关
| 变量名 | 功能描述 |
|---|---|
| ob_enable_show_trace | 用于设置是否使用 Trace 日志。 |
| tracefile_identifier | 用于在日志中增加指定内容,便于筛选行迭代跟踪日志。 |
时区和日期相关
| 变量名 | 功能描述 |
|---|---|
| timestamp | TIMESTAMP 是时间戳,单位为秒,该变量影响 select now(6)的结果。 |
| nls_language | 表示数据库国际化支持中的默认语言,用于提示信息、日期、月份名以及 NLS_SORT 和NLS_DATE_LANGUAGE 的默认值。 |
事务及事务日志相关
| 变量名 | 功能描述 |
|---|---|
| ob_proxy_set_trx_executed | 用于设置用户是否通过 obproxy 发送 START TRANSACTION Syntax 给 OBServer。 |
| ob_trace_info | 用于透传 Trace 信息,该信息最终可透持久化到 REDO 日志中。 |
自增列相关
| 变量名 | 功能描述 |
|---|---|
| last_insert_id | 用于返回本 session 最后一次插入的自增字段值。 |
| identity | identity 和变量 last_insert_id 是同义词,可以通过 select @@identity 查询。 |