ClickHouse Cloud поддерживает создание резервных копий в вашей собственной учетной записи у поставщика облачных услуг (CSP) (AWS S3, Google Cloud Storage или Azure Blob Storage). Подробнее о том, как работают резервные копии в ClickHouse Cloud, включая различия между полными и инкрементальными резервными копиями, см. в документации backups. Обратите внимание, что резервные копии в вашей собственной облачной учетной записи отличаются от резервных копий Cloud на месте в одном важном аспекте: для них нельзя использовать native copy (см. примечание ниже).
В этом руководстве показано, как создавать полные и инкрементальные резервные копии в Объектное хранилище AWS, GCP и Azure, а также как восстанавливать данные из этих резервных копий.
Требования
Перед выполнением команды BACKUP убедитесь, что у пользователя ClickHouse есть привилегия BACKUP. default_role в ClickHouse Cloud не содержит этой привилегии. Перед экспортом резервных копий обратитесь в ClickHouse Support, чтобы запросить её.
Для экспорта резервных копий в собственный бакет хранилища CSP и их восстановления из него вам понадобятся следующие сведения.
AWS
- Конечная точка S3 в AWS, в формате:
s3://<bucket_name>.s3.amazonaws.com/<directory>Например:
s3://testchbackups.s3.amazonaws.com/backups/Где:
testchbackups— имя S3 бакета, в который экспортируются резервные копии.backups— необязательный подкаталог.
- Ключ доступа AWS и секретный ключ. Также поддерживается аутентификация с использованием ролей AWS, которую можно использовать вместо ключа доступа AWS и секретного ключа.
Azure
- Строка подключения к хранилищу Azure.
- Имя контейнера в учетной записи хранения Azure.
- Объект Blob в контейнере.
Google Cloud Storage (GCS)
-
Конечная точка GCS в следующем формате:
https://storage.googleapis.com/<bucket_name>/ -
Ключ доступа HMAC и секрет HMAC.
Резервное копирование / восстановление
Резервное копирование / восстановление в S3 бакет AWS
Создать резервную копию базы данных
Полная резервная копия
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 Storage
Создать резервную копию базы данных
Полная резервная копия
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')