---
title: "obshell-sdk-python 快速上手 - OceanBase 数据库 V4.3.1 | OceanBase 文档中心"
description: obshell-sdk-python 快速上手 环境要求 obshell-sdk-python 适用于 Python 3.0 及以上版本。 需确保环境中的 obshell 处于运行状态。 操作步骤 说明 本节以部署 OceanBase 集群为例介绍如何使用 obshell-sdk-python，只需在任一 OBSer…
---
切换语言

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

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

# obshell-sdk-python 快速上手

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

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.1/zh-CN/700.reference/1500.Components-and-Tools/100.manage/100.obshell/500.obshell-sdk-reference/100.python/100.quickstart-of-python.md)  

## 环境要求

- obshell-sdk-python 适用于 Python 3.0 及以上版本。
 - 需确保环境中的 obshell 处于运行状态。

## 操作步骤

#### 说明

本节以部署 OceanBase 集群为例介绍如何使用 obshell-sdk-python，只需在任一 OBServer 节点执行以下操作步骤即可。

1. 安装 obshell-sdk-python

   ```shell
   pip install obshell

   ```
 2. 创建客户端

   ```python
   from obshell import ClientSet
   from obshell.auth import PasswordAuth

   def main():
       client = ClientSet("10.10.10.1", 2886, PasswordAuth("****", "v1"))

   ```

   示例中的 `10.10.10.1` 为目标 obshell 节点的 IP 地址，`2886` 为目标 obshell 节点的服务端口号，需根据实际情况修改为对应的 IP 和端口号。`PasswordAuth` 是向 obshell 请求时使用的安全认证方式，需配置目标 obshell 所在集群 root@sys 用户的密码，以及使用的认证方式的版本号。如未指定版本号，则 client 会根据目标 obshell 的版本自适应选择合适的认证方式版本。

   #### 说明

   当目标 obshell 身份为 Single Agent 时，无需设置 PasswordAuth。

   另外，也可以选择创建指定版本的 client，示例如下。

   ```python
   from obshell import ClientV1
   from obshell.auth import PasswordAuth

   def main():
       client = ClientV1("10.10.10.1", 2886, PasswordAuth("****", "v1"))

   ```
 3. 部署 OceanBase 集群

   obshell-sdk-python 提供了两类方法来创建一个 OceanBase 集群：一是向 obshell 请求对应的 API 方法成功后，立刻返回；二是向 obshell 请求 API 成功后，等待 obshell 任务执行完成后再返回。前者任务异步执行，后者任务同步执行。

   本节以部署一个 1-1-1 集群为例，代码如下：

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

   def main():
       client = ClientSet("10.10.10.1", 2886, PasswordAuth("****"))

       # join 自己成为 MASTER
       dag = client.v1.join("10.10.10.1", 2886, "zone1")
       client.v1.wait_dag_succeed(dag.generic_id)
       # 加入 follower 到集群
       dag = client.v1.join("10.10.10.2", 2886, "zone2")
       client.v1.wait_dag_succeed(dag.generic_id)
       dag = client.v1.join("10.10.10.3", 2886, "zone3")
       client.v1.wait_dag_succeed(dag.generic_id)

       # 设置各个 OBServer 节点的配置项
       configs = {
           "datafile_size": "24G", "log_disk_size": "24G",
           "cpu_count": "16", "memory_limit": "16G", "system_memory": "8G",
           "enable_syslog_recycle": "true", "enable_syslog_wf": "true"}
       dag = client.v1.config_observer(configs, "GLOBAL", [])
       client.v1.wait_dag_succeed(dag.generic_id)

       # 设置 OceanBase 集群的配置信息
       dag = client.v1.config_obcluster("test-sdk", 11, "****")
       client.v1.wait_dag_succeed(dag.generic_id)

       # 初始化集群
       dag = client.v1.init()
       client.v1.wait_dag_succeed(dag.generic_id)

       # 获取当前集群的状态信息
       status = client.v1.get_status()
       print(status)

   ```

       # join 自己成为 MASTER
       client.v1.join_sync("10.10.10.1", 2886, "zone1")
       # 加入 follower 到集群
       client.v1.join_sync("10.10.10.2", 2886, "zone2")
       client.v1.join_sync("10.10.10.3", 2886, "zone3")

       # 设置各个 OBServer 节点的配置项
       configs = {
           "datafile_size": "24G", "log_disk_size": "24G",
           "cpu_count": "16", "memory_limit": "16G", "system_memory": "8G",
           "enable_syslog_recycle": "true", "enable_syslog_wf": "true"}
       client.v1.config_observer_sync(configs, "GLOBAL", [])

       # 设置 OceanBase 集群的配置信息
       client.v1.config_obcluster_sync("test-sdk", 11, "****")

       # 初始化集群
       client.v1.init_sync()

 上一篇 下一篇 ![有帮助](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) 咨询热线
