Перейти к основному содержанию
Перейти к основному содержанию

Создание и восстановление резервной копии с помощью команд

Помимо создания и восстановления резервных копий через пользовательский интерфейс, пользователи могут использовать команды BACKUP и RESTORE для экспорта резервных копий в свои бакеты хранилища. В этом руководстве приведены команды для всех трех облачных провайдеров (CSP).

Требования

Вам понадобятся следующие данные, чтобы экспортировать и восстанавливать резервные копии в/из собственного бакета в хранилище CSP:

  1. Конечная точка AWS S3 в формате: s3://<bucket_name>.s3.amazonaws.com/<optional_directory> Например: s3://testchbackups.s3.amazonaws.com/ Где:
    • testchbackups — имя бакета S3, в который будут экспортироваться резервные копии.
    • backups — необязательный подкаталог.
  2. Ключ доступа и секретный ключ AWS. Аутентификация на основе роли AWS также поддерживается и может использоваться вместо ключа доступа и секретного ключа AWS, как описано в разделе выше.

Резервное копирование / восстановление отдельной БД

Ниже показано резервное копирование и восстановление одной базы данных. Полные команды резервного копирования и восстановления смотрите в разделе сводка команд резервного копирования.

AWS S3

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

Здесь uuid — уникальный идентификатор, используемый для различения наборов резервных копий.

Примечание

Необходимо использовать разный uuid для каждой новой резервной копии в этом подкаталоге, иначе вы получите ошибку BACKUP_ALREADY_EXISTS. Например, если вы делаете ежедневные резервные копии, нужно использовать новый uuid каждый день.

Google Cloud Storage (GCS)

BACKUP DATABASE test_backups 
TO S3(
  'https://storage.googleapis.com/<bucket>/<uuid>',
  '<hmac-key>',
  '<hmac-secret>'
)

Здесь uuid — уникальный идентификатор, используемый для идентификации резервной копии.

Примечание

Необходимо использовать разный uuid для каждой новой резервной копии в этом подкаталоге, иначе вы получите ошибку BACKUP_ALREADY_EXISTS. Например, если вы делаете ежедневные резервные копии, нужно использовать новый uuid каждый день.

Azure Blob Storage

BACKUP DATABASE test_backups 
TO AzureBlobStorage(
  '<AzureBlobStorage endpoint connection string>',
  '<container>',
  '<blob>/<>'
)

Здесь uuid — уникальный идентификатор, используемый для идентификации резервной копии.

Примечание

Необходимо использовать разный uuid для каждой новой резервной копии в этом подкаталоге, иначе вы получите ошибку BACKUP_ALREADY_EXISTS. Например, если вы делаете ежедневные резервные копии, нужно использовать новый uuid каждый день.

Резервное копирование и восстановление всего сервиса

Для резервного копирования всего сервиса используйте команды ниже. Эта резервная копия будет содержать все пользовательские и системные данные созданных сущностей, профилей настроек, политик ролей, квот и функций. Ниже приведены команды для AWS S3. Вы можете использовать эти команды с синтаксисом, описанным выше, чтобы выполнять резервное копирование в GCS и Azure Blob Storage.

BACKUP 
    TABLE system.users,
    TABLE system.roles,
    TABLE system.settings_profiles,
    TABLE system.row_policies,
    TABLE system.quotas,
    TABLE system.functions,
    ALL EXCEPT DATABASES INFORMATION_SCHEMA, information_schema, system
TO S3(
    'https://testchbackups.s3.amazonaws.com/<uuid>',
    '<key id>',
    '<key secret>'
)

где uuid — уникальный идентификатор резервной копии.

FAQ

Что происходит с резервными копиями в моем объектном облачном хранилище? Очищает ли их ClickHouse когда‑нибудь?

Мы предоставляем вам возможность экспортировать резервные копии в ваш бакет, однако после записи мы не очищаем и не удаляем ни одну из них. Вы самостоятельно отвечаете за управление жизненным циклом резервных копий в вашем бакете, включая их удаление, при необходимости архивирование или перенос в более дешевое хранилище для оптимизации совокупной стоимости.

Что произойдет с процессом восстановления, если я перемещу некоторые из существующих резервных копий в другое место?

Если какие-либо резервные копии были перемещены в другое место, команду восстановления необходимо обновить, чтобы она ссылалась на новое расположение, где хранятся резервные копии.

Что будет, если я изменю учетные данные, необходимые для доступа к объектному хранилищу?

Вам потребуется обновить измененные учетные данные в UI, чтобы резервное копирование снова выполнялось успешно.

Что будет, если я изменю расположение, в которое экспортируются мои внешние резервные копии?

Вам потребуется указать новое расположение в UI, после чего резервные копии начнут создаваться уже туда. Старые резервные копии останутся в исходном расположении.

Как отключить внешние резервные копии для сервиса, для которого они были включены?

Чтобы отключить внешние резервные копии для сервиса, перейдите на экран настроек сервиса и нажмите «Change external backup». На следующем экране нажмите «Remove setup», чтобы отключить внешние резервные копии для сервиса.