Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
48e5ba3
update backup & restore usage docs
Feb 11, 2020
d8f3080
format docs
Feb 11, 2020
f74bbcd
fix CI
Feb 11, 2020
509ab29
Apply suggestions from code review
Feb 15, 2020
f4e8282
Merge remote-tracking branch 'src/master' into update-backup-restore-…
Feb 15, 2020
e5aef9f
update TOC
Feb 15, 2020
83aa399
Merge branch 'master' into pr/2236
Feb 23, 2020
8c36f44
make the same changes as before
Feb 23, 2020
d4b781e
fix links
Feb 23, 2020
ebe4141
fix links
Feb 23, 2020
c1a9c12
Merge remote-tracking branch 'src/master' into update-backup-restore-…
Feb 27, 2020
7814021
Merge branch 'master' into update-backup-restore-usage-docs
yikeke Feb 27, 2020
0ff3f9b
address comments
Feb 27, 2020
7f57e20
Merge branch 'update-backup-restore-usage-docs' of https://github.com…
Feb 27, 2020
a455df0
Update TOC.md
Feb 27, 2020
729ffd2
tiny fix
Feb 27, 2020
cd8dc8b
relocate charts file
Feb 27, 2020
c911d16
refine and unity titles in TOC and docs; fix links
Feb 27, 2020
aca9d7b
*: add an alias, fix dead links, refine format & language
TomShawn Feb 27, 2020
64e16cc
Merge remote-tracking branch 'src/master' into update-backup-restore-…
Feb 27, 2020
06977ee
Merge branch 'update-backup-restore-usage-docs' of https://github.com…
Feb 27, 2020
97cda8f
Update tidb-in-kubernetes/maintain/backup-and-restore/charts.md
Feb 28, 2020
9d32a3c
Merge remote-tracking branch 'src/master' into update-backup-restore-…
Feb 28, 2020
1222cb2
fix typos
TomShawn Feb 28, 2020
7e9453a
Merge branch 'master' into update-backup-restore-usage-docs
TomShawn Feb 28, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,13 @@
+ 运维
- [销毁 TiDB 集群](/tidb-in-kubernetes/maintain/destroy-tidb-cluster.md)
- [维护 TiDB 集群所在节点](/tidb-in-kubernetes/maintain/kubernetes-node.md)
- [备份与恢复](/tidb-in-kubernetes/maintain/backup-and-restore.md)
+ 备份与恢复
- [基于 Helm Charts 的备份恢复](/tidb-in-kubernetes/maintain/backup-and-restore/charts.md)
+ 基于 CRD 的备份恢复
- [备份 TiDB 集群到 GCS](/tidb-in-kubernetes/maintain/backup-and-restore/backup-gcs.md)
- [恢复 GCS 上的备份数据](/tidb-in-kubernetes/maintain/backup-and-restore/restore-gcs.md)
- [备份 TiDB 集群到兼容 S3 的存储](/tidb-in-kubernetes/maintain/backup-and-restore/backup-s3.md)
- [恢复 S3 兼容存储上的备份数据](/tidb-in-kubernetes/maintain/backup-and-restore/restore-s3.md)
- [恢复 Kubernetes 上的 TiDB 集群数据](/tidb-in-kubernetes/maintain/lightning.md)
- [收集日志](/tidb-in-kubernetes/maintain/log-collecting.md)
- [集群故障自动转移](/tidb-in-kubernetes/maintain/auto-failover.md)
Expand Down
4 changes: 2 additions & 2 deletions reference/tools/user-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ TiDB 生态工具可以分为几种:
- Loader 的输入:Mydumper 输出的文件
- Loader 的输出:以 SQL 形式写入 TiDB
- 适用 TiDB 版本:所有版本
- Kubernetes 支持:[备份与恢复](/tidb-in-kubernetes/maintain/backup-and-restore.md)
- Kubernetes 支持:[备份与恢复](/tidb-in-kubernetes/maintain/backup-and-restore/charts.md)

#### 全量导入工具 TiDB Lightning

Expand Down Expand Up @@ -90,7 +90,7 @@ TiDB 生态工具可以分为几种:
- Mydumper 的输入:MySQL/TiDB 集群
- Mydumper 的输出:SQL 文件
- 适用 TiDB 版本:所有版本
- Kubernetes 支持:[备份与恢复](/tidb-in-kubernetes/maintain/backup-and-restore.md)
- Kubernetes 支持:[备份与恢复](/tidb-in-kubernetes/maintain/backup-and-restore/charts.md)

#### 增量导出工具 TiDB Binlog

Expand Down
42 changes: 22 additions & 20 deletions tidb-in-kubernetes/maintain/backup-and-restore/backup-gcs.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
---
title: 在 Kubernetes 上备份 TiDB 集群到 GCS
title: 备份 TiDB 集群到 GCS
category: how-to
---

# 在 Kubernetes 上备份 TiDB 集群到 GCS
# 备份 TiDB 集群到 GCS

本文档详细描述了如何将 Kubernetes 上 TiDB 集群的数据备份到 [Google Cloud Storage (GCS)](https://cloud.google.com/storage/docs/) 上。本文档中的“备份”,均是指全量备份(Ad-hoc 全量备份和定时全量备份),底层通过使用 [`mydumper`](/reference/tools/mydumper.md) 获取集群的逻辑备份,然后再将备份数据上传到远端 GCS。

本文使用的备份恢复方式基于 TiDB Operator 新版(v1.1 及以上)的 CRD 实现的。基于 Helm Charts 的备份恢复方式可参考[基于 Helm Charts 实现的 TiDB 集群备份与恢复](/tidb-in-kubernetes/maintain/backup-and-restore/charts.md)。

## Ad-hoc 全量备份

Ad-hoc 全量备份通过创建一个自定义的 `Backup` custom resource (CR) 对象来描述一次备份。TiDB Operator 根据这个 `Backup` 对象来完成具体的备份过程。如果备份过程中出现错误,程序不会自动重试,此时需要手动处理。
Expand Down Expand Up @@ -36,7 +38,7 @@ Ad-hoc 全量备份通过创建一个自定义的 `Backup` custom resource (CR)
{{< copyable "shell-regular" >}}

```shell
kubectl create secret generic backup-demo1-tidb-secret --from-literal=user=root --from-literal=password=<password> --namespace=test1
kubectl create secret generic backup-demo1-tidb-secret --from-literal=password=<password> --namespace=test1
```

### 备份数据到 GCS
Expand All @@ -59,16 +61,18 @@ metadata:
name: demo1-backup-gcs
namespace: test1
spec:
from:
host: <tidb-host-ip>
port: <tidb-port>
user: <tidb-user>
secretName: backup-demo1-tidb-secret
gcs:
secretName: gcs-secret
projectId: <your-project-id>
# location: us-east1
# storageClass: STANDARD_IA
# objectAcl: private
# bucketAcl: private
storageType: gcs
cluster: demo1
tidbSecretName: backup-demo1-tidb-secret
storageClassName: local-storage
storageSize: 10Gi
```
Expand Down Expand Up @@ -118,17 +122,13 @@ GCS 支持以下几种 bucket ACL 策略:

更多 `Backup` CR 字段的详细解释:

`.spec.metadata.namespace`:备份 TiDB 集群所在的 namespace。

`.spec.storageType`:备份的存储类型。目前主要有 S3 和 GCS 两种。

`.spec.cluster`:备份 TiDB 集群的名字。

`.spec.tidbSecretName`:访问 TiDB 集群所需凭证的 secret。

`.spec.storageClassName`:备份时指定所需的 PV 类型。如果不指定该项,则默认使用 TiDB Operator 启动参数中 `default-backup-storage-class-name` 指定的值,这个值默认为 `standard`。

`.spec.storageSize`:备份时指定所需的 PV 大小。该值应大于备份 TiDB 集群数据的大小。
* `.spec.metadata.namespace`:`Backup` CR 所在的 namespace。
* `.spec.from.host`:待备份 TiDB 集群的访问地址。
* `.spec.from.port`:待备份 TiDB 集群的访问端口。
* `.spec.from.user`:待备份 TiDB 集群的访问用户。
* `.spec.from.tidbSecretName`:待备份 TiDB 集群所需凭证的 secret。
* `.spec.storageClassName`:备份时指定所需的 PV 类型。如果不指定该项,则默认使用 TiDB Operator 启动参数中 `default-backup-storage-class-name` 指定的值,该值默认为 `standard`。
* `.spec.storageSize`:备份时指定所需的 PV 大小。该值应大于备份 TiDB 集群数据的大小。

## 定时全量备份

Expand Down Expand Up @@ -163,16 +163,18 @@ spec:
maxReservedTime: "3h"
schedule: "*/2 * * * *"
backupTemplate:
from:
host: <tidb-host-ip>
port: <tidb-port>
user: <tidb-user>
secretName: backup-demo1-tidb-secret
gcs:
secretName: gcs-secret
projectId: <your-project-id>
# location: us-east1
# storageClass: STANDARD_IA
# objectAcl: private
# bucketAcl: private
storageType: gcs
cluster: demo1
tidbSecretName: backup-demo1-tidb-secret
storageClassName: local-storage
storageSize: 10Gi
```
Expand Down
66 changes: 36 additions & 30 deletions tidb-in-kubernetes/maintain/backup-and-restore/backup-s3.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
---
title: 在 Kubernetes 上备份 TiDB 集群到兼容 S3 的存储
title: 备份 TiDB 集群到兼容 S3 的存储
category: how-to
---

# 在 Kubernetes 上备份 TiDB 集群到兼容 S3 的存储
# 备份 TiDB 集群到兼容 S3 的存储

这篇文档详细描述了如何将 Kubernetes 上的 TiDB 集群数据备份到兼容 S3 的存储上。本文档中的“备份”,均是指全量备份(Ad-hoc 全量备份和定时全量备份)。底层通过使用 [`mydumper`](/reference/tools/mydumper.md) 获取集群的逻辑备份,然后在将备份数据上传到兼容 S3 的存储上。
本文详细描述了如何将 Kubernetes 上的 TiDB 集群数据备份到兼容 S3 的存储上。本文档中的“备份”,均是指全量备份(Ad-hoc 全量备份和定时全量备份)。底层通过使用 [`mydumper`](/reference/tools/mydumper.md) 获取集群的逻辑备份,然后在将备份数据上传到兼容 S3 的存储上。

本文使用的备份恢复方式基于 TiDB Operator 新版(v1.1 及以上)的 CRD 实现。基于 Helm Charts 实现的备份恢复方式可参考[基于 Helm Charts 实现的 TiDB 集群备份与恢复](/tidb-in-kubernetes/maintain/backup-and-restore/charts.md)。

## Ad-hoc 全量备份

Expand Down Expand Up @@ -36,7 +38,7 @@ Ad-hoc 全量备份通过创建一个自定义的 `Backup` custom resource (CR)
{{< copyable "shell-regular" >}}

```shell
kubectl create secret generic backup-demo1-tidb-secret --from-literal=user=root --from-literal=password=<password> --namespace=test1
kubectl create secret generic backup-demo1-tidb-secret --from-literal=password=<password> --namespace=test1
```

### 备份数据到兼容 S3 的存储
Expand All @@ -59,16 +61,18 @@ Ad-hoc 全量备份通过创建一个自定义的 `Backup` custom resource (CR)
name: demo1-backup-s3
namespace: test1
spec:
from:
host: <tidb-host-ip>
port: <tidb-port>
user: <tidb-user>
secretName: backup-demo1-tidb-secret
s3:
provider: aws
secretName: s3-secret
# region: us-east-1
# storageClass: STANDARD_IA
# acl: private
# endpoint:
storageType: s3
cluster: demo1
tidbSecretName: backup-demo1-tidb-secret
storageClassName: local-storage
storageSize: 10Gi
```
Expand All @@ -91,13 +95,15 @@ Ad-hoc 全量备份通过创建一个自定义的 `Backup` custom resource (CR)
name: demo1-backup-s3
namespace: test1
spec:
from:
host: <tidb-host-ip>
port: <tidb-port>
user: <tidb-user>
secretName: backup-demo1-tidb-secret
s3:
provider: ceph
secretName: s3-secret
endpoint: http://10.0.0.1:30074
storageType: s3
cluster: demo1
tidbSecretName: backup-demo1-tidb-secret
storageClassName: local-storage
storageSize: 10Gi
```
Expand Down Expand Up @@ -136,17 +142,13 @@ Amazon S3 支持以下几种 storageClass 类型:

更多 `Backup` CR 字段的详细解释:

`.spec.metadata.namespace`: 备份 TiDB 集群所在的 namespace。

`.spec.storageType`: 代表备份的存储类型,目前主要有 S3 和 GCS。

`.spec.cluster`: 备份 TiDB 集群的名字。

`.spec.tidbSecretName`: 访问 TiDB 集群所需密码的 secret。

`.spec.storageClassName`: 备份时所需的 PV 类型。如果不指定该项,则默认使用 TiDB Operator 启动参数中 `default-backup-storage-class-name` 指定的值,这个值默认为 `standard`。

`.spec.storageSize`: 备份时指定所需的 PV 大小。这个值要大于备份 TiDB 集群的数据大小。
* `.spec.metadata.namespace`:`Backup` CR 所在的 namespace。
* `.spec.from.host`:待备份 TiDB 集群的访问地址。
* `.spec.from.port`:待备份 TiDB 集群的访问端口。
* `.spec.from.user`:待备份 TiDB 集群的访问用户。
* `.spec.from.tidbSecretName`:待备份 TiDB 集群所需凭证的 secret。
* `.spec.storageClassName`: 备份时所需的 PV 类型。如果不指定该项,则默认使用 TiDB Operator 启动参数中 `default-backup-storage-class-name` 指定的值,该值默认为 `standard`。
* `.spec.storageSize`: 备份时指定所需的 PV 大小。该值须大于备份 TiDB 集群的数据大小。

更多支持的兼容 S3 的 `provider` 如下:

Expand Down Expand Up @@ -192,16 +194,18 @@ Amazon S3 支持以下几种 storageClass 类型:
maxReservedTime: "3h"
schedule: "*/2 * * * *"
backupTemplate:
from:
host: <tidb-host-ip>
port: <tidb-port>
user: <tidb-user>
secretName: backup-demo1-tidb-secret
s3:
provider: aws
secretName: s3-secret
# region: us-east-1
# storageClass: STANDARD_IA
# acl: private
# endpoint:
storageType: s3
cluster: demo1
tidbSecretName: backup-demo1-tidb-secret
storageClassName: local-storage
storageSize: 10Gi
```
Expand Down Expand Up @@ -229,13 +233,15 @@ Amazon S3 支持以下几种 storageClass 类型:
maxReservedTime: "3h"
schedule: "*/2 * * * *"
backupTemplate:
from:
host: <tidb-host-ip>
port: <tidb-port>
user: <tidb-user>
secretName: backup-demo1-tidb-secret
s3:
provider: ceph
secretName: s3-secret
endpoint: http://10.0.0.1:30074
storageType: s3
cluster: demo1
tidbSecretName: backup-demo1-tidb-secret
provider: ceph
secretName: s3-secret
endpoint: http://10.0.0.1:30074
storageClassName: local-storage
storageSize: 10Gi
```
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
---
title: Kubernetes 上的 TiDB 集群备份恢复
title: 基于 Helm Charts 实现的 TiDB 集群备份恢复
category: how-to
aliases: ['/docs-cn/dev/tidb-in-kubernetes/maintain/backup-and-store/']
---

# Kubernetes 上的 TiDB 集群备份与恢复
# 基于 Helm Charts 实现的 TiDB 集群备份与恢复

这篇文档详细描述了如何对 Kubernetes 上的 TiDB 集群进行数据备份和数据恢复。
本文详细描述了如何对 Kubernetes 上的 TiDB 集群进行数据备份和数据恢复。本文使用的备份恢复方式是基于 Helm Charts 实现的。

TiDB Operator 1.1 及以上版本推荐使用基于 CRD 的备份恢复方式实现,详情可参阅以下文档:

- [备份 TiDB 集群到 GCS](/tidb-in-kubernetes/maintain/backup-and-restore/backup-gcs.md)
- [恢复 GCS 上的备份数据](/tidb-in-kubernetes/maintain/backup-and-restore/restore-gcs.md)
- [备份 TiDB 集群到兼容 S3 的存储](/tidb-in-kubernetes/maintain/backup-and-restore/backup-s3.md)
- [恢复 S3 兼容存储上的备份数据](/tidb-in-kubernetes/maintain/backup-and-restore/restore-s3.md)

Kubernetes 上的 TiDB 集群支持两种备份策略:

Expand Down
83 changes: 83 additions & 0 deletions tidb-in-kubernetes/maintain/backup-and-restore/restore-gcs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
title: 恢复 GCS 上的备份数据
category: how-to
---

# 恢复 GCS 上的备份数据

本文详细描述了将 Kubernetes 上通过 TiDB Operator 备份的 TiDB 集群数据恢复的具体操作过程。底层通过使用 [`loader`](/reference/tools/loader.md) 来进行集群恢复。

本文使用的备份方式基于 TiDB Operator 新版(v1.1 及以上)的 CRD 实现的。基于 Helm Charts 实现的备份恢复方式可参考[基于 Helm Charts 实现的 TiDB 集群备份与恢复](/tidb-in-kubernetes/maintain/backup-and-restore/charts.md)。

以下示例将存储在 [Google Cloud Storage (GCS)](https://cloud.google.com/storage/docs/) 上指定路径中的集群备份数据恢复到 TiDB 集群。

## 环境准备

1. 下载文件 [`backup-rbac.yaml`](https://github.com/pingcap/tidb-operator/blob/master/manifests/backup/backup-rbac.yaml),并执行以下命令在 `test2` 这个 namespace 中创建恢复备份所需的 RBAC 相关资源:

{{< copyable "shell-regular" >}}

```shell
kubectl apply -f backup-rbac.yaml -n test2
```

2. 创建 `restore-demo2-tidb-secret` secret,该 secret 存放用来访问 TiDB 集群的 root 账号和密钥:

{{< copyable "shell-regular" >}}

```shell
kubectl create secret generic restore-demo2-tidb-secret --from-literal=user=root --from-literal=password=<password> --namespace=test2
```

## 将指定备份恢复到 TiDB 集群

1. 创建 restore custom resource (CR),将指定的备份数据恢复至 TiDB 集群:

{{< copyable "shell-regular" >}}

```shell
kubectl apply -f restore.yaml
```

`restore.yaml` 文件内容如下:

```yaml
---
apiVersion: pingcap.com/v1alpha1
kind: Restore
metadata:
name: demo2-restore
namespace: test2
spec:
to:
host: <tidb-host-ip>
port: <tidb-port>
user: <tidb-user>
secretName: restore-demo2-tidb-secret
gcs:
projectId: <your-project-id>
secretName: gcs-secret
path: gcs://<path-to-backup>
storageClassName: local-storage
storageSize: 1Gi
```

2. 创建好 `Restore` CR 后可通过以下命令查看恢复的状态:

{{< copyable "shell-regular" >}}

```shell
kubectl get rt -n test2 -owide
```

以上示例将存储在 GCS 上指定路径 `spec.gcs.path` 的备份数据恢复到 TiDB 集群 `spec.to.host`。关于 GCS 的配置项可以参考 [backup-gcs.yaml](/tidb-in-kubernetes/maintain/backup-and-restore/backup-gcs.md#备份数据到-gcs) 中的配置。

更多 `Restore` CR 字段的详细解释如下:

* `.spec.metadata.namespace`: `Restore` CR 所在的 namespace。
* `.spec.to.host`:待恢复 TiDB 集群的访问地址。
* `.spec.to.port`:待恢复 TiDB 集群访问的端口。
* `.spec.to.user`:待恢复 TiDB 集群的访问用户。
* `.spec.to.tidbSecretName`:待恢复 TiDB 集群所需凭证的 secret。
* `.spec.storageClassName`:指定恢复时所需的 PV 类型。如果不指定该项,则默认使用 TiDB Operator 启动参数中 `default-backup-storage-class-name` 指定的值(默认为 `standard`)。
* `.spec.storageSize`:恢复集群时指定所需的 PV 大小。该值应大于备份 TiDB 集群数据的大小。
Loading