查看及修改参数
本文介绍如何查看和修改集群参数、租户参数。
集群参数
OceanBase 数据库以集群形态运行,提供多租户(也叫多实例)能力。集群初始化成功后,默认会有一个 sys 租户,用以保存集群的所有元数据、参数等。您也可通过登录 sys 租户管理 OceanBase 集群。
查看和修改 OceanBase 集群参数
您可通过命令 show parameters [ like '%参数名特征%' ] ; 或 show parameters where name in ( '参数名1' , '参数名2' ) ; 查看 OceanBase 集群参数。
在命令 show parameters [ like '%参数名特征%' ] ; 中不带 like 子句表示查看所有参数。
现在以查看参数 memory_limit 和 memory_limit_percentage 为例进行讲解。
首先这两个参数是指定进程 observer 启动后能获取的最大内存,如果分配不出来进程可能会启动失败或运行异常。这个内存可以指定大小,也可以指定总可用内存的比例。无论使用哪种方法,都需要确保实际可以使用的内存不少于 8G。
这两个参数实际只有一个生效,取两个参数中的最低值。memory_limit 设置为 0 时就表示不限制。使用哪个参数控制进程 observer 内存大小由运维人员决定。生产环境中,机器内存很大的时候,通常是通过 memory_limit_percentage 控制,默认值是 80(表示总可用内存的 80%)。
MySQL [oceanbase]> show parameters like 'memory_limit%';
+-------+----------+---------------+----------+-------------------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
+-------+----------+---------------+----------+-------------------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| zone1 | observer | x.x.x.x | 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 | x.x.x.x | 2882 | memory_limit | NULL | 8G | the size of the memory reserved for internal use(for testing purpose), 0 means follow memory_limit_percentage. Range: 0, [8G,) | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
+-------+----------+---------------+----------+-------------------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
2 rows in set (0.002 sec)
MySQL [oceanbase]> show parameters where name in ('memory_limit','memory_limit_percentage')\G
*************************** 1. row ***************************
zone: zone1
svr_type: observer
svr_ip: x.x.x.x
svr_port: 2882
name: memory_limit_percentage
data_type: NULL
value: 80
info: the size of the memory reserved for internal use(for testing purpose). Range: [10, 90]
section: OBSERVER
scope: CLUSTER
source: DEFAULT
edit_level: DYNAMIC_EFFECTIVE
*************************** 2. row ***************************
zone: zone1
svr_type: observer
svr_ip: x.x.x.x
svr_port: 2882
name: memory_limit
data_type: NULL
value: 8G
info: the size of the memory reserved for internal use(for testing purpose), 0 means follow memory_limit_percentage. Range: 0, [8G,)
section: OBSERVER
scope: CLUSTER
source: DEFAULT
edit_level: DYNAMIC_EFFECTIVE
2 rows in set (0.002 sec)0
上述参数输出结果说明如下:
| 列名 | 列值 | 备注 |
|---|---|---|
| zone | zone1 | 节点的 Zone 名称 |
| svr_type | observer | 节点类型 |
| svr_ip | x.x.x.x | 节点 IP |
| svr_port | 2882 | 节点 RPC 端口 |
| name | memory_limit_percentage | 参数名 |
| data_type | NULL | 参数类型 |
| value | 80 | 参数值 |
| info | the size of the memory reserved for internal use(for testing purpose). Range [10, 90] | 参数的描述。 该参数的这个描述不是很准确,这是限制进程 observer 能分配的最大内存 |
| section | OBSERVER | 参数归类 |
| scope | CLUSTER | 参数生效范围 |
| edit_level | DYNAMIC_EFFECTIVE |