OBServer 系统参数和变量
集群初始化成功后,默认会有一个租户 sys
,保存集群的所有元数据、参数等。管理 OceanBase 集群就是通过登录 sys
租户。
参数与变量的区别
系统参数
通常,在集群级别设置的配置相关变量称为参数**(parameters
)**。参数的改变会记录到__all_sys_parameter 和参数文件observer.config.bin
(二进制格式文件)中,每个节点都保存一份。
参数文件路径
OceanBase 集群参数修改后都会立即持久化到本地参数文件里,可以通过参数config_additional_dir
指定本地参数文件路径
show parameters like '%config_additional_dir%'\G
每次修改后,参数文件都会保留上一个版本在文件observer.config.bin.history
里,以避免参数修改错误导致集群启动失败。
启动目录下有三个文件夹:etc etc2 etc3
,下面都有参数文件以及其历史文件备份。进程 observer
默认会读取文件夹 etc
中的参数文件,其他两个目录是参数文件的备份,这个备份路径也是通过参数 config_additional_dir
指定的,默认值是同一个启动目录的 etc2
和 etc3
隐含参数
以__
开头的参数称为隐含参数
系统变量(租户参数)
通常,在租户 (tenant) 级别设置的配置相关变量称为变量**(variables
)**。变量的修改会记录到__all_virtual_sys_variable,如:set global autocommit=off;
影响范围
- 租户全局范围
- 会话层面
- 语句层面(SQL Hint)
查看系统变量和系统参数
查看参数
数据字典
命令用法
-- 查看 OceanBase 集群参数的命令是 : show parameters [ like '%参数名特征%' ] ; 或 show parameters where name in ( '参数名1' , '参数名2' ) ; -- 不带 like 子句就是查看所有参数。
示例
select * from __all_sys_parameter -- where name like '%_ob_enable_prepared_statement%'; show parameters; show parameters like 'memory_limit%'; show parameters where name in ( 'memory_limit_percentage', 'memory_limit', 'enable_sql_audit', 'enable_rebalance' );
OS 层查看
strings observer.config.bin | grep -E "minor_freeze_times|freeze_trigger_percentage"
实际中,并不是所有参数都在这个参数文件里。只有那些被 alter system set
命令修改过的参数,以及在进程 observer
启动时通过 -o
指定的参数,才会记录在参数文件里。其他参数都是取自默认值(写在进程 observer
的代码里)
查看变量
用法
show global | session variables like '%变量名部分字段%' ;
示例
select * from __all_virtual_sys_variable -- where name like '%commit%'; show global variables like '%timeout%'; show global variables where variable_name in ('ob_query_timeout','ob_trx_timeout','ob_trx_idle_timeout');
修改系统变量和参数
调整系统参数
SQL 语法方式
用法
alter system set 参数名='参数值' [ server = '节点IP:节点RPC端口' ] ; -- 不指定 server 子句就是表示参数修改应用于所有 OceanBase 集群节点
示例
alter system set minor_freeze_times=100; -- 修改指定节点 alter system set freeze_trigger_percentage=75 server='192.168.10.132:2882';
OBD 工具调整配置
通过 SQL 语句方式在 OceanBase 集群里修改参数后,会立即同步到集群节点自身的参数文件 (etc/observer.config.bin) 中,但是不会同步到 OBD 的集群部署配置文件中。这就有可能造成当使用 odb 重启OceanBase 集群时使用了旧版本的配置的风险。
obd cluster edit-config 命令调整集群配置
]$ obd cluster edit-config biu
reload 加载集群配置
obd cluster reload biu
启动 observer 进程时指定参数
bin/observer -o "max_syslog_file_count=15,datafile_size=60G"
调整系统变量
语法
set global | session 变量名 = '变量值' ;
示例
租户变量
ob_tcp_invited_nodes
可以针对访问来源设置白名单。白名单格式可以是'%'
,表示允许所有的来源。也可以是一个或多个具体的IP
或者子网。
set global ob_tcp_invited_nodes='127.0.0.1,192.168.0.0/16';
注意:
- 变量
ob_compatibility_mode
:表示租户兼容性。只能在创建租户时指定该变量,后期不允许改变
OBProxy 配置调整
查看参数
通过参数文件中查看
strings /ups/app/oceanbase/obproxy/etc/observer.config.bin |grep -i 'syslog_level'
客户端连接到 proxysys 查看
-- obclient -h 192.168.10.201 -u root@proxysys -P 2883 show proxyconfig like '%sys_password%';
调整参数
通过 obd 工具调整参数项
obd cluster edit-config <集群名称> obd cluster reload <集群名称>
使用客户端工具连接到 proxysys 调整
-- 修改 OBPROXY 用户密码 alter proxyconfig set obproxy_sys_password = 'p#ssw0rd';
结束语:OceanBase 社区版入门到实战教程直播正在进行中~
快和小伙伴一起进群交流学习吧~
加入直播群方式一:
钉钉群号 3582 5151
加入直播群方式二:
扫码下方钉钉二维码加入