第五章:运维 OceanBase 数据库 5.7 如何使用 OBD 运维17认证网

正规官方授权
更专业・更权威

第五章:运维 OceanBase 数据库 5.7 如何使用 OBD 运维

5.7 如何使用 OBD 运维

如何使用 OBD 调整 OceanBase 集群参数

您可通过使用 OBD 调整 OceanBase 集群参数为集群节点内存扩容,以下示例介绍如何将集群节点内存从 8GB 扩容到 16GB。

  1. 使用 OBD 命令编辑参数文件
    obd cluster edit-config obce-3zones
    
    # 修改:
        memory_limit: 16G # The maximum running memory for an observer
    
    # 保存:
    oceanbase-ce-3.1.0 already installed.
    obproxy-3.1.0 already installed.
    Search param plugin and load ok
    Parameter check ok
    Save deploy "obce-3zones" configuration

     

  2. 使用 OBD 命令 reload 参数
    obd cluster reload obce-3zones
    
    # 输出:
    Get local repositories and plugins ok
    Open ssh connection ok
    Cluster status check ok
    Connect to observer ok
    Connect to obproxy ok
    obce-3zones reload

     

  3. 登录 sys 租户确认参数变更
    MySQL [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 | 172.20.249.49 |     2882 | memory_limit | NULL      | 16G   | 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 |
    | zone1 | observer | 172.20.249.52 |     2882 | memory_limit | NULL      | 16G   | 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 |
    | zone3 | observer | 172.20.249.51 |     2882 | memory_limit | NULL      | 16G   | 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 |
    +-------+----------+---------------+----------+--------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
    3 rows in set (0.005 sec)

     

  4. 确认集群可用内存变化
    select a.zone,concat(a.svr_ip,':',a.svr_port) observer, cpu_total, (cpu_total-cpu_assigned) cpu_free, round(mem_total/1024/1024/1024) mem_total_gb, round((mem_total-mem_assigned)/1024/1024/1024) mem_free_gb, usec_to_time(b.last_offline_time) last_offline_time, usec_to_time(b.start_service_time) start_service_time, b.status, usec_to_time(b.stop_time) stop_time, b.build_version 
    from __all_virtual_server_stat a join __all_server b on (a.svr_ip=b.svr_ip and a.svr_port=b.svr_port)
    order by a.zone, a.svr_ip
    ;

     

    输出:

    +-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+----------------------------+------------------------------------------------------------------------+
    | zone  | observer           | cpu_total | cpu_free | mem_total_gb | mem_free_gb | last_offline_time          | start_service_time         | status | stop_time                  | build_version                                                          |
    +-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+----------------------------+------------------------------------------------------------------------+
    | zone1 | 172.20.249.52:2882 |        14 |        0 |           13 |           8 | 1970-01-01 08:00:00.000000 | 2021-09-25 08:19:06.622351 | active | 1970-01-01 08:00:00.000000 | 3.1.0_3-b20901e8c84d3ea774beeaca963c67d7802e4b4e(Aug 10 2021 08:10:38) |
    | zone2 | 172.20.249.49:2882 |        14 |        0 |           13 |           8 | 1970-01-01 08:00:00.000000 | 2021-09-25 08:19:07.392669 | active | 1970-01-01 08:00:00.000000 | 3.1.0_3-b20901e8c84d3ea774beeaca963c67d7802e4b4e(Aug 10 2021 08:10:38) |
    | zone3 | 172.20.249.51:2882 |        14 |        0 |           13 |           8 | 1970-01-01 08:00:00.000000 | 2021-09-26 14:05:58.641570 | active | 1970-01-01 08:00:00.000000 | 3.1.0_3-b20901e8c84d3ea774beeaca963c67d7802e4b4e(Aug 10 2021 08:10:38) |
    +-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+----------------------------+------------------------------------------------------------------------+
    3 rows in set (0.009 sec)

     

    select t1.name resource_pool_name, t2.`name` unit_config_name, t2.max_cpu, t2.min_cpu, round(t2.max_memory/1024/1024/1024) max_mem_gb, round(t2.min_memory/1024/1024/1024) min_mem_gb, t3.unit_id, t3.zone, concat(t3.svr_ip,':',t3.`svr_port`) observer,t4.tenant_id, t4.tenant_name
    from __all_resource_pool t1 join __all_unit_config t2 on (t1.unit_config_id=t2.unit_config_id)
        join __all_unit t3 on (t1.`resource_pool_id` = t3.`resource_pool_id`)
        left join __all_tenant t4 on (t1.tenant_id=t4.tenant_id)
    order by t1.`resource_pool_id`, t2.`unit_config_id`, t3.unit_id
    ;

     

    输出:

    +--------------------+------------------+---------+---------+------------+------------+---------+-------+--------------------+-----------+-------------+
    | resource_pool_name | unit_config_name | max_cpu | min_cpu | max_mem_gb | min_mem_gb | unit_id | zone  | observer           | tenant_id | tenant_name |
    +--------------------+------------------+---------+---------+------------+------------+---------+-------+--------------------+-----------+-------------+
    | sys_pool           | sys_unit_config  |       5 |       5 |          2 |          2 |       1 | zone1 | 172.20.249.52:2882 |         1 | sys         |
    | sys_pool           | sys_unit_config  |       5 |       5 |          2 |          2 |       2 | zone2 | 172.20.249.49:2882 |         1 | sys         |
    | sys_pool           | sys_unit_config  |       5 |       5 |          2 |          2 |       3 | zone3 | 172.20.249.51:2882 |         1 | sys         |
    | my_pool            | unit1            |       9 |       9 |          3 |          3 |    1001 | zone1 | 172.20.249.52:2882 |      1002 | obmysql     |
    | my_pool            | unit1            |       9 |       9 |          3 |          3 |    1002 | zone2 | 172.20.249.49:2882 |      1002 | obmysql     |
    | my_pool            | unit1            |       9 |       9 |          3 |          3 |    1003 | zone3 | 172.20.249.51:2882 |      1002 | obmysql     |
    +--------------------+------------------+---------+---------+------------+------------+---------+-------+--------------------+-----------+-------------+
    6 rows in set (0.010 sec)

     

    从输出结果可以看出新增可用内存 8G。

  5. 调大业务租户内存规格
    alter resource unit unit1 max_memory='11G',min_memory='11G';
    
    # 重复查看集群可用内存
    
    +-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+----------------------------+------------------------------------------------------------------------+
    | zone  | observer           | cpu_total | cpu_free | mem_total_gb | mem_free_gb | last_offline_time          | start_service_time         | status | stop_time                  | build_version                                                          |
    +-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+----------------------------+------------------------------------------------------------------------+
    | zone1 | 172.20.249.52:2882 |        14 |        0 |           13 |           0 | 1970-01-01 08:00:00.000000 | 2021-09-25 08:19:06.622351 | active | 1970-01-01 08:00:00.000000 | 3.1.0_3-b20901e8c84d3ea774beeaca963c67d7802e4b4e(Aug 10 2021 08:10:38) |
    | zone2 | 172.20.249.49:2882 |        14 |        0 |           13 |           0 | 1970-01-01 08:00:00.000000 | 2021-09-25 08:19:07.392669 | active | 1970-01-01 08:00:00.000000 | 3.1.0_3-b20901e8c84d3ea774beeaca963c67d7802e4b4e(Aug 10 2021 08:10:38) |
    | zone3 | 172.20.249.51:2882 |        14 |        0 |           13 |           0 | 1970-01-01 08:00:00.000000 | 2021-09-26 14:05:58.641570 | active | 1970-01-01 08:00:00.000000 | 3.1.0_3-b20901e8c84d3ea774beeaca963c67d7802e4b4e(Aug 10 2021 08:10:38) |
    +-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+----------------------------+------------------------------------------------------------------------+
    3 rows in set (0.005 sec)

     

如何使用 OBD 对 OceanBase 集群或 ODP 集群扩容

使用 OBD 对 OceanBase 集群扩容主要是通过增加每个 Zone 内的节点数来实现。前面已经介绍过集群扩容手动步骤,这里主要是介绍使用 OBD 工具进行扩容的操作步骤。

注意

OBD 的定位并不是运维工具,所以对于集群扩容节点并不是特别顺畅。

使用 OBD 对集群扩容可分为如下几步:

  1. OBD 初始化新机器节点目录。
  2. OBD 启动旧集群节点。
  3. OceanBase 集群添加新节点

在进行扩容操作之前,您需先查看当前部署的集群信息。

[admin@obce00 ~]$ obd cluster display obce-3zones
Get local repositories and plugins ok
Open ssh connection ok
Cluster status check ok
Connect to observer ok
Wait for observer init ok
+-------------------------------------------------+
|                     observer                    |
+---------------+---------+------+-------+--------+
| ip            | version | port | zone  | status |
+---------------+---------+------+-------+--------+
| 172.20.249.49 | 3.1.0   | 2881 | zone2 | active |
| 172.20.249.51 | 3.1.0   | 2881 | zone3 | active |
| 172.20.249.52 | 3.1.0   | 2881 | zone1 | active |
+---------------+---------+------+-------+--------+

Connect to obproxy ok
+-------------------------------------------------+
|                     obproxy                     |
+---------------+------+-----------------+--------+
| ip            | port | prometheus_port | status |
+---------------+------+-----------------+--------+
| 172.20.249.52 | 2883 | 2884            | active |
| 172.20.249.49 | 2883 | 2884            | active |
| 172.20.249.51 | 2883 | 2884            | active |
+---------------+------+-----------------+--------+
[admin@obce00 ~]$ obd --version
OceanBase Deploy: 1.1.0
REVISION:
BUILD_BRANCH:
BUILD_TIME: Aug 10 2021 11:50:40OURCE
Copyright (C) 2021 OceanBase
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

 

OBD 初始化新机器节点目录

当给集群扩容节点时,建议每个 Zone 新增相同配置的机器,但是不能直接在现有配置文件中编辑。当前版本(1.1.0)采取的方式是复制现有的配置文件为新文件,然后修改配置文件中的 servers 下的 IP 为新的 IP。如果 ODP 集群不扩容,就删除 ODP 配置节。

之后运行 obd cluster deploy 命令。deploy 命令会自动在新节点安装 OceanBase 软件包、初始化相关目录。

obd cluster deploy obce-3zones2 -c obce-3zones2.yaml

 

注意

deploy 成功后,不要运行 obd cluster start 命令,否则会初始化一个新的集群,不符合原本的目的。

OBD 启动旧集群节点

此时需要使用命令 obd cluster edit-config 编辑当前运行的集群的配置文件,在 servers 下加入新的节点 IP,新 IP 紧跟在旧的 IP 之后(注意换行)。

然后针对旧集群运行 obd cluster start 命令。运行该命令会启动集群中所有节点,如果节点的进程已经启动,就会跳过。所以,只会启动新增节点的进程。

obd cluster start obce-3zones

 

OceanBase 集群添加新节点

对于 OceanBase 集群扩容节点,还需要在集群 sys 租户里运行如下命令添加新的节点到相应 Zone 里。

ALTER SYSTEM ADD SERVER '节点IP:RPC端口' ZONE '节点所属Zone';
# 例如
alter system add server '11.166.87.5:2882' zone 'zone1';
复制

 

运行以上命令后,查看节点状态可以看到新节点的状态是 active

想了解更多干货,可通过下方扫码关注

可扫码添加上智启元官方客服微信👇

未经允许不得转载:17认证网 » 第五章:运维 OceanBase 数据库 5.7 如何使用 OBD 运维
分享到:0

评论已关闭。

400-663-6632
咨询老师
咨询老师
咨询老师