使用命令备份或恢复备份
用户可以使用 BACKUP 和 RESTORE 命令将备份导出到各自的存储桶中,
此外也可以通过用户界面进行备份或恢复。
本指南提供了针对三大云服务提供商(CSP)的相关命令。
要求
要将备份导出到你自己的 CSP 存储 bucket 或从中恢复备份,你需要准备以下信息:
- AWS
- GCP
- Azure
- AWS S3 endpoint,格式为:
s3://<bucket_name>.s3.amazonaws.com/<optional_directory>例如:s3://testchbackups.s3.amazonaws.com/其中:testchbackups是用于导出备份的 S3 bucket 名称。backups是一个可选子目录。
- AWS access key 和 secret。也支持基于 AWS role 的身份验证,可按上文所述使用 role 替代 AWS access key 和 secret。
- GCS endpoint,格式为:
https://storage.googleapis.com/<bucket_name>/ - 用于访问的 HMAC key 和 HMAC secret。
- Azure 存储连接字符串。
- 存储帐户中的 Azure 容器名称。
- 容器中的 Azure Blob 对象。
备份 / 恢复特定数据库
此处演示如何对 单个 数据库进行备份和恢复。 完整的备份和恢复命令请参见备份命令摘要。
AWS S3
- BACKUP
- RESTORE
其中 uuid 是一个唯一标识符,用于区分一组备份。
您需要在该子目录中为每一次新的备份使用不同的 uuid,否则会收到 BACKUP_ALREADY_EXISTS 错误。
例如,如果您执行的是每日备份,则每天都需要使用新的 uuid。
Google Cloud Storage (GCS)
- BACKUP
- RESTORE
其中 uuid 是一个唯一标识符,用于标识该备份。
您需要在该子目录中为每一次新的备份使用不同的 uuid,否则会收到 BACKUP_ALREADY_EXISTS 错误。
例如,如果您执行的是每日备份,则每天都需要使用新的 uuid。
Azure Blob Storage
- BACKUP
- RESTORE
其中 uuid 是一个唯一标识符,用于标识该备份。
您需要在该子目录中为每一次新的备份使用不同的 uuid,否则会收到 BACKUP_ALREADY_EXISTS 错误。
例如,如果您执行的是每日备份,则每天都需要使用新的 uuid。
备份 / 恢复整个服务
要备份整个服务,请使用以下命令。 该备份将包含已创建实体的所有用户数据和系统数据、设置配置文件、角色策略、配额和函数。 此处以 AWS S3 为例。 可以结合上文描述的语法,将这些命令用于 GCS 和 Azure Blob 存储的备份。
- BACKUP
- RESTORE
其中 uuid 是用于标识该备份的唯一标识符。
常见问题解答
我的云对象存储中的备份会怎样处理?ClickHouse 会在某个时间点自动清理它们吗?
我们支持将备份导出到您的存储桶(bucket),但在备份写入后,我们不会清理或删除任何备份。您需要自行管理存储桶中备份的生命周期,包括视需要删除、归档,或迁移到更低成本的存储以优化整体费用。
如果我将部分现有备份移动到另一个位置,恢复流程会受到怎样的影响?
如果有任何备份被移动到其他位置,您需要更新恢复命令,将其引用的位置修改为备份当前所在的新位置。
如果我更改了访问对象存储所需的凭证怎么办?
您需要在 UI 中更新已更改的凭证,之后备份才能再次成功执行。
如果我更改了导出外部备份的位置怎么办?
您需要在 UI 中更新新的位置,之后备份将开始写入新位置。旧的备份会继续保留在原始位置。
如何在某个已经启用外部备份的服务上禁用外部备份?
要为某个服务禁用外部备份,请进入该服务的设置界面,然后点击 Change external backup。在随后的界面中,点击 Remove setup 以禁用该服务的外部备份。