暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分布式数据库学习Note228:OceanBase社区版中,如何添加 Zone?

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/


添加 Zone 通常用于集群的扩容场景中。

操作步骤

  1. 使用 root 用户登录到集群的 sys 租户。

    连接示例如下,连接数据库时请以实际环境为准。

    obclient -h10.xx.xx.xx -P2883 -uroot@sys -p***** -A
    

    有关更加详细的连接数据库的操作指引,参见 连接数据库概述(MySQL 模式) 和 连接数据库概述(Oracle 模式)

  2. 执行以下命令,在集群中添加 Zone。

    语句如下:

    obclient [(none)]> ALTER SYSTEM ADD ZONE zone_name [IDC [=] 'idc_name', REGION [=] 'region_name', ZONE_TYPE [=] 'ReadWrite'];
    

    相关参数说明如下:

    • zone_name:待添加的 Zone 的名称,每条语句每次仅支持添加一个 Zone。如果需要添加多个 Zone,需要重复执行该语句。

    • idc_name:指定 Zone 所在机房的名称。如果不指定,默认为空。

    • region_name:指定 Zone 所在 Region 的名称,如果不指定,默认值为 default_region

    • ZONE_TYPE:指定 Zone 的类型,当前版本仅支持读写 Zone(ReadWrite)。如果不指定,默认为读写 Zone。

    在集群中增加 zone4 的示例如下:

    obclient [(none)]> ALTER SYSTEM ADD ZONE zone4 IDC 'hz1', REGION 'hangzhou';
    
  3. 操作成功后,可以查询 oceanbase.DBA_OB_ZONES 视图进行确认。

    obclient [(none)]> SELECT * FROM oceanbase.DBA_OB_ZONES;
    +-------+----------------------------+----------------------------+----------+-----+----------+-----------+
    | ZONE  | CREATE_TIME                | MODIFY_TIME                | STATUS   | IDC | REGION   | TYPE      |
    +-------+----------------------------+----------------------------+----------+-----+----------+-----------+
    | zone1 | 2022-12-20 17:50:17.168745 | 2022-12-20 17:50:40.801054 | ACTIVE   | HZ0 | hangzhou | ReadWrite |
    | zone2 | 2022-12-20 17:50:17.168745 | 2022-12-20 17:50:40.809504 | ACTIVE   | HZ0 | hangzhou | ReadWrite |
    | zone3 | 2022-12-20 17:50:17.169804 | 2022-12-20 17:50:40.815833 | ACTIVE   | SH0 | shanghai | ReadWrite |
    | zone4 | 2023-01-06 14:57:18.775946 | 2023-01-06 14:57:18.776974 | INACTIVE | hz1 | hangzhou | ReadWrite |
    +-------+----------------------------+----------------------------+----------+-----+----------+-----------+
    4 rows in set
    

    查询结果中有新添加的 Zone,则表示添加 Zone 成功,新添加成功的 Zone 的状态为 INACTIVE

    有关 oceanbase.DBA_OB_ZONES 视图的更多详细信息,请参见 oceanbase.DBA_OB_ZONES

  4. 添加 Zone 后,如果需要使用该 Zone,还需要启动 Zone,使 Zone 的状态变为 ACTIVE

    语句如下:

    obclient [(none)]> ALTER SYSTEM START ZONE zone_name;
    

    其中,zone_name 为待启动的 Zone 的名称。

    示例如下:

    obclient [(none)]> ALTER SYSTEM START ZONE zone4;
    Query OK, 0 rows affected
    
    obclient [(none)]> SELECT * FROM oceanbase.DBA_OB_ZONES;
    +-------+----------------------------+----------------------------+--------+-----+----------+-----------+
    | ZONE  | CREATE_TIME                | MODIFY_TIME                | STATUS | IDC | REGION   | TYPE      |
    +-------+----------------------------+----------------------------+--------+-----+----------+-----------+
    | zone1 | 2022-12-20 17:50:17.168745 | 2022-12-20 17:50:40.801054 | ACTIVE | HZ0 | hangzhou | ReadWrite |
    | zone2 | 2022-12-20 17:50:17.168745 | 2022-12-20 17:50:40.809504 | ACTIVE | HZ0 | hangzhou | ReadWrite |
    | zone3 | 2022-12-20 17:50:17.169804 | 2023-01-30 17:34:11.228474 | ACTIVE | HZ1 | hangzhou | ReadWrite |
    | zone4 | 2023-01-06 15:30:30.887362 | 2023-01-31 13:47:56.107429 | ACTIVE | hz1 | hangzhou | ReadWrite |
    +-------+----------------------------+----------------------------+--------+-----+----------+-----------+
    4 rows in set
    

    根据示例结果可知,成功启动 Zone 后,新添加的 Zone 的状态变为 ACTIVE

后续操作

  • 添加 Zone 后,如果需要修改 Zone 所在的 idc_name 或 region_name,您可以通过修改 Zone 来完成,修改 Zone 的详细操作可参见 修改 Zone

  • 添加 Zone 后,如果要使用该 Zone,还需要向该 Zone 中添加节点,添加节点的详细操作请参见 添加节点

  • 添加 Zone 后,新添加的 Zone 的状态为 INACTIVE,如果需要使该 Zone 内的节点能提供服务,还需要启动该 Zone,启动 Zone 的详细操作请参见 启动 Zone



欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论