Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

将备份导出到您自己的云账户

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

  1. AWS S3 端点,格式为:
  s3://<bucket_name>.s3.amazonaws.com/<directory>

例如:

  s3://testchbackups.s3.amazonaws.com/backups/

其中:

  • testchbackups 是用于导出备份的 S3 存储桶 名称。
    • backups 是一个可选的子目录。
  1. AWS 访问密钥和秘密密钥。也支持基于 AWS Role 的身份验证,可替代 AWS 访问密钥和秘密密钥使用。

Azure

  1. Azure 存储的连接字符串。
  2. 存储账户中的 Azure 容器名称。
  3. 容器中的 Azure Blob。

Google Cloud Storage (GCS)

  1. GCS 端点,格式如下:

    https://storage.googleapis.com/<bucket_name>/
  2. 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')
Navigation