调整 OceanBase 配置项参数

2024年 5月 7日 44.1k 0

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里,以避免参数修改错误导致集群启动失败。

image-20211209102648948

启动目录下有三个文件夹: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

image-20211209103624338

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

加入直播群方式二:

扫码下方钉钉二维码加入

调整 OceanBase 配置项参数-3

相关文章

Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库
27 期 | 死锁(3)解决死锁
OB Cloud 云数据库在西南!深耕海量场景,构建现代数据架构
出行365:用国产数据库为国人出行“护航”
oracle 查询改写

发布评论