1.参数说明
OceanBase 数据库的集群参数即集群级配置项,同时参数还分为动态生效和重启生效两类。
通过集群参数的设置可以控制集群的负载均衡、合并时间、合并方式、资源分配和模块开关等功能。
系统租户(即 sys 租户)可以查看和设置集群参数,普通租户只能查看集群参数,无法设置集群参数。
当 OBServer 启动后,如果没有指定参数,则使用系统指定的参数的 Default 值。
在 observer 进程启动成功后,参数值将持久化到 /home/admin/oceanbase/etc/observer.config.bin 文件中,
您可以通过 strings observer.config.bin 命令来查看文件中的内容。
2.从二进制文件查看参数
[admin@observer1 etc]$ strings observer.config.bin
stack_size=512K
all_server_list=192.168.1.61:2882,192.168.1.62:2882,192.168.1.63:2882 #集群列表
__min_full_resource_pool_memory=2684354560 #最小内存池
min_observer_version=4.0.0.0 #最小observer版本
workers_per_cpu_quota=10 #每个cpu,10个工作线程。
cache_wash_threshold=1G #缓存超过1G就清理
enable_syslog_recycle=True #激活系统日志回收。
enable_syslog_wf=False
max_syslog_file_count=10 #最大系统日志10个
syslog_level=WARN #日志级别:WARN;
cluster_id=2 #集群ID
cluster=hjzqobce #集群名称
rootservice_list=192.168.1.61:2882:2881;192.168.1.62:2882:2881;192.168.1.63:2882:2881 #集群列表。
schema_history_expire_time=1d
cpu_count=16
system_memory=3G #系统租户内存3G;
memory_limit=17G #每个节点总内存:17G
net_thread_count=4
zone=zone1 #当前节点属于那个Zone;
devname=ens33 #网卡设备的名称。
mysql_port=2881 #内存通信端口
rpc_port=2882 #rpc通信端口
datafile_size=50G #数据文件初始50G
data_dir=/data
cpu_quota_concurrency=10
[1005]
[1006]
enable_sql_extension=True
[1007]
[1008]
[admin@observer1 etc]$ pwd
/home/admin/oceanbase-ce/etc
3.命令行查看参数
obclient [sjzt]> SHOW PARAMETERS LIKE 'stack_size';
+-------+----------+--------------+----------+------------+-----------+-------+-------------------------------------------------------+----------+---------+---------+------------------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
+-------+----------+--------------+----------+------------+-----------+-------+-------------------------------------------------------+----------+---------+---------+------------------+
| zone2 | observer | 192.168.1.62 | 2882 | stack_size | NULL | 512K | the size of routine execution stackRange: [512K, 20M] | OBSERVER | CLUSTER | DEFAULT | STATIC_EFFECTIVE |
| zone3 | observer | 192.168.1.63 | 2882 | stack_size | NULL | 512K | the size of routine execution stackRange: [512K, 20M] | OBSERVER | CLUSTER | DEFAULT | STATIC_EFFECTIVE |
| zone1 | observer | 192.168.1.61 | 2882 | stack_size | NULL | 512K | the size of routine execution stackRange: [512K, 20M] | OBSERVER | CLUSTER | DEFAULT | STATIC_EFFECTIVE |
+-------+----------+--------------+----------+------------+-----------+-------+-------------------------------------------------------+----------+---------+---------+------------------+
3 rows in set (0.051 sec)
obclient [sjzt]> SHOW PARAMETERS WHERE edit_level='static_effective' AND name='stack_size';
+-------+----------+--------------+----------+------------+-----------+-------+-------------------------------------------------------+----------+---------+---------+------------------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
+-------+----------+--------------+----------+------------+-----------+-------+-------------------------------------------------------+----------+---------+---------+------------------+
| zone1 | observer | 192.168.1.61 | 2882 | stack_size | NULL | 512K | the size of routine execution stackRange: [512K, 20M] | OBSERVER | CLUSTER | DEFAULT | STATIC_EFFECTIVE |
| zone2 | observer | 192.168.1.62 | 2882 | stack_size | NULL | 512K | the size of routine execution stackRange: [512K, 20M] | OBSERVER | CLUSTER | DEFAULT | STATIC_EFFECTIVE |
| zone3 | observer | 192.168.1.63 | 2882 | stack_size | NULL | 512K | the size of routine execution stackRange: [512K, 20M] | OBSERVER | CLUSTER | DEFAULT | STATIC_EFFECTIVE |
+-------+----------+--------------+----------+------------+-----------+-------+-------------------------------------------------------+----------+---------+---------+------------------+
3 rows in set (0.034 sec)
4.有四个字段需要解释。
(1)#section 字段:配置项所属的分类:
SSTABLE:表示 SSTable 相关的配置项。
OBSERVER:表示 OBServer 相关的配置项。
ROOT_SERVICE:表示 RootService 相关的配置项。
TENANT:表示租户相关的配置项。
TRANS:表示事务相关的配置项。
LOAD_BALANCE:表示负载均衡相关的配置项。
DAILY_MERGE:表示合并相关的配置项。
CLOG:表示 Clog 相关的配置项。
LOCATION_CACHE:表示 Location Cache 相关的配置项。
CACHE:表示缓存相关的配置项。
RPC:表示 RPC 相关的配置项。
OBPROXY:表示 OBProxy 相关的配置项。
(2)#scope:配置项范围属性:
TENANT:表示该配置项为租户级别的配置项
CLUSTER:表示该配置项为集群级别的配置项
(3)#source :当前值来源:
TENANT
CLUSTER
CMDLINE
OBADMIN
FILE
DEFAULT
(4)#edit_level:定义该配置项的修改行为:
READONLY:表示该参数不可修改。
STATIC_EFFECTIVE:表示该参数可修改但需要重启 OBServer 才会生效。
DYNAMIC_EFFECTIVE:表示该参数可修改且修改后动态生效。
SHOW PARAMETERS where section LIKE 'SSTABLE';
obclient [sjzt]> SHOW PARAMETERS where section LIKE 'SSTABLE';
+-------+----------+--------------+----------+--------------------------+-----------+--------+----------------------------------------------------------------------------------------------------------------------------+---------+---------+---------+-------------------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
+-------+----------+--------------+----------+--------------------------+-----------+--------+----------------------------------------------------------------------------------------------------------------------------+---------+---------+---------+-------------------+
| zone1 | observer | 192.168.1.61 | 2882 | memory_reserved | NULL | 500M | the size of the system memory reserved for emergency internal use. Range: [10M, total size of memory] | SSTABLE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone1 | observer | 192.168.1.61 | 2882 | datafile_disk_percentage | NULL | 0 | the percentage of disk space used by the data files. Range: [0,99] in integer | SSTABLE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone1 | observer | 192.168.1.61 | 2882 | datafile_size | NULL | 50G | size of the data file. Range: [0, +∞) | SSTABLE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone1 | observer | 192.168.1.61 | 2882 | redundancy_level | NULL | NORMAL | EXTERNAL: use extrernal redundancyNORMAL: tolerate one disk failureHIGH: tolerate two disk failure if disk count is enough | SSTABLE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone1 | observer | 192.168.1.61 | 2882 | data_dir | NULL | /data | the directory for the data file | SSTABLE | CLUSTER | DEFAULT | READONLY |
| zone3 | observer | 192.168.1.63 | 2882 | memory_reserved | NULL | 500M | the size of the system memory reserved for emergency internal use. Range: [10M, total size of memory] | SSTABLE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone3 | observer | 192.168.1.63 | 2882 | datafile_disk_percentage | NULL | 0 | the percentage of disk space used by the data files. Range: [0,99] in integer | SSTABLE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone3 | observer | 192.168.1.63 | 2882 | datafile_size | NULL | 50G | size of the data file. Range: [0, +∞) | SSTABLE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone3 | observer | 192.168.1.63 | 2882 | redundancy_level | NULL | NORMAL | EXTERNAL: use extrernal redundancyNORMAL: tolerate one disk failureHIGH: tolerate two disk failure if disk count is enough | SSTABLE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone3 | observer | 192.168.1.63 | 2882 | data_dir | NULL | /data | the directory for the data file | SSTABLE | CLUSTER | DEFAULT | READONLY |
| zone2 | observer | 192.168.1.62 | 2882 | memory_reserved | NULL | 500M | the size of the system memory reserved for emergency internal use. Range: [10M, total size of memory] | SSTABLE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone2 | observer | 192.168.1.62 | 2882 | datafile_disk_percentage | NULL | 0 | the percentage of disk space used by the data files. Range: [0,99] in integer | SSTABLE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone2 | observer | 192.168.1.62 | 2882 | datafile_size | NULL | 50G | size of the data file. Range: [0, +∞) | SSTABLE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone2 | observer | 192.168.1.62 | 2882 | redundancy_level | NULL | NORMAL | EXTERNAL: use extrernal redundancyNORMAL: tolerate one disk failureHIGH: tolerate two disk failure if disk count is enough | SSTABLE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone2 | observer | 192.168.1.62 | 2882 | data_dir | NULL | /data | the directory for the data file | SSTABLE | CLUSTER | DEFAULT | READONLY |
+-------+----------+--------------+----------+--------------------------+-----------+--------+----------------------------------------------------------------------------------------------------------------------------+---------+---------+---------+-------------------+
15 rows in set (0.016 sec)
5.修改参数的说明
语句说明:
仅 sys 租户可以修改集群级配置项,普通租户无法修改集群级配置项。
SCOPE 用于指定本次配置项修改的生效范围,默认值为 BOTH。其中:
MEMORY:表示仅修改内存中的配置项,修改立即生效,且本修改在 Server 重启以后会失效(当前暂无配置项支持这种方式)。
SPFILE :表示仅修改配置表中的配置项值,当 Server 重启以后才生效。
BOTH:表示既修改配置表,又修改内存值,修改后立即生效,且 Server 重启以后配置值仍然生效。
SERVER 表示指定集群中要修改的 Server,ZONE 表示指定集群中要修改的 Zone。
ALTER SYSTEM 语句不能同时指定 Zone 和 Server。
并且在指定 Zone 时,仅支持指定一个 Zone;指定 Server 时,仅支持指定一个 Server。
如果修改集群级配置项时,不指定 Zone 也不指定 Server,则表示该修改在整个集群内生效。
集群级别的配置项不能通过普通租户设置,也不可以通过系统租户(即 sys 租户) 指定为普通租户设置。
例如,执行 ALTER SYSTEM SET memory_limit='100G' TENANT='test_tenant' 语句将导致报错,因为 memory_limit 是集群级别的配置项。
确认一个配置项为集群级别还是租户级别,可根据 SHOW PARAMETERS LIKE 'parameter_name'; 语句执行结果中的 scope 列对应的值来判断:
scope 值为 CLUSTER 则表示为集群级别的配置项。
scope 值为 TENANT 则表示为租户级别的配置项。
6.登录系统租户更改集群级别参数。
[admin@obcontrol ~]$ obclient -h192.168.1.61 -P2883 -uroot@sys#hjzqobce -p'rootroot' -Doceanbase -A
obclient [oceanbase]> ALTER SYSTEM SET net_thread_count=1 SCOPE = SPFILE;
Query OK, 0 rows affected (0.046 sec)
obclient [oceanbase]> ALTER SYSTEM SET net_thread_count=2 SCOPE = SPFILE;
Query OK, 0 rows affected (0.073 sec)
obclient [oceanbase]> ALTER SYSTEM SET mysql_port=8888;
Query OK, 0 rows affected (0.049 sec)
obclient [oceanbase]> ALTER SYSTEM SET mysql_port=2881;
Query OK, 0 rows affected (0.053 sec)
obclient [oceanbase]> ALTER SYSTEM SET mysql_port=8888 ZONE='zone1';
Query OK, 0 rows affected (0.075 sec)
obclient [oceanbase]> ALTER SYSTEM SET mysql_port=2881 ZONE='zone1';
Query OK, 0 rows affected (0.142 sec)
obclient [oceanbase]> ALTER SYSTEM SET mysql_port=8888 SERVER='192.168.1.61:2882';
Query OK, 0 rows affected (0.055 sec)
obclient [oceanbase]> ALTER SYSTEM SET mysql_port=8888 SERVER='192.168.1.62:2882';
Query OK, 0 rows affected (0.062 sec)
obclient [oceanbase]> ALTER SYSTEM SET mysql_port=8888 SERVER='192.168.1.63:2882';
Query OK, 0 rows affected (0.081 sec)
obclient [oceanbase]> ALTER SYSTEM SET mysql_port=2881 SERVER='192.168.1.61:2882';
Query OK, 0 rows affected (0.119 sec)
obclient [oceanbase]> ALTER SYSTEM SET mysql_port=2881 SERVER='192.168.1.62:2882';
Query OK, 0 rows affected (0.057 sec)
obclient [oceanbase]> ALTER SYSTEM SET mysql_port=2881 SERVER='192.168.1.63:2882';
Query OK, 0 rows affected (0.043 sec)
obclient [oceanbase]> SHOW PARAMETERS LIKE '%memory_limit%';
+-------+----------+--------------+----------+--------------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
+-------+----------+--------------+----------+--------------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| zone2 | observer | 192.168.1.62 | 2882 | memory_limit_percentage | NULL | 80 | the size of the memory reserved for internal use(for testing purpose). Range: [10, 90] | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone2 | observer | 192.168.1.62 | 2882 | rootservice_memory_limit | NULL | 2G | max memory size which can be used by rs tenant The default value is 2G. Range: [2G,) | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone2 | observer | 192.168.1.62 | 2882 | memory_limit | NULL | 17G | the size of the memory reserved for internal use(for testing purpose), 0 means follow memory_limit_percentage. Range: 0, [4G,). | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone3 | observer | 192.168.1.63 | 2882 | memory_limit_percentage | NULL | 80 | the size of the memory reserved for internal use(for testing purpose). Range: [10, 90] | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone3 | observer | 192.168.1.63 | 2882 | rootservice_memory_limit | NULL | 2G | max memory size which can be used by rs tenant The default value is 2G. Range: [2G,) | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone3 | observer | 192.168.1.63 | 2882 | memory_limit | NULL | 17G | the size of the memory reserved for internal use(for testing purpose), 0 means follow memory_limit_percentage. Range: 0, [4G,). | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone1 | observer | 192.168.1.61 | 2882 | memory_limit_percentage | NULL | 80 | the size of the memory reserved for internal use(for testing purpose). Range: [10, 90] | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone1 | observer | 192.168.1.61 | 2882 | rootservice_memory_limit | NULL | 2G | max memory size which can be used by rs tenant The default value is 2G. Range: [2G,) | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone1 | observer | 192.168.1.61 | 2882 | memory_limit | NULL | 17G | the size of the memory reserved for internal use(for testing purpose), 0 means follow memory_limit_percentage. Range: 0, [4G,). | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
+-------+----------+--------------+----------+--------------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
9 rows in set (0.015 sec)
7.参数查看方法二
obclient [oceanbase]> show global variables like '%timeout%';
+---------------------+------------------+
| Variable_name | Value |
+---------------------+------------------+
| connect_timeout | 10 |
| interactive_timeout | 28800 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| ob_pl_block_timeout | 3216672000000000 |
| ob_query_timeout | 10000000 |
| ob_trx_idle_timeout | 86400000000 |
| ob_trx_lock_timeout | -1 |
| ob_trx_timeout | 86400000000 |
| wait_timeout | 28800 |
+---------------------+------------------+
obclient [oceanbase]> set global ob_query_timeout=100000000;
Query OK, 0 rows affected (0.103 sec)
obclient [oceanbase]> set session ob_query_timeout=100000000;
Query OK, 0 rows affected (0.002 sec)
obclient [oceanbase]> alter system set memory_limit = '17G'; --修改集群占用的内存。
Query OK, 0 rows affected (0.068 sec)
obclient [oceanbase]> alter system set memory_limit_percentage = 90; --如果没有指定内存大小,也可以改集群展会用内存百分比。
Query OK, 0 rows affected (0.077 sec)
--登录白名单查看:所有人可以登录。
obclient [oceanbase]> show variables like 'ob_tcp_invited_nodes';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| ob_tcp_invited_nodes | % |
+----------------------+-------+
1 row in set (0.004 sec)