签到成功

知道了

CNDBA社区CNDBA社区

Oceanbase 常用 系统变量 清单

2023-07-18 17:01 974 0 原创 OceanBase
作者: dave

1 系统变量说明

Oceanbase 常用 系统变量 清单1.1 系统变量和系统配置项对比
OB 数据库中有 2 个容易混淆的概念:变量和配置项。简单的理解他们的区别如下:

  1. 变量:针对会话的配置;
  2. 配置项,也就是参数,针对租户 或者 集群。

具体对比如下表:

对比项 系统配置项 系统变量
生效范围 分为集群、Zone、机器和租户。 分为租户的 Global 或 Session 级别。
生效方式 动态生效:edit_level 为 dynamic_effective
重启生效:edit_level 为 static_effective
设置 Session 级别的变量仅对当前 Session 有效,对其他 Session 无效。
设置 Global 级别的变量对当前 Session 无效,需要重新登录建立新的 Session 才会生效。
修改方式 支持通过 SQL 语句修改,示例:
ALTER SYSTEM SET schema_history_expire_time=’1h’;
支持通过启动参数修改,示例:
cd /home/admin/oceanbase && ./bin/observer -o “schema_history_expire_time=’1h’”;
仅支持通过 SQL 语句修改,示例如下:
SET ob_query_timeout = 20000000;
SET GLOBAL ob_query_timeout = 20000000;
查询方式 可以使用 SHOW PARAMETERS 语句查询。示例:SHOW PARAMETERS LIKE ‘schema_history_expire_time’; 可以使用 SHOW [GLOBAL] VARIABLES 语句查询。示例如下:
SHOW VARIABLES LIKE ‘ob_query_timeout’;
SHOW GLOBAL VARIABLES LIKE ‘ob_query_timeout’;
持久化 持久化到内部表与配置文件,可以在 /home/admin/oceanbase/etc/observer.config.bin 与 /home/admin/oceanbase/etc/observer.config.bin.history 文件中查询该配置项。 仅 Global 级别的变量会持久化,Session 级别的变量不会进行持久化。
生命周期 长,从进程启动到退出。 短,需要租户的 Schema 创建成功以后才生效。

1.2 变量分类

OceanBase 数据库的系统变量分为全局变量和 Session 变量。

  1. 全局变量:表示 Global 级别的修改,数据库同一租户内的不同用户共享全局变量。全局变量的修改不会随会话的退出而失效。此外,全局变量修改后,对当前已打开的 Session 不生效,需要重新建立 Session 才能生效。
  2. Session 变量:表示 Session 级别的修改。当客户端连接到数据库后,数据库会复制全局变量来自动生成 Session 变量。Session 变量的修改仅对当前 Session 生效。

可以通过如下 SQL 查询变量:http://www.cndba.cn/dave/article/131428

obclient [oceanbase]> show variables;

select * from information_schema.GLOBAL_VARIABLES;
select * from information_schema.SESSION_VARIABLES;
select * from  oceanbase.CDB_OB_SYS_VARIABLES; 系统租户下所有租户的系统变量信息。


obclient [oceanbase]> select  COUNT(*) from (
    -> select * from information_schema.GLOBAL_VARIABLES
    -> union 
    -> select * from information_schema.SESSION_VARIABLES);
+----------+
| COUNT(*) |
+----------+
|      189 |
+----------+
1 row in set (0.013 sec)


obclient [oceanbase]> select count(distinct name,VALUE)  from oceanbase.CDB_OB_SYS_VARIABLES;
+----------------------------+
| count(distinct name,VALUE) |
+----------------------------+
|                        228 |
+----------------------------+
1 row in set (0.146 sec)

CDB_OB_SYS_VARIABLES 视图比GLOBAL_VARIABLES 和 SESSION_VARIABLES 多的 33 个基本都是隐藏的变量:http://www.cndba.cn/dave/article/131428

obclient [oceanbase]> select distinct name  from oceanbase.CDB_OB_SYS_VARIABLES cosv 
    -> minus
    -> select  VARIABLE_NAME  from (
    -> select * from information_schema.GLOBAL_VARIABLES
    -> union 
    -> select * from information_schema.SESSION_VARIABLES);
+----------------------------------------+
| name                                   |
+----------------------------------------+
| debug_sync                             |
| ob_capability_flag                     |
| ob_global_debug_sync                   |
| ob_proxy_global_variables_version      |
| ob_proxy_partition_hit                 |
| ob_proxy_set_trx_executed              |
| ob_proxy_user_privilege                |
| ob_safe_weak_read_snapshot             |
| ob_statement_trace_id                  |
| _clear_last_archive_timestamp          |
| _create_audit_purge_job                |
| _drop_audit_purge_job                  |
| _enable_parallel_ddl                   |
| _enable_parallel_dml                   |
| _enable_parallel_query                 |
| _force_parallel_ddl_dop                |
| _force_parallel_dml_dop                |
| _force_parallel_query_dop              |
| _groupby_nopushdown_cut_ratio          |
| _nlj_batching_enabled                  |
| _ob_ols_policy_session_labels          |
| _ob_proxy_session_temporary_table_used |
| _ob_px_bcast_optimization              |
| _ob_px_slave_mapping_threshold         |
| _px_broadcast_fudge_factor             |
| _px_dist_agg_partial_rollup_pushdown   |
| _px_min_granules_per_slave             |
| _px_partial_rollup_pushdown            |
| _px_partition_scan_threshold           |
| _px_shared_hash_join                   |
| _set_last_archive_timestamp            |
| _set_purge_job_interval                |
| _set_purge_job_status                  |
+----------------------------------------+
33 rows in set (0.054 sec)

obclient [oceanbase]>

2 常用系统变量汇总

2.1 自增列

1.auto_increment_increment 用于设置自增步长,仅用于 MySQL 客户端登录。
2.auto_increment_offset 用于确定 AUTO_INCREMENT 列值的起点。
3.last_insert_id 用于返回本 session 最后一次插入的自增字段值。
4.identity identity 和变量 last_insert_id 是同义词,可以通过 select @@identity 查询。
5.sql_auto_is_null 用于控制是否获取最后插入行的自增列值。
6.auto_increment_cache_size 用于设置缓存的自增值个数。
7.div_precision_increment 用于设置除法结果精度在被除数精度基础上的增量,是 MySQL 兼容功能。

2.2 事务

1.autocommit 用于设置是否自动提交事务。
2.tx_isolation 用于设置事务隔离级别。
3.ob_proxy_set_trx_executed 用于设置用户是否通过 obproxy 发送 START TRANSACTION Syntax 给 OBServer。
4.ob_early_lock_release 用于控制事务是否开启提前解锁( ELR )功能。
5.ob_trx_idle_timeout 用于设置事务空闲超时时间,即事务中两条语句之间的执行间隔超过该值时超时,单位为微秒。
6.transaction_isolation 用于设置事务的隔离级别。
7.transaction_read_only 用于控制是否只允许开启只读事务。
8.ob_trx_lock_timeout 用于设置事务的等锁超时时长,单位为微秒。

2.3 字符集和字符串

1.character_set_client 用于设置客户端发送语句的字符集。
2.character_set_connection 用于设置收到语句后应转换的字符集。
3.character_set_database 用于设置默认数据库的字符集。
4.character_set_results 用于设置服务器在将结果集或错误消息发送回客户端之前应转换为的字符集。
5.character_set_server 用于设置服务器字符集。
6.character_set_system 用于查看服务器使用的字符集。
7.collation_connection 用于设置连接使用的字符集和字符序。
8.collation_database 用于设置创建数据库默认字符集和字符序。
9.collation_server 用于设置服务器默认字符集和字符序。
10.character_set_filesystem 用于设置文件系统字符集类型。
11.sql_warnings 用于在出现告警时控制单行 INSERT 语句是否生成信息字符串。
12.init_connect 用于设置服务器为每个连接的客户端执行的字符串,该字符串由一条或多条 SQL 语句组成,用分号分隔。
13.nls_sort 表示字符串值的排序规则。
14.nls_comp 表示字符串值的比较规则。
15.nls_characterset 用于查看数据库中 CHAR、VARCHAR2、CLOB 等数据类型的默认字符集。
16.nls_nchar_characterset 表示数据库默认字符集,用于 NCHAR、NVARCHAR2、NCLOB 等数据类型。

2.4 最大值

1.max_allowed_packet 用于设置最大网络包大小,单位是 Byte。
2.max_user_connections 用于指定单个用户可以向 OBServer 节点建立的连接数,设置为 0 时表示不限制连接数。
3.max_sp_recursion_depth 用于设置可以递归调用任一指定存储过程的最大层次。
4.parallel_servers_target 用于设置每个 Server 上的大查询排队条件。
5.group_concat_max_len 用于设置允许的 GROUP_CONCAT() 函数结果的最大长度,单位为字节。
6.sql_select_limit 用于设置一个 Select 查询允许返回的最大行数。

2.5 时区和日期

1.time_zone 用于设置当前租户会话使用的时区,支持 ‘+08:00’ 的 Offset 形式和 Asia/Shanghai 的地域形式取值。
2.timestamp TIMESTAMP 是时间戳,单位为秒,该变量影响 select now(6)的结果。
3.system_time_zone 用于设置服务器机器系统时区。
4.error_on_overlap_time 用于设置夏令时重叠区时间发生歧义时是否作报错处理。
5.nls_language 表示数据库国际化支持中的默认语言,用于提示信息、日期、月份名以及 NLS_SORT 和NLS_DATE_LANGUAGE 的默认值。
6.nls_territory 表示数据库国际化支持中的当前地域,与 nls_language 结合使用。
7.nls_date_language 表示数据库国际化支持中的日期默认语言。
8.nls_calendar 用于控制数据库使用的日历系统。http://www.cndba.cn/dave/article/131428

http://www.cndba.cn/dave/article/131428

2.6 版本信息

1.version_comment 用于查看 OBServer 节点的版本信息。
2.version 用于查看服务器的版本号。
3.ob_last_schema_version 用于设置该 session 中最新使用的 Schema 版本号。
4.ob_proxy_global_variables_version 用于设置 OBServer 节点返回给 OBproxy 所需的全局变量的最新版本信息。http://www.cndba.cn/dave/article/131428

2.7 日志

1.binlog_row_image 用于控制是否记录全列日志。
2.ob_enable_show_trace 用于设置是否使用 Trace 日志。
3.ob_trace_info 用于透传 Trace 信息,该信息最终可透持久化到 REDO 日志中。
4.ob_log_level 用于设置 session 级的日志级别,如果不指定则使用系统中的日志级别。
5.tracefile_identifier 用于在日志中增加指定内容,便于筛选行迭代跟踪日志。

2.8 目录路径

1.datadir 用于查看数据存储的本地磁盘路径。
2.plugin_dir 用于查看存放插件 DLL 的路径。
3.secure_file_priv 控制导入或导出到文件时可以访问的路径。

2.9 Debug

1.debug_sync 用于在 Debug 时设置同步点,与 MySQL 兼容。
2.ob_global_debug_sync 用于 Debug 时设置同步点,与 debug_sync 不同,设置此变量会影响所有 session。

2.10 查询

1.query_cache_size 用于设置分配给存储历史查询结果的内存,即尚未使用的内存,单位为 Byte。
2.query_cache_type 用于查询缓存类型。
3.ob_query_timeout 用于设置查询超时时间,单位是微秒。
4.is_result_accurate 当查询带有 topk 提示时,is_result_accurate 表示结果是否正确。
5.net_buffer_length 用于设置 OBServer 节点能接受的 SQL Query 的大小。http://www.cndba.cn/dave/article/131428

http://www.cndba.cn/dave/article/131428

2.11 超时时间

1.connect_timeout 用于设置连接超时时间,单位为秒。
2.default_password_lifetime 用于设置密码的过期时间。
3.net_read_timeout 用于中断读之前等待连接的其它数据的秒数。
4.net_write_timeout 用于设置中断写之前等待块写入连接的秒数。
5.ob_trx_timeout 用于设置事务超时时间,单位为微秒。
6.ob_pl_block_timeout 用于设置 PL 的最大超时时间,单位为微秒。
7.interactive_timeout 用于设置服务器关闭交互式连接前等待活动的秒数。
8.wait_timeout 用于设置服务器关闭非交互连接之前等待活动的秒数。

2.12 计划缓存

1.ob_enable_plan_cache 用于设置是否打开 Plan Cache。
2.ob_plan_cache_percentage 用于设置计划缓存可使用内存占租户内存的百分比。
3.ob_plan_cache_evict_high_percentage 用于设置触发计划缓存淘汰的内存大小占内存上限绝对值的百分比。
4.ob_plan_cache_evict_low_percentage 用于设置停止淘汰计划缓存的内存大小占内存上限绝对值的百分比。

2.13 回收站

1.recyclebin 用于设置是否开启回收站功能。

2.14 内存

1.ob_sql_work_area_percentage 用于 SQL 执行的租户内存百分比限制。
2.ob_sql_audit_percentage 用于设置 SQL Audit 内存上限占当前租户内存的百分比。
3.ob_reserved_meta_memory_percentage 用于设置租户预留内存的比例,主要存储 Meta 相关的结构信息。
4.ob_temp_tablespace_size_percentage 用于租户磁盘中临时表空间大小的百分比限制。

2.15 外键约束

1.foreign_key_checks 用于设置是否在 DML/DDL 中检查外建约束。

2.16 白名单

1.obtcp_invited_nodes 用于设置租户的 IP 白名单,支持百分号(%) 、短横线() 和 IP(多个 IP 之间用逗号分隔),支持 IP 列表匹配、掩码匹配和模糊匹配。http://www.cndba.cn/dave/article/131428

2.17 限流

1.sql_throttle_current_priority 用于设置限流优先级,只有 sql_throttle_current_priority 小于 sql_throttle_priority 的那些 session 上的请求才会被限流。
2.sql_throttle_priority 用于设置限流优先级。
3.sql_throttle_rt 用于指定 RT 值,单位为微秒。
4.sql_throttle_network 用于指定请求排队时间,如果请求排队时间大于或等于该值,则不允许执行查询。

2.18 审计

1.ob_enable_sql_audit 用于控制当前租户是否开启 SQL Audit 功能。

2.19 优化器

1.optimizer_use_sql_plan_baselines 用于控制优化器是否会使用 Plan Baseline 计划。
2.optimizer_capture_sql_plan_baselines 用于控制是否自动捕获新计划到 Plan Baseline。

2.20 数据格式

1.nls_length_semantics 表示 CHAR、VARCHAR2 类型的 Length 语义。
2.nls_nchar_conv_excp 用于控制 NCHAR/NVARCHAR2 与 CHAR/VARCHAR2 之间转换丢失数据时是否报错。
3.nls_numeric_characters 用于控制 Number 和字符串转换中字符串中小数分隔符和千分位分隔符的字符。
4.nls_currency 用于设置数字格式元素 L 的本地货币符号。
5.nls_iso_currency 用于设置数字格式元素 C 的本地货币符号。
6.nls_dual_currency 用于设置数字格式元素 U 的本地货币符号。
7.nls_date_format 用于控制 date 类型转 str 的格式,以及 str 隐式转 date 的格式。
8.nls_timestamp_format 用于控制 Timestamp 或 Timestamp 中 ltz 类型转 str 的格式,以及 str 隐式转 Timestamp 或 Timestamp 中 ltz 的格式。
9.nls_timestamp_tz_format 用于控制 Timestamp tz 类型转 str 的格式,以及 str 隐式转 Timestamp tz 的格式。

2.21 启用/关闭功能

1.ob_enable_transformation 用于设置是否开启 SQL 优化器的改写功能。
2.ob_enable_index_direct_select 用于设置是否允许用户直接查询索引表。
3.ob_enable_aggregation_pushdown 用于设置是否允许聚合操作下压。
4.ob_enable_transmission_checksum 用于设置 obproxy 和 OBServer 节点之间是否进行数据包校验和,设置后实时生效。
5.ob_enable_truncate_flashback 用于设置是否启用表截断的闪回。
6.ob_enable_jit 用于设置 JIT 执行引擎模式。

2.22 大小写

1.lower_case_table_names 用于设置是否对大小写敏感。

2.23 读写模式

1.read_only 用于设置租户是否为只读模式。
2.ob_read_consistency 用于设置读一致性级别。
3.tx_read_only 用于设置是否为只读事务。

2.24 设置用户密码

1.validate_password_check_user_name 用于设置用户密码是否可以和用户名相同。
2.validate_password_length 用于设置用户密码最小长度。
3.validate_password_mixed_case_count 用于设置用户密码至少包含的大写字母个数以及至少包含的小写字母个数。
4.validate_password_number_count 用于设置用户密码至少包含的数字个数。
5.validate_password_policy 用于设置密码检查策略。
6.validate_password_special_char_count 用于设置用户密码至少包含的特殊字符个数。http://www.cndba.cn/dave/article/131428http://www.cndba.cn/dave/article/131428

2.25 其他

1.block_encryption_mode 用于指定在函数 aes_encrypt 和 aes_decrypt 中使用的加密算法。
2.cursor_sharing 用于判断处理 SQL 时是否进行参数化。
3.explicit_defaults_for_timestamp 用于指定 timestamp 数据类型在处理默认值和空值时是否启用非标准行为。
4.innodb_strict_mode 用于设置特定语法的 SQL 检查模式。
5.max_connections 用于设置允许使用的 FD 最大值。
6.ob_bnl_join_cache_size 用于设置 Batch Nest Loop Join 一次 Cache 多少数据做一次 Batch。
7.ob_capability_flag 是 OBServer 节点能够提供的能力,用于和 Proxy 连接时进行能力协商,告知 Proxy 当前 OBServer 节点支持哪些功能,不支持哪些功能。
8.ob_compatibility_mode 用于指定租户的兼容模式。
9.ob_route_policy 用于设置 obproxy 或 Java 客户端与 OBServer 节点内部重试的路由策略。
10.performance_schema 用于向客户端声明是否支持 Performance 信息的查询。
11.resource_manager_plan 用于激活资源管理计划。指定不同计划,会使用不同 CPU 的额度来限定资源组下的用户活动。
12.sql_mode 用于设置 SQL 模式,不同的 SQL 模式对于插入等行为有很大影响。
13.sql_safe_updates 用于设置是否启用 MySQL 的 SQL 安全模式,默认为关闭。
14.license 用于查看 license 的类型。
15.ob_proxy_partition_hit 用于设置 obproxy 是否将 SQL 语句请求的数据发送到这些数据主 Partition 所在的 OBServer 节点上。
16.sql_quote_show_create 用于设置是否为 SHOW CREATE TABLE 和 SHOW CREATE DATABASE 语句启动引用标识符。
17.ob_org_cluster_id 用于设置 OceanBase 集群的 CLUSTER_ID。
18.server_uuid 用于查看 OBServer 节点UUID。
19.default_storage_engine 用于查看 OBServer 节点的默认存储引擎。
20.ob_enable_rich_error_msg 用于控制 SQL 执行出错时是否显示 svr_ip、time、trace_id 等信息。

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2246
    原创
  • 3
    翻译
  • 554
    转载
  • 188
    评论
  • 访问:6918761次
  • 积分:4275
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ