Clickhouse22.10版本支援使用BACKUP備份到S3,經過測試阿裡雲OSS也支援。
前期準備
- clickhouse版本需要22.10
- S3 endpoint, 比如 https://ck-doc-test.oss-cn-hangzhou.aliyuncs.com/backup-S3/
- Access key ID
- Secret access key
建立初始備份(基礎全量備份)
BACKUP TABLE default.test_data TO S3('https://ck-doc-test.oss-cn-hangzhou.aliyuncs.com/backup-S3/my_backup', 'ABC123(你的阿裡雲AK)', 'Abc+123(你的阿裡雲SK)')
傳回如下,
可以通過select * from system.backups where id='de442b75-a66c-4a3c-a193-f76f278c70f3'
查詢備份進度,是以備份到S3預設是異步進行。
增量備份
BACKUP TABLE default.test_data TO S3('https://ck-doc-test.oss-cn-hangzhou.aliyuncs.com/backup-S3/my_incremental', 'ABC123', 'Abc+123') SETTINGS base_backup = S3('https://ck-doc-test.oss-cn-hangzhou.aliyuncs.com/backup-S3/my_backup', 'ABC123(你的阿裡雲AK)', 'Abc+123(你的阿裡雲SK)')
同理會産生一個id提供查詢備份情況。
從增量備份恢複(恢複到新表test_data_oss方式)
RESTORE TABLE default.test_data AS default.test_data_oss FROM S3('https://ck-doc-test.oss-cn-hangzhou.aliyuncs.com/backup-S3/my_incremental', 'ABC123', 'Abc+123')
簡單驗證恢複
可以通過查詢兩張表的count數目是否一緻簡單驗證。
以上舉例是進行表備份,同理庫也是支援,把TABLE改為DATABASE即可
配置檔案方式配置S3
在/etc/clickhouse-server/config.d添加一個備份到S3存儲配置,如下示例
<clickhouse>
<storage_configuration>
<disks>
<s3_plain>
<type>s3_plain</type>
<endpoint></endpoint>
<access_key_id></access_key_id>
<secret_access_key></secret_access_key>
</s3_plain>
</disks>
<policies>
<s3>
<volumes>
<main>
<disk>s3</disk>
</main>
</volumes>
</s3>
</policies>
</storage_configuration>
<backups>
<allowed_disk>s3_plain</allowed_disk>
</backups>
</clickhouse>
然後我們的備份和還原指令就可以簡單如下:
BACKUP TABLE data TO Disk('s3_plain', 'cloud_backup');
RESTORE TABLE data AS data_restored FROM Disk('s3_plain', 'cloud_backup');