参数管理
管理范围:通过集群参数的设置可以控制集群的负载均衡、合 并时间、合并方式、资源分配和模块开关等功能。
参数生效:参数分为动态生效和重启生效两类,大部分为动态生效。
参数级别:参数分为集群级别和租户级别,大部分为集群参数。
管理权限:系统租户可以查看和设置所有其他租户的参数 (包 括 sys 租户),普通租户只能设置自己租户的参数。
当 OBServer 启动后,如果没有指定参数,使用系统指定的参数Default 值。在OBServer 进程启动成功后,参数值持久化到 /home/admin/oceanbase/etc/observer.config.bin 文件中,可以通strings 命令来查看内容。
集群参数查询
系统租户查询集群参数语法
show parameters [SHOW_PARAM_OPTS] [tenant='tenant‘]
普通租户查询集群参数语法
show parameters [SHOW_PARAM_OPTS]
列名 |
含义 |
Zone |
所在的zone |
svr_ip |
机器IP |
svr_port |
机器端端口 |
name |
配置项名 |
value |
配置项值 |
data_type |
配置项数据类型 |
info |
配置项解释(描述了Parameter的意义和取值范围) |
scope |
配置项范围属性(Tenant/Cluster) |
scource |
当前值来源(Tenant|Cluster|CommandLine|ObAdmin|File) |
edit_level |
dynamic_effective(动态生效)/static_effective(重启后生效) |
集群参数设置
集群参数修改语句的语法如下所示,同时修改多个系 统配置项时,请用逗号(,)隔开:
ALTER SYSTEM SET param_name = expr [COMMENT 'text’] [PARAM_OPTS] [TENANT = 'tenantname’]
PARAM_OPTS: [ZONE='zone' | SERVER='server_ip:rpc_port’]
如果不带任何条件,则修改所有OB Server的值。
ALTER SYSTEM 语句不能同时指定Zone 和 Server。如指定Zone,仅能指定一个Zone,如果指定 Server,只能指定一个 Server。
集群级别的配置项(Scope) 不能通过普通租户设定,也不可以通过 sys 租户指定普通租户进行设定。例如, alter system set memory_limit=‘100G’ tenant=‘test_tenant’ 将导致报错,因为 memory_limit 是集群级别(scope)的配置项。
常用的OB系统配置项(合并相关)
配置项 |
默认值 |
说明 |
zone_merge_timeout |
3h |
单个ZONE合并的超时时间 取值范围:[1s+] |
freeze_trigger_percentage |
70 |
触发合并时,memstore使用的百分比 取值范围:(0,100) |
enable_manual_merge |
FALSE |
是否开启手动合并 True开启,False不开启 如果这个值为True,则认为DBA关闭自动合并 |
major_freeze_duty_time |
02:00 |
是否开启手动合并 True开启,False不开启 如果这个值为True,则认为DBA关闭自动合并 |
常用的OB系统配置项(syslog相关)
配置项 |
默认值 |
说明 |
syslog_level |
INFO |
日志级别:DEBUG,TRACE,INFO,WARN,ERROR |
enable_syslog_recycle |
FALSE |
是否打开自动控制日志的开关,配合max_syslog_count生效 |
max_syslog_file_count |
0 |
指定最多同时存在多少个日志文件 每个日志文件占用256M空间 |
trace_log_slow_query_waterwork |
100ms |
打印trace log慢查询控制阈值 取值范围:[1ms,+] |
syslog_io_bandwidth_limit |
30MB |
系统日志(syslog)IO带宽限流 |
enable_syslog_wf |
TRUE |
是否单独保存Warning以上日志级别的日志到文件中 |
常用的OB系统配置项(内存相关)
配置项 |
默认 |
|
minor_freeze_times |
0 |
两次合并之间的转储上限次数 |
large_query_threshold |
100ms |
大查询判定条件 取值范围:[1ms+] |
large_query_worker_percentage |
30 |
大查询分配资源百分比 取值范围:[0,100]in percentage |
memory_limit_percentage |
80 |
内存使用上限 取值范围:[10,90] |
常用的OB系统配置项(其他)
配置项 |
默认 |
|
server_permanent_offline_time |
3600s |
服务器永久下线时间 取值范围:[20s+] |
enable_auto_leader_switch |
TRUE |
允许系统自动切主 |
clog_sync_warn_threshold |
100ms |
commitlog同步超过多长时间报WARN日志 |
clog_sync_warn_threshold |
TRUE |
是否开启sql审计功能,默认值为TRUE,表示开启SQL审计功能 取值为TRUE,FALSE |
sql_audit_memory_limit |
10%内存 |
开启SQL审计功能状态下,SQL审计内部表最大可用内存,默认为10%内存。取值范围:[64M+] |
变量Variables,与业务租户相关
控制租户全局(global)级别或者会话(session)级别的属性,大部分动态生效,少部分需要重建连接 查看variables
show variables;
show variables like '%<pattern>%’;
修改variables
set @@session. <name>=<value> ;
set @@global.<name>=<value>;
Session variables vs Global variables
会话变量:Session级修改 (只对本会话生效)。当客户端连接到数据库后,数据库会复 制全局变量以自动生成会话变量。会话变量的修改只对当前会话生效。
set ob_trx_timeout=200000000
全局变量:Global 级 (租户级) 修改 (不会随会话退出而失效)数据库实例共享全局变 量。这意味着不同用户共享这些全局变量,且数据库会保存您对全局变量做出的更改, 断开连接并再次进入数据库时,更改依旧有效。
set global ob_trx_timeout = 200000000
对当前已经打开的session不生效
需要重新建立session
常用的OB系统变量 (Variables)
配置项 |
默认值 |
说明 |
属性 |
ob_query_timeout |
10000000 |
查询超时时间 |
GLOBAL|SESSION |
ob_trx_timeout |
100000000 |
事务超时时间 |
GLOBAL|SESSION |
ob_read_consistency |
STRONG |
读一致性级别 |
GLOBAL|SESSION |
ob_enable_truncate_flashback |
ON |
truncate table是否会进回收站受该参数控制 |
GLOBAL|SESSION |
lower_case_table_names |
1 |
是否大小写敏感 1:大小写不敏感 0:大小写敏感 |
GLOBAL|SESSION|READONLY |
ob_timestamp_service:跟Google Spanner 的TrueTime意思差不多,通过这个服务,OB可以实现 集群租户级别的全局一致性。
set global ob_timestamp_service=‘GTS’
set global ob_timestamp_service=‘LTS’
ODC管理会话功能支持查看和修改会话属性
ODC 提供了可视化界面,可以清晰直观的查看与修改当前数 据库支持的变量。对于变量值的修改:
如果变量的值是字符或数字类型,可以在变量编辑页面中直接输入修改值。
如果变量的值是枚举类型,ODC会在变量值的编辑框中列举出该变量支持的值的集合,用户可以在不用准确记忆变量名和值的情况下通过可视化界面完成修改,这降低了用户记忆变量的成本并提高了变量修改的效率。
ODC 会使用橙色标记修改过的数据库变量,以方便您更直观的管理变量