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

Бэкапы в кластере OpenSearch

В облачных базах данных OpenSearch автоматически создаются бэкапы индексов. Вам не нужно самостоятельно настраивать бэкапы и следить за их созданием.

Для создания бэкапов индексов используется встроенный механизм снапшотов OpenSearch. Снапшот — снимок текущего состояния индексов с данными. Подробнее о механизме снапшотов в инструкции Take and restore snapshots документации OpenSearch.

Бэкапы создаются инкрементально:

  • первый бэкап содержит полную копию всех данных;
  • все последующие бэкапы содержат только изменения с момента предыдущего успешного бэкапа.

Из бэкапов можно восстановить индексы только в том кластере, в котором они были созданы. После удаления кластера бэкапы индексов не хранятся. Восстановить кластер или создать новый из бэкапов индексов удаленного кластера нельзя.

Бэкапы хранятся изолированно от бэкапов других пользователей.

Бэкапы нельзя выгрузить. Автоматическое создание бэкапов нельзя отключить.

Расписание создания бэкапов

Бэкапы индексов создаются один раз в 30 минут.

Срок хранения бэкапов

Бэкапы индексов хранятся 7 дней.

Восстановить индексы из бэкапа

Вы можете восстановить свои индексы из бэкапов через OpenSearch API. Восстановить можно отдельные индексы или сразу все индексы, кроме системных.

  1. Получите дату и время создания бэкапа, из которого нужно восстановить индексы. Для этого выведите список бэкапов:

    curl -XGET -u 'admin:<password>' \
    --cacert ~/.opensearch/root.crt \
    'https://<ip_address>:<port>/_cat/snapshots/dbaas-repo'

    Укажите:

    В ответе появится список бэкапов. Скопируйте из имени бэкапа дату и время его создания — они указаны в формате yyyymmdd-hh-mm. Например:

    dbaas-snapshot-20250928-09-48 SUCCESS 1759052881 09:48:01 1759052883 09:48:03  1.8s 5 5 0 5
    dbaas-snapshot-20250928-10-18 SUCCESS 1759054681 10:18:01 1759054682 10:18:02 600ms 5 5 0 5
    dbaas-snapshot-20250928-10-48 SUCCESS 1759056481 10:48:01 1759056482 10:48:02 600ms 5 5 0 5

    Здесь 20250928-09-48, 20250928-10-18 и 20250928-10-48 — дата и время создания бэкапов.

  2. Получите имена индексов, которые нужно восстановить. Для этого выведите информацию о бэкапе:

    curl -XGET -u 'admin:<password>' \
    --cacert ~/.opensearch/root.crt \
    'https://<ip_address>:<port>/_snapshot/dbaas-repo/dbaas-snapshot-<timestamp>?pretty'

    Укажите:

    • <password> — пароль пользователя-администратора;
    • <ip_address> — IP-адрес ноды;
    • <port> — порт для подключения;
    • <timestamp> — дата и время создания бэкапа, которые вы получили на шаге 1.

    В ответе появится информация о бэкапе. В поле "indices" скопируйте имена индексов, которые нужно восстановить.

  3. Проверьте, есть ли в кластере открытые индексы с такими же именами, которые вы хотите восстановить. Для этого выведите информацию обо всех открытых индексах:

    curl -XGET -u 'admin:<password>' \
    --cacert ~/.opensearch/root.crt \
    'https://<ip_address>:<port>/_cat/indices?v&h=index,health,status,docs.count,store.size&s=index&expand_wildcards=open,hidden'

    Укажите:

    Имена индексов будут указаны в поле index.

  4. Если в кластере уже есть открытые индексы с такими же именами, которые вы хотите восстановить, удалите их. В кластере OpenSearch нельзя дублировать имена открытых индексов.

    curl -XDELETE -u 'admin:<password>' \
    --cacert ~/.opensearch/root.crt \
    'https://<ip_address>:<port>/<index>'

    Укажите:

    • <password> — пароль пользователя-администратора;
    • <ip_address> — IP-адрес ноды;
    • <port> — порт для подключения;
    • <index> — имя индекса для удаления. Если нужно указать несколько индексов, разделите их запятой.
  5. Восстановите индексы:

    curl -XPOST -u 'admin:<password>' --cacert ~/.opensearch/root.crt 'https://<ip_address>:<port>/_snapshot/dbaas-repo/dbaas-snapshot-<timestamp>/_restore' \
    -H 'Content-Type: application/json' \
    -d '{
    "indices": "<index>",
    "include_global_state": false
    }'

    Укажите:

    • <password> — пароль пользователя-администратора;
    • <ip_address> — IP-адрес ноды;
    • <port> — порт для подключения;
    • <timestamp> — дата и время создания бэкапа, которые вы получили на шаге 1;
    • <index> — имя индекса, который нужно восстановить. Если нужно указать несколько индексов, разделите их запятой.