---
title: "在集群初始化前添加节点 - OceanBase 数据库 V4.3.0 | OceanBase 文档中心"
description: 在集群初始化前添加节点 本文介绍如何通过 obshell-sdk-go 向未初始化的集群添加节点。 说明 建议先查看 obshell-sdk-go 快速上手 内容，了解如何使用 obshell-sdk-go。 注意事项 向未初始化的集群添加节点前，需注意以下要求： 请求的 client 对应的节点需在待初始化的集群中…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.0

# 在集群初始化前添加节点

更新时间：2026-04-10 11:58:35

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.0/zh-CN/700.reference/1500.Components-and-Tools/100.manage/100.obshell/500.obshell-sdk-reference/200.go/300.add-new-node-of-go.md)  

本文介绍如何通过 obshell-sdk-go 向未初始化的集群添加节点。

#### 说明

建议先查看 [obshell-sdk-go 快速上手](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000904137) 内容，了解如何使用 obshell-sdk-go。

## 注意事项

向未初始化的集群添加节点前，需注意以下要求：

- 请求的 client 对应的节点需在待初始化的集群中（自身添加自身除外）。
 - 需确保被添加的节点从未加入过任何集群。
 - 当向自身添加自身节点时，需确保该节点从未加入任何集群，并且 obshell 正常运行。

## 示例代码

以下代码用于向 `10.10.10.1` 机器添加自身节点成为 Master，再为其添加其他节点（`10.10.10.2`）为 Follower。

    任务同步执行   任务异步执行

```go
package main

import (
    "github.com/oceanbase/obshell-sdk-go/services"
)

func main() {
    // 创建 client 实例，节点地址为 '10.10.10.1'，端口为 2886。
    client, err := services.NewClient("10.10.10.1", 2886)
    if err != nil {
        panic(err)
    }

    // join 自己。
    req := client.V1().NewJoinRequest("10.10.10.1", 2886, "zone1")
    if _, err = client.V1().JoinSyncWithRequest(req); err != nil {
        panic(err)
    }

    // 向 '10.10.10.1' 所在集群，添加节点 '10.10.10.2:2886'。
    req = client.V1().NewJoinRequest("10.10.10.2", 2886, "zone1")
    if _, err = client.V1().JoinSyncWithRequest(req); err != nil {
        panic(err)
    }
}

```

    // join 自己。
    req := client.V1().NewJoinRequest("10.10.10.1", 2886, "zone1")
    dag, err := client.V1().JoinWithRequest(req)
    if err != nil {
        panic(err)
    }
    // 等待任务成功
    if _, err = client.V1().WaitDagSucceed(dag.GenericID); err != nil {
        panic(err)
    }

    // 向 '10.10.10.1' 所在集群，添加节点 '10.10.10.2:2886'。
    req = client.V1().NewJoinRequest("10.10.10.2", 2886, "zone1")
    dag, err = client.V1().JoinWithRequest(req)
    if err != nil {
        panic(err)
    }
    // 等待任务成功
    if  _, err = client.V1().WaitDagSucceed(dag.GenericID); err != nil {
        panic(err)
    }
}

```

## 相关文档

- 在集群初始化前添加节点的 API 接口说明可参见 [在集群初始化前添加节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000694629)。
 - 通过 obshell-sdk-python 请求 API 方法的介绍可参见 [在集群初始化前添加节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000904129)。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
