跳到主要内容
跳到主要内容

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

Enterprise plan feature

This feature is available in the Enterprise plan. To upgrade, visit the plans page in the cloud console.

ClickHouse Cloud 支持将备份写入您自己的云服务提供商(CSP)账户(AWS S3、Google Cloud Storage 或 Azure Blob Storage)。
关于 ClickHouse Cloud 备份的工作原理(包括“完整”备份与“增量”备份)的详细信息,请参阅 backups 文档。

本指南演示如何将完整和增量备份写入 AWS、GCP、Azure 对象存储,以及如何从这些备份中进行恢复。

注意

用户需要注意,如果备份被导出到同一云服务提供商的其他区域,将会产生 data transfer 费用。目前我们尚不支持跨云备份。

前提条件

要将备份导出到或从你自己的 CSP 存储 bucket 中恢复,需要准备以下信息。

AWS

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

例如:

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

Where:

  • testchbackups 是用于导出备份的 S3 bucket 名称。
  • backups 是一个可选的子目录。
  1. AWS access key 和 secret。也支持基于 AWS role 的身份验证,并且可以替代 AWS access key 和 secret 使用。
注意

若要使用基于 role 的身份验证,请按照 Secure S3 的配置步骤。此外,你还需要在此处所述的 IAM 策略中添加 s3:PutObjects3:DeleteObject 权限。

Azure

  1. Azure storage connection string。
  2. 存储帐户中的 Azure container 名称。
  3. container 中的 Azure Blob。

Google Cloud Storage (GCS)

  1. GCS endpoint,格式如下:

    https://storage.googleapis.com/<bucket_name>/
    
  2. 用于访问的 HMAC key 和 HMAC secret。


备份与恢复

备份 / 恢复到 AWS S3 存储桶

进行数据库备份

完整备份

BACKUP DATABASE test_backups 
TO S3('https://testchbackups.s3.amazonaws.com/backups/<uuid>', '<key id>', '<key secret>')

其中 uuid 是一个唯一标识符,用于区分一组备份。

注意

你需要在该子目录中为每次新的备份使用不同的 UUID,否则会收到 BACKUP_ALREADY_EXISTS 错误。 例如,如果你进行的是每日备份,则需要每天使用一个新的 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>', '<密钥 ID>', '<密钥密文>')

详情请参见:将 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 以使用 S3 端点 了解更多详情。

备份 / 恢复到 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')