Концепции резервного копирования
YDB обеспечивает сохранность данных при аппаратных сбоях за счёт репликации и отказоустойчивости. Однако репликация не защищает от логических ошибок: случайный DROP TABLE, ошибочный массовый UPDATE или DELETE будут воспроизведены на все реплики. Для защиты от таких сценариев необходимо резервное копирование — отдельная копия данных, из которой можно восстановиться.
Полное резервное копирование
Полная резервная копия — это снимок данных таблиц на определённый момент времени. YDB предоставляет несколько способов создания полных резервных копий, от простых к более функциональным.
Копирование таблиц внутри кластера
Самый простой способ — создать копию таблицы (или нескольких таблиц) внутри того же кластера с помощью команды ydb tools copy. Копия создаётся атомарно из согласованного снимка и использует механизм копирования при записи, поэтому операция выполняется быстро.
Подходит для:
- быстрого создания «страховочной» копии перед опасной операцией;
- клонирования данных для тестирования.
Важно
Копия хранится в том же кластере, что и исходные данные. Она защищает от логических ошибок, но не от потери кластера.
Дамп в файловую систему
Команды ydb tools dump и ydb tools restore позволяют выгрузить данные в локальную файловую систему и восстановить их обратно.
Подходит для:
- локальной разработки и тестирования;
- небольших баз данных;
- создания копии на отдельном носителе.
Экспорт в S3-совместимое хранилище
Команды ydb export s3 и ydb import s3 позволяют выгружать и загружать данные во внешнее S3-совместимое хранилище.
Подходит для:
- аварийного восстановления (данные хранятся вне кластера);
- миграции данных между кластерами;
- долгосрочного архивирования.
Инкрементальное резервное копирование
При работе с большими таблицами повторное создание полных резервных копий может быть слишком затратным. Инкрементальное резервное копирование решает эту задачу: после начальной полной копии каждый последующий инкремент захватывает только изменения (вставки, обновления, удаления), произошедшие с момента предыдущей резервной копии.
Инкрементальные резервные копии организованы в цепочку:
Полная копия → Инкремент₁ → Инкремент₂ → ... → Инкрементₙ
Для восстановления необходима вся цепочка: сначала применяется полная копия, затем последовательно все инкременты. Восстановление выполняется к состоянию на момент последнего инкремента в цепочке.
Инкрементальное резервное копирование реализуется с помощью коллекций резервных копий.
Примечание
В настоящее время поддерживаются только строковые таблицы.
Сравнение подходов
|
Способ |
Где хранится |
Инкременты |
Сценарии |
|
В кластере |
Нет |
Быстрая копия перед опасной операцией |
|
|
Файловая система |
Нет |
Разработка, тестирование, небольшие БД |
|
|
S3-совместимое хранилище |
Нет |
Аварийное восстановление, миграция, архивирование |
|
|
В кластере (экспортируются в S3 или файловую систему) |
Да |
Регулярные бэкапы больших производственных БД |
См. также
- Коллекции резервных копий — архитектура и ограничения
- Резервное копирование и восстановление — практическое руководство
- Справочник export/import — команды CLI
- Справочник YQL: