Резервное копирование и восстановление
YDB изначально спроектирована для сохранности данных при отказах оборудования: доступны варианты избыточности для разного числа зон доступности, стоек, хостов, дисков и других компонентов (см. режимы работы кластера). Это снижает риск потери данных из‑за аппаратных сбоев.
Однако данные могут быть утрачены или испорчены логически: ошибки или злоумышленные действия могут привести к массовому удалению/искажению данных легитимными для СУБД операциями. В таких случаях отказоустойчивость кластера не заменяет отдельную копию данных вне кластера.
Резервное копирование применяется для защиты от таких сценариев и позволяет восстановить данные из резервной копии. Рекомендуется хранить копии на отдельном носителе или в облачном объектном хранилище (например, через выгрузку в файлы или export в S3).
- Резервное копирование в файлы и восстановление с помощью 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, рекомендуется использовать эти способы.
Подробная информация, включая руководство по восстановлению, доступна в разделе Резервное копирование системных таблеток.