---
title: "发起集群级备份 - OceanBase 数据库 V4.3.4 | OceanBase 文档中心"
description: 发起集群级备份 obshell 发起 OceanBase 数据库的集群级（所有租户）备份支持两种方式： 通过调用 API 发起备份 通过 obshell 命令发起备份 本文将以一个 3 副本的 OceanBase 集群为例，介绍如何通过 obshell 发起集群级备份。 前提条件 OceanBase 集群已被 obs…
---
切换语言

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

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

# 发起集群级备份

更新时间：2024-12-27 23:00:00

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.4/zh-CN/700.reference/1500.Components-and-Tools/100.manage/100.obshell/210.use-case/200.cluster-management/600.initiate-cluster-level-backup.md)  

obshell 发起 OceanBase 数据库的集群级（所有租户）备份支持两种方式：

- 通过调用 API 发起备份
 - 通过 obshell 命令发起备份

本文将以一个 3 副本的 OceanBase 集群为例，介绍如何通过 obshell 发起集群级备份。

## 前提条件

- OceanBase 集群已被 obshell 运维管理，详细的判断方法及接管操作可参见 [接管非 obshell 部署集群](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001577500)。
 - OceanBase 集群的所有 OBServer 节点和 obshell 都正常运行。

## 部署模式

本文中三台机器的使用情况如下（obshell 使用默认端口 2886）：

| 角色 | 机器 | 备注 |
| --- | --- | --- |
| OBServer 节点 | 10.10.10.1 | OceanBase 数据库 zone1 |
| OBServer 节点 | 10.10.10.2 | OceanBase 数据库 zone2 |
| OBServer 节点 | 10.10.10.3 | OceanBase 数据库 zone3 |

## 通过 API 备份

#### 说明

obshell 会对被调用的 API 进行安全校验。因此，您在每次调用 API 之前都需先参考 [API 混合加密](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001576772) 一文对请求进行加密，并在 curl 命令中配置加密后的请求头部（`${request_headers}`）和请求体（`${request_body}`）。

### 步骤 1：（可选）设置集群级备份配置

调用任一 obshell 的 `/api/v1/obcluster/backup/config` 接口可以进行集群级备份配置。

#### 说明

若之前已配置过集群级备份，则不需要多次调用该接口。

     命令行命令   Python   GO

命令行中调用对应 API 接口的说明可参见 [设置集群级备份配置](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001577484)。该接口会创建一个异步任务，查看任务进度的方法可参见 [获取任务的详细信息](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001577433)。等待任务完成，则配置完成。

```shell
[admin@test001 ~]$ curl -H "Content-Type: application/json" -H 'X-OCS-Header:${request_headers}' -X POST -d '${request_body}' http://10.10.10.1:2886/api/v1/obcluster/backup/config

```

加密前的请求体内容如下：

```shell
{
  "backup_base_uri":"file:///data/backup",
  "log_archive_concurrency":50
}

```

通过 obshell-sdk-python 请求对应 API 方法的介绍可参见 [设置集群级备份配置](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001578576)。

```python
...
client = ClientSet("10.10.10.1", 2886, PasswordAuth("****"))
client.v1.post_cluster_backup_config_sync(
    "file:///data/backup",
    log_archive_concurrency=100,
)
...

```

通过 obshell-sdk-go 请求对应 API 方法的介绍可参见 [设置集群级备份配置](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001578644)。

```go
...
client, err := services.NewClientWithPassword("10.10.10.1", 2886, "****")
request := client.V1().NewClusterBackupConfigPostRequest("file:///data/backup")
request.SetArchiveLagTarget("10s").SetLogArchiveConcurrency(100).
dag, err := client.V1().ClusterBackupConfigSyncWithRequest(request)
...

```

### 步骤 2：发起集群级备份

调用任一 obshell 的 `/api/v1/obcluster/backup` 接口可以发起集群级备份。

命令行中调用对应 API 接口的说明可参见 [发起集群级备份](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001577494)。该接口会创建一个异步任务，查看任务进度的方法可参见 [获取任务的详细信息](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001577433)。等待任务完成，则备份结束。

```shell
[admin@test001 ~]$ curl -H "Content-Type: application/json" -H 'X-OCS-Header:${request_headers}' -X POST -d '${request_body}' http://10.10.10.1:2886/api/v1/obcluster/backup

```

```shell
{
    "mode":"full"
}

```

通过 obshell-sdk-python 请求对应 API 方法的介绍可参见 [发起集群级备份](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001578579)。

```python
...
client = ClientSet("10.10.10.1", 2886, PasswordAuth("****"))
client.v1.start_cluster_backup_sync("full")
...

```

通过 obshell-sdk-go 请求对应 API 方法的介绍可参见 [发起集群级备份](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001578640)。

```go
...
client, err := services.NewClientWithPassword("10.10.10.1", 2886, "****")
request := client.V1().NewClusterBackupRequest()
request.SetBackupMode("full")
dag, err := client.V1().ClusterBackupWithRequest(request)
...

```

### 步骤 3：查看集群级备份任务

调用任一 obshell 的 `/api/v1/obcluster/backup/overview` 接口可以查看集群级备份任务。

命令行中调用对应 API 接口的说明可参见 [查看集群级备份任务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001577490)。

```shell
[admin@test001 ~]$ curl -H "Content-Type: application/json" -H 'X-OCS-Header:${request_headers}' -X GET http://10.10.10.1:2886/api/v1/obcluster/backup/overview

```

通过 obshell-sdk-python 请求对应 API 方法的介绍可参见 [查看集群级备份任务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001578577)。

```python
...
client = ClientSet("10.10.10.1", 2886, PasswordAuth("****"))
client.v1.get_cluster_backup_overview()
...

```

通过 obshell-sdk-go 请求对应 API 方法的介绍可参见 [查看集群级备份任务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001578650)。

```go
...
client, err := services.NewClientWithPassword("10.10.10.1", 2886, "****")
res, err := client.V1().GetClusterBackupOverview()
...

```

## 通过 obshell 命令备份

### 步骤 1：执行集群备份

在任一节点调用 `obshell cluster backup` 命令，即可完成备份配置并触发一次备份。命令详见 [obshell 集群命令组](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001576787) 中 **obshell cluster backup** 部分介绍。

```shell
[admin@test001 ~]$ /home/admin/oceanbase/bin/obshell cluster backup -u 'file:///data/backup'

```

### 步骤 2：查询备份任务

所用命令的详细介绍可参见 [obshell 备份命令组](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001576786) 中 **obshell backup show** 部分。

```shell
[admin@test001 ~]$ /home/admin/oceanbase/bin/obshell backup show

```

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