ClickHouse Cloud 支持将备份导出到您自己的云服务提供商 (CSP) 账户 (AWS S3、Google Cloud Storage 或 Azure Blob 存储) 中。 有关 ClickHouse Cloud 备份工作方式的更多详情,包括“全量备份”备份与“增量”备份的区别,请参阅备份文档。请注意, 导出到您自己的云账户的备份与原位 Cloud 备份有一个重要区别:它们无法使用原生复制 (请参见下方说明) 。
本指南将通过示例说明如何将全量备份和增量备份导出到 AWS、GCP 和 Azure 对象存储,以及如何从这些备份中恢复。
要求
在运行 BACKUP 命令之前,请确保您的 ClickHouse 用户拥有 BACKUP 权限。ClickHouse Cloud 中的 default_role 不包含此权限。请在导出备份之前联系 ClickHouse 支持团队 申请该权限。
要将备份导出到您自己的 CSP 存储桶或从中恢复,您需要以下信息。
AWS
- AWS S3 端点,格式为:
s3://<bucket_name>.s3.amazonaws.com/<directory>例如:
s3://testchbackups.s3.amazonaws.com/backups/其中:
testchbackups是用于导出备份的 S3 存储桶 名称。backups是一个可选的子目录。
- AWS 访问密钥和秘密密钥。也支持基于 AWS Role 的身份验证,可替代 AWS 访问密钥和秘密密钥使用。
Azure
- Azure 存储的连接字符串。
- 存储账户中的 Azure 容器名称。
- 容器中的 Azure Blob。
Google Cloud Storage (GCS)
-
GCS 端点,格式如下:
https://storage.googleapis.com/<bucket_name>/ -
HMAC 访问密钥和 HMAC 密钥。
备份 / 恢复
备份到 AWS S3 存储桶 / 从中恢复
执行数据库备份
全量备份
BACKUP DATABASE test_backups
TO S3('https://testchbackups.s3.amazonaws.com/backups/<uuid>', '<key id>', '<key secret>')其中,uuid 是唯一标识符,用于区分一组备份。
增量备份
BACKUP DATABASE test_backups
TO S3('https://testchbackups.s3.amazonaws.com/backups/<uuid>', '<key id>', '<key secret>')
SETTINGS base_backup = S3('https://testchbackups.s3.amazonaws.com/backups/<base-backup-uuid>', '<key id>', '<key secret>')从备份中恢复
RESTORE DATABASE test_backups
AS test_backups_restored
FROM S3('https://testchbackups.s3.amazonaws.com/backups/<uuid>', '<key id>', '<key secret>')参见:配置 BACKUP/RESTORE 以使用 S3 端点了解更多详情。
备份 / 恢复到 Azure Blob 存储
执行数据库备份
全量备份
BACKUP DATABASE test_backups
TO AzureBlobStorage('<AzureBlobStorage endpoint connection string>', '<container>', '<blob>/<uuid>');其中,uuid 是用于区分一组备份的唯一标识符。
增量备份
BACKUP DATABASE test_backups
TO AzureBlobStorage('<AzureBlobStorage endpoint connection string>', '<container>', '<blob>/<uuid>/my_incremental')
SETTINGS base_backup = AzureBlobStorage('<AzureBlobStorage endpoint connection string>', '<container>', '<blob>/<uuid>')从备份中恢复
RESTORE DATABASE test_backups
AS test_backups_restored_azure
FROM AzureBlobStorage('<AzureBlobStorage endpoint connection string>', '<container>', '<blob>/<uuid>')更多详情,请参阅:配置 BACKUP/RESTORE 以使用 AzureBlobStorage 端点。
备份到 / 从 Google Cloud Storage (GCS) 恢复
执行数据库备份
全量备份
BACKUP DATABASE test_backups
TO S3('https://storage.googleapis.com/<bucket>/<uuid>', <hmac-key>', <hmac-secret>)其中,uuid 是一个唯一标识符,用于区分一组备份。
增量备份
BACKUP DATABASE test_backups
TO S3('https://storage.googleapis.com/test_gcs_backups/<uuid>/my_incremental', 'key', 'secret')
SETTINGS base_backup = S3('https://storage.googleapis.com/test_gcs_backups/<uuid>', 'key', 'secret')从备份中恢复
RESTORE DATABASE test_backups
AS test_backups_restored_gcs
FROM S3('https://storage.googleapis.com/test_gcs_backups/<uuid>', 'key', 'secret')