Концепции резервного копирования

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-совместимое хранилище

Нет

Аварийное восстановление, миграция, архивирование

Инкрементальное резервное копирование

В кластере (экспортируются в S3 или файловую систему)

Да

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

См. также