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

YDB изначально спроектирована для сохранности данных при отказах оборудования: доступны варианты избыточности для разного числа зон доступности, стоек, хостов, дисков и других компонентов (см. режимы работы кластера). Это снижает риск потери данных из‑за аппаратных сбоев.

Однако данные могут быть утрачены или испорчены логически: ошибки или злоумышленные действия могут привести к массовому удалению/искажению данных легитимными для СУБД операциями. В таких случаях отказоустойчивость кластера не заменяет отдельную копию данных вне кластера.

Резервное копирование применяется для защиты от таких сценариев и позволяет восстановить данные из резервной копии. Рекомендуется хранить копии на отдельном носителе или в облачном объектном хранилище (например, через выгрузку в файлы или export в S3).

YDB предоставляет несколько решений для выполнения резервного копирования и восстановления. Концептуальную информацию и сравнение методов резервного копирования см. в концепциях резервного копирования.

  • Резервное копирование в файлы и восстановление с помощью YDB CLI.
  • Резервное копирование в S3-совместимое хранилище и восстановление с помощью YDB CLI.

YDB CLI

Файлы

Для выполнения резервного копирования в файлы применяются команды:

  • ydb admin cluster dump — для резервного копирования метаданных кластера
  • ydb admin database dump — для резервного копирования базы данных
  • ydb tools dump — для резервного копирования отдельных схемных объектов или директорий

Узнать больше об этих командах можно в Выгрузка в файловую систему.

Для выполнения восстановления из файловой резервной копии применяются команды:

  • ydb admin cluster restore — для восстановления метаданных кластера из резервной копии
  • ydb admin database restore — для восстановления базы данных из резервной копии
  • ydb tools restore — для восстановления отдельных схемных объектов или директорий из резервной копии

Узнать больше об этих командах можно в Загрузка из файловой системы.

S3-совместимое хранилище

Для выполнения резервного копирования в S3-совместимое хранилище (например, AWS S3) применяется команда ydb export s3. Перейдите по ссылке в справочник по YDB CLI для получения информации о данной команде.

Для выполнения восстановления из резервной копии, созданной в S3-совместимом хранилище, применяется команда ydb import s3. Перейдите по ссылке в справочник по YDB CLI для получения информации о данной команде.

Примечание

Скорость операций резервного копирования и восстановления в/из S3-совместимого хранилища подобрана таким образом, чтобы минимизировать влияние на пользовательскую нагрузку. Для управления скоростью операций настройте лимиты для соответствующей очереди брокера ресурсов.

Примечание

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

Резервное копирование системных таблеток

Механизм резервного копирования системных таблеток, таких как Hive, BSController и SchemeShard, обеспечивает инкрементальное копирование метаданных кластера на локальную файловую систему кластера.

Этот механизм предназначен для восстановления метаданных кластера, когда другие способы восстановления недоступны — например, резервная копия базы данных отсутствует или объём базы данных слишком велик для восстановления из резервной копии за приемлемое время. Механизм позволяет восстановить метаданные в существующем кластере без необходимости пересоздавать кластер и восстанавливать базы данных из резервных копий.

Если есть возможность восстановить кластер с помощью команд export/import или dump/restore, рекомендуется использовать эти способы.

Подробная информация, включая руководство по восстановлению, доступна в разделе Резервное копирование системных таблеток.