> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Резервное копирование / восстановление через интерфейс

> Страница о том, как создать резервную копию или восстановить её через интерфейс с использованием собственного бакета

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

<Note>
  Автоматические резервные копии в ваш внешний бакет выполняются как "полные" каждые 24 часа, и эту частоту нельзя изменить.
</Note>

<div id="AWS">
  ## AWS
</div>

<div id="taking-backups-to-aws">
  ### Создание резервных копий в AWS
</div>

<div id="aws-steps">
  #### 1. Шаги, которые нужно выполнить в AWS
</div>

<Note>
  Эти шаги похожи на безопасную настройку S3, описанную в разделе ["Безопасный доступ к данным в S3"](/docs/ru/products/cloud/guides/data-sources/accessing-s3-data-securely), однако для разрешений роли также требуются дополнительные действия.
</Note>

Выполните следующие шаги в своей учетной записи AWS:

<Steps>
  <Step title="Создайте S3 бакет в AWS" id="create-s3-bucket">
    Создайте в своей учетной записи AWS S3 бакет, в который вы хотите экспортировать резервные копии.
  </Step>

  <Step title="Создайте роль IAM" id="create-iam-role">
    AWS использует аутентификацию на основе ролей, поэтому создайте роль IAM, которую сможет использовать сервис ClickHouse Cloud для записи данных в этот S3 бакет.

    * a. Получите ARN на странице настроек сервиса ClickHouse Cloud в разделе Network security information. Он выглядит примерно так:

    <Image img="https://mintcdn.com/private-7c7dfe99/flZ-Iruiim7eBp5N/images/cloud/manage/backups/arn.webp?fit=max&auto=format&n=flZ-Iruiim7eBp5N&q=85&s=ef923a5556cf51e5ed37630a9503da75" alt="AWS S3 ARN" size="lg" width="1600" height="298" data-path="images/cloud/manage/backups/arn.webp" />

    * b. Для этой роли создайте политику доверия следующим образом:

    ```json theme={null}
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "backup service",
          "Effect": "Allow",
          "Principal": {
            "AWS":  "arn:aws:iam::463754717262:role/CH-S3-bordeaux-ar-90-ue2-29-Role"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    ```
  </Step>

  <Step title="Обновите разрешения для роли" id="update-permissions-for-role">
    Также необходимо настроить разрешения для этой роли, чтобы сервис ClickHouse Cloud мог записывать данные в S3 бакет.
    Для этого создайте для роли политику разрешений с JSON, похожим на приведенный ниже, заменив в обоих местах ARN ресурса на ARN вашего бакета.

    ```json theme={null}
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Action": [
            "s3:GetBucketLocation",
            "s3:ListBucket"
          ],
          "Resource": [
            "arn:aws:s3:::byob-ui"
          ],
          "Effect": "Allow"
        },
        {
          "Action": [
            "s3:Get*",
            "s3:List*",
            "s3:PutObject"
          ],
          "Resource": [
            "arn:aws:s3:::byob-ui/*"
          ],
          "Effect": "Allow"
        },
        {
          "Action": [
            "s3:DeleteObject"
          ],
          "Resource": [
            "arn:aws:s3:::byob-ui/*/.lock"
          ],
          "Effect": "Allow"
        }
      ]
    }
    ```
  </Step>
</Steps>

<div id="cloud-steps">
  #### 2. Шаги, которые нужно выполнить в ClickHouse Cloud
</div>

Чтобы настроить внешний бакет, выполните следующие шаги в консоли ClickHouse Cloud:

<Steps>
  <Step title="Change external backup" id="configure-external-bucket">
    На странице Settings нажмите Set up external backup:

    <Image img="https://mintcdn.com/private-7c7dfe99/flZ-Iruiim7eBp5N/images/cloud/manage/backups/change_external_backup.webp?fit=max&auto=format&n=flZ-Iruiim7eBp5N&q=85&s=b196422be71449c08a4a38301541ec21" alt="Change external backup" size="lg" width="1510" height="296" data-path="images/cloud/manage/backups/change_external_backup.webp" />
  </Step>

  <Step title="Настройка ARN роли AWS IAM и параметров S3 бакета" id="configure-aws-iam-role-arn-and-s3-bucket-details">
    На следующем экране укажите ARN только что созданной роли AWS IAM и URL S3 бакета в следующем формате:

    <Image img="https://mintcdn.com/private-7c7dfe99/flZ-Iruiim7eBp5N/images/cloud/manage/backups/configure_arn_s3_details.webp?fit=max&auto=format&n=flZ-Iruiim7eBp5N&q=85&s=c38586766579287cbe3c6ed2f1cb2798" alt="Настройка ARN роли AWS IAM и параметров S3 бакета" size="lg" width="1030" height="372" data-path="images/cloud/manage/backups/configure_arn_s3_details.webp" />
  </Step>

  <Step title="Сохранение изменений" id="save-changes">
    Нажмите “Save External Bucket”, чтобы сохранить настройки
  </Step>

  <Step title="Изменение стандартного расписания резервного копирования" id="changing-the-backup-schedule">
    Теперь внешние резервные копии будут создаваться в вашем бакете по расписанию по умолчанию.
    При необходимости вы можете изменить расписание резервного копирования на странице “Settings”.
    Если задано другое расписание, для записи резервных копий в ваш бакет будет использоваться пользовательское расписание,
    а расписание по умолчанию (резервные копии каждые 24 часа) — для резервных копий в бакете,
    принадлежащем ClickHouse Cloud.
  </Step>

  <Step title="Просмотр резервных копий, сохранённых в вашем бакете" id="view-backups-stored-in-your-bucket">
    На странице Backups эти резервные копии из вашего бакета будут отображаться в отдельной таблице,
    как показано ниже:

    <Image img="https://mintcdn.com/private-7c7dfe99/flZ-Iruiim7eBp5N/images/cloud/manage/backups/view_backups.webp?fit=max&auto=format&n=flZ-Iruiim7eBp5N&q=85&s=5caca06399eedfa6bae997ff9eda2e24" alt="Просмотр резервных копий, сохранённых в вашем бакете" size="lg" width="1600" height="631" data-path="images/cloud/manage/backups/view_backups.webp" />
  </Step>
</Steps>

<div id="restoring-backups-from-aws">
  ### Восстановление резервных копий из AWS
</div>

Следуйте приведённым ниже шагам, чтобы восстановить резервные копии из AWS:

<Steps>
  <Step title="Создайте новый сервис для восстановления" id="create-new-service-to-restore-to">
    Создайте новый сервис, в который будет восстановлена резервная копия.
  </Step>

  <Step title="Добавьте ARN сервиса" id="add-service-arn">
    Добавьте ARN вновь созданного сервиса (со страницы настроек сервиса в консоли ClickHouse
    Cloud) в политику доверия для роли IAM. Это соответствует
    [второму шагу](#create-iam-role) в разделе AWS Steps выше. Это необходимо,
    чтобы новый сервис мог получить доступ к S3 бакету.
  </Step>

  <Step title="Получите SQL-команду для восстановления резервной копии" id="obtain-sql-command-to-restore-backup">
    Нажмите ссылку “access or restore a backup” над списком резервных копий в
    интерфейсе, чтобы получить SQL-команду для восстановления резервной копии. Команда будет выглядеть так:

    <Image img="https://mintcdn.com/private-7c7dfe99/flZ-Iruiim7eBp5N/images/cloud/manage/backups/backup_command.webp?fit=max&auto=format&n=flZ-Iruiim7eBp5N&q=85&s=2f7e38a4513dd035c6fbbec1b15b0746" alt="Получение SQL-команды для восстановления резервной копии" size="md" width="512" height="397" data-path="images/cloud/manage/backups/backup_command.webp" />

    <Warning>
      **Перемещение резервных копий в другое место**

      Если вы переместите резервные копии в другое место, вам потребуется изменить команду восстановления так, чтобы она ссылалась на новое расположение.
    </Warning>

    <Tip>
      **Команда ASYNC**

      Для команды Restore при необходимости можно также добавить в конец команду `ASYNC` для крупных восстановлений.
      Это позволяет выполнять восстановление асинхронно, поэтому даже при потере соединения оно продолжится.
      Важно отметить, что команда ASYNC сразу возвращает статус успешного выполнения.
      Это не означает, что восстановление действительно прошло успешно.
      Вам потребуется отслеживать таблицу `system.backups`, чтобы увидеть, завершилось ли восстановление и было ли оно успешным или завершилось ошибкой.
    </Tip>
  </Step>

  <Step title="Выполните команду восстановления" id="run-the-restore-command">
    Выполните команду восстановления в SQL-консоли вновь созданного сервиса, чтобы
    восстановить резервную копию.
  </Step>
</Steps>

<div id="gcp">
  ## GCP
</div>

<div id="taking-backups-to-gcp">
  ### Создание резервных копий в GCP
</div>

Чтобы создать резервные копии в GCP, выполните следующие действия:

<div id="gcp-steps-to-follow">
  #### Шаги в GCP
</div>

<Steps>
  <Step title="Создайте бакет хранилища в GCP" id="create-a-gcp-storage-bucket">
    Создайте бакет хранилища в своей учетной записи GCP, чтобы экспортировать в него резервные копии.
  </Step>

  <Step title="Сгенерируйте ключ HMAC и Secret" id="generate-an-hmac-key-and-secret">
    Сгенерируйте ключ HMAC и Secret, которые требуются для аутентификации по паролю. Чтобы сгенерировать ключи, выполните следующие действия:

    * a. Создайте сервисный аккаунт
      * I. Перейдите в раздел IAM & Admin в Google Cloud Console и выберите `Service Accounts`.
      * II. Нажмите `Create Service Account`, укажите имя и ID, затем нажмите `Create and Continue`.
      * III. Назначьте этому сервисному аккаунту роль Storage Object User.
      * IV. Нажмите `Done`, чтобы завершить создание сервисного аккаунта.

    * b. Сгенерируйте ключ HMAC
      * I. Перейдите в Cloud Storage в Google Cloud Console и выберите `Settings`
      * II. Перейдите на вкладку Interoperability.
      * III. В разделе `Service account HMAC` нажмите `Create a key for a service account`.
      * IV. В раскрывающемся меню выберите сервисный аккаунт, который вы создали на предыдущем шаге.
      * V. Нажмите `Create key`.

    * c. Надежно сохраните учетные данные:
      * I. Система отобразит Access ID (ваш ключ HMAC) и Secret (ваш секрет HMAC). Сохраните эти значения, так как
        после закрытия этого окна секрет больше не будет показан.
  </Step>
</Steps>

<div id="gcp-cloud-steps">
  #### Шаги в ClickHouse Cloud
</div>

Чтобы настроить внешний бакет, выполните следующие действия в консоли ClickHouse Cloud:

<Steps>
  <Step title="Change external backup" id="gcp-configure-external-bucket">
    На странице `Settings` нажмите `Change external backup`

    <Image img="https://mintcdn.com/private-7c7dfe99/flZ-Iruiim7eBp5N/images/cloud/manage/backups/change_external_backup.webp?fit=max&auto=format&n=flZ-Iruiim7eBp5N&q=85&s=b196422be71449c08a4a38301541ec21" alt="Change external backup" size="lg" width="1510" height="296" data-path="images/cloud/manage/backups/change_external_backup.webp" />
  </Step>

  <Step title="Настройка HMAC-ключа и секрета GCP" id="gcp-configure-gcp-hmac-key-and-secret">
    Во всплывающем окне укажите путь к бакету GCP, HMAC-ключ и Secret, созданные в предыдущем разделе.

    <Image img="https://mintcdn.com/private-7c7dfe99/flZ-Iruiim7eBp5N/images/cloud/manage/backups/gcp_configure.webp?fit=max&auto=format&n=flZ-Iruiim7eBp5N&q=85&s=18e99d074a61b55a02db5cda84028866" alt="Настройка HMAC-ключа и секрета GCP" size="md" width="512" height="342" data-path="images/cloud/manage/backups/gcp_configure.webp" />
  </Step>

  <Step title="Save External Bucket" id="gcp-save-external-bucket">
    Нажмите `Save External Bucket`, чтобы сохранить настройки.
  </Step>

  <Step title="Изменение расписания резервного копирования по умолчанию" id="gcp-changing-the-backup-schedule">
    Теперь внешние резервные копии будут создаваться в вашем бакете по расписанию по умолчанию.
    При необходимости вы можете изменить расписание резервного копирования на странице `Settings`.
    Если задано другое расписание, резервные копии в ваш
    бакет будут записываться по пользовательскому расписанию, а расписание по умолчанию (резервные копии каждые 24 часа) будет использоваться для резервных копий в
    бакете ClickHouse Cloud.
  </Step>

  <Step title="Просмотр резервных копий, хранящихся в вашем бакете" id="gcp-view-backups-stored-in-your-bucket">
    На странице Backups эти резервные копии из вашего бакета должны отображаться в отдельной таблице, как показано ниже:

    <Image img="https://mintcdn.com/private-7c7dfe99/flZ-Iruiim7eBp5N/images/cloud/manage/backups/gcp_stored_backups.webp?fit=max&auto=format&n=flZ-Iruiim7eBp5N&q=85&s=a0a35557f5db77fa8e0c2c81332fac68" alt="Просмотр резервных копий, хранящихся в вашем бакете" size="lg" width="1444" height="395" data-path="images/cloud/manage/backups/gcp_stored_backups.webp" />
  </Step>
</Steps>

<div id="gcp-restoring-backups-from-gcp">
  ### Восстановление резервных копий из GCP
</div>

Чтобы восстановить резервные копии из GCP, выполните следующие шаги:

<Steps>
  <Step title="Создайте новый сервис для восстановления" id="gcp-create-new-service-to-restore-to">
    Создайте новый сервис, в который будет восстановлена резервная копия.
  </Step>

  <Step title="Получите SQL-команду для восстановления резервной копии" id="gcp-obtain-sql-command-to-restore-backup">
    Нажмите ссылку `access or restore a backup` над списком резервных копий в
    интерфейсе, чтобы получить SQL-команду для восстановления резервной копии. Команда будет выглядеть примерно так;
    вы можете выбрать нужную резервную копию в раскрывающемся списке, чтобы получить команду восстановления
    именно для неё. В команду также потребуется добавить свой секретный ключ доступа:

    <Image img="https://mintcdn.com/private-7c7dfe99/flZ-Iruiim7eBp5N/images/cloud/manage/backups/gcp_restore_command.webp?fit=max&auto=format&n=flZ-Iruiim7eBp5N&q=85&s=fa28ca0cf6492199cdc706b0e702635b" alt="Получение SQL-команды для восстановления резервной копии" size="md" width="512" height="356" data-path="images/cloud/manage/backups/gcp_restore_command.webp" />

    <Warning>
      **Перемещение резервных копий в другое расположение**

      Если вы переместите резервные копии в другое место, вам потребуется изменить команду восстановления, чтобы она ссылалась на новое расположение.
    </Warning>

    <Tip>
      **Команда ASYNC**

      Для команды Restore при больших объёмах восстановления вы также можете при необходимости добавить в конец команду `ASYNC`.
      Это позволяет выполнять восстановление асинхронно, поэтому даже при потере соединения восстановление продолжится.
      Важно отметить, что команда ASYNC сразу возвращает статус успешного выполнения.
      Это не означает, что восстановление действительно прошло успешно.
      Вам нужно будет отслеживать таблицу `system.backups`, чтобы понять, завершилось ли восстановление и прошло ли оно успешно или завершилось с ошибкой.
    </Tip>
  </Step>

  <Step title="Выполните SQL-команду для восстановления резервной копии" id="gcp-run-sql-command-to-restore-backup">
    Выполните команду восстановления в SQL-консоли во вновь созданном сервисе, чтобы
    восстановить резервную копию.
  </Step>
</Steps>

<div id="azure">
  ## Azure
</div>

<div id="taking-backups-to-azure">
  ### Создание резервных копий в Azure
</div>

Чтобы создать резервные копии в Azure, выполните следующие действия:

<div id="steps-to-follow-in-azure">
  #### Действия в Azure
</div>

<Steps>
  <Step title="Создайте учетную запись хранилища" id="azure-create-a-storage-account">
    Создайте учетную запись хранилища или выберите существующую в портале Azure, где будут храниться резервные копии.
  </Step>

  <Step title="Получите строку подключения" id="azure-get-connection-string">
    * a. В обзоре вашей учетной записи хранилища найдите раздел `Security + networking` и нажмите `Access keys`.
    * b. Здесь вы увидите `key1` и `key2`. Под каждым ключом есть поле `Connection string`.
    * c. Нажмите `Show`, чтобы отобразить строку подключения. Скопируйте ее — она понадобится для настройки в ClickHouse Cloud.
  </Step>
</Steps>

<div id="gcp-cloud-steps">
  #### Шаги в ClickHouse Cloud
</div>

Чтобы настроить внешний бакет, выполните следующие действия в консоли ClickHouse Cloud:

<Steps>
  <Step title="Change external backup" id="azure-configure-external-bucket">
    На странице `Settings` нажмите `Change external backup`

    <Image img="https://mintcdn.com/private-7c7dfe99/flZ-Iruiim7eBp5N/images/cloud/manage/backups/change_external_backup.webp?fit=max&auto=format&n=flZ-Iruiim7eBp5N&q=85&s=b196422be71449c08a4a38301541ec21" alt="Change external backup" size="lg" width="1510" height="296" data-path="images/cloud/manage/backups/change_external_backup.webp" />
  </Step>

  <Step title="Укажите строку подключения и имя контейнера для вашего аккаунта хранилища Azure" id="azure-provide-connection-string-and-container-name-azure">
    На следующем экране укажите Connection String и Container Name для вашего
    аккаунта хранилища Azure, созданного в предыдущем разделе:

    <Image img="https://mintcdn.com/private-7c7dfe99/flZ-Iruiim7eBp5N/images/cloud/manage/backups/azure_connection_details.webp?fit=max&auto=format&n=flZ-Iruiim7eBp5N&q=85&s=2f86950a8e64983c0b3c85f240c3bb52" alt="Укажите строку подключения и имя контейнера для вашего аккаунта хранилища Azure" size="md" width="850" height="688" data-path="images/cloud/manage/backups/azure_connection_details.webp" />
  </Step>

  <Step title="Save External Bucket" id="azure-save-external-bucket">
    Нажмите `Save External Bucket`, чтобы сохранить настройки
  </Step>

  <Step title="Изменение расписания резервного копирования по сравнению с расписанием по умолчанию" id="azure-changing-the-backup-schedule">
    Теперь внешние резервные копии будут создаваться в вашем бакете по расписанию по умолчанию. Либо
    вы можете настроить расписание резервного копирования на странице `Settings`. Если задано другое расписание,
    для записи резервных копий в ваш бакет будет использоваться пользовательское расписание, а расписание по умолчанию
    (резервные копии каждые 24 часа) — для резервных копий в бакете, управляемом ClickHouse Cloud.
  </Step>

  <Step title="Просмотр резервных копий, сохранённых в вашем бакете" id="azure-view-backups-stored-in-your-bucket">
    На странице Backups эти резервные копии из вашего бакета должны отображаться в отдельной таблице,
    как показано ниже:

    <Image img="https://mintcdn.com/private-7c7dfe99/flZ-Iruiim7eBp5N/images/cloud/manage/backups/view_backups_azure.webp?fit=max&auto=format&n=flZ-Iruiim7eBp5N&q=85&s=c01ad93cabaf044f8f00e9e13b1d2cf5" alt="Просмотр резервных копий, сохранённых в вашем бакете" size="md" width="1444" height="395" data-path="images/cloud/manage/backups/view_backups_azure.webp" />
  </Step>
</Steps>

<div id="azure-restore-steps">
  ### Восстановление резервных копий из Azure
</div>

Чтобы восстановить резервные копии из Azure, выполните следующие действия:

<Steps>
  <Step title="Создайте новый сервис для восстановления" id="azure-create-new-service-to-restore-to">
    Создайте новый сервис, в который будет восстановлена резервная копия. В настоящее время поддерживается
    восстановление резервной копии только в новый сервис.
  </Step>

  <Step title="Получите SQL-команду для восстановления резервной копии" id="azure-obtain-sql-command-to-restore-backup">
    Нажмите ссылку `access or restore a backup` над списком резервных копий в
    интерфейсе, чтобы получить SQL-команду для восстановления резервной копии. Команда должна выглядеть
    примерно так. Вы можете выбрать нужную резервную копию в раскрывающемся списке, чтобы получить
    команду восстановления именно для нее. В команду нужно будет добавить строку подключения
    к вашей учетной записи хранилища Azure.

    <Image img="https://mintcdn.com/private-7c7dfe99/flZ-Iruiim7eBp5N/images/cloud/manage/backups/restore_backups_azure.webp?fit=max&auto=format&n=flZ-Iruiim7eBp5N&q=85&s=a7bc81021033c373c795280413b4883d" alt="Восстановление резервных копий в Azure" size="md" width="656" height="466" data-path="images/cloud/manage/backups/restore_backups_azure.webp" />

    <Warning>
      **Перемещение резервных копий в другое место**

      Если вы переместите резервные копии в другое место, вам потребуется изменить команду восстановления так, чтобы она ссылалась на новое расположение.
    </Warning>

    <Tip>
      **Команда ASYNC**

      Для команды Restore при больших объемах восстановления при необходимости можно также добавить в конец команду `ASYNC`.
      Это позволяет выполнять восстановление асинхронно, поэтому при потере соединения восстановление продолжится.
      Важно отметить, что команда ASYNC сразу возвращает статус успешного выполнения.
      Это не означает, что восстановление действительно прошло успешно.
      Вам нужно будет отслеживать таблицу `system.backups`, чтобы понять, завершилось ли восстановление и прошло ли оно успешно или с ошибкой.
    </Tip>
  </Step>

  <Step title="Выполните SQL-команду для восстановления резервной копии" id="azure-run-sql-command-to-restore-backup">
    Выполните команду восстановления в SQL-консоли нового сервиса, чтобы
    восстановить резервную копию.
  </Step>
</Steps>
