---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ydb.tech/docs/en/concepts/datamodel/backup-collection.md?version=main
  - https://ydb.tech/docs/ru/concepts/datamodel/backup-collection.md?version=main
sourcePath: ru/core/concepts/datamodel/backup-collection.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

# Коллекция резервных копий

Коллекция резервных копий организует полные и инкрементальные резервные копии выбранных [строковых таблиц](https://ydb.tech/docs/ru/concepts/datamodel/table.md?version=main#row-oriented-tables) в управляемые цепочки. Она позволяет **восстановить данные к состоянию самой поздней резервной копии в цепочке**, обеспечивая защиту от случайной потери данных — ошибочных удалений или изменений.

{% note info %}

Практические инструкции по созданию и управлению коллекциями резервных копий см. в разделе [Коллекции резервных копий](https://ydb.tech/docs/ru/devops/backup-and-recovery/index.md?version=main#backup-collections) документа «Резервное копирование и восстановление».

{% endnote %}

## Обзор

Коллекции резервных копий решают типичные задачи резервного копирования для производственных нагрузок:

- **Эффективность хранения**: Инкрементальные резервные копии захватывают только изменения с момента предыдущей резервной копии, значительно сокращая требования к хранилищу по сравнению с множеством полных резервных копий.
- **Согласованное восстановление**: Все таблицы в коллекции создаются из одного глобального снимка, обеспечивая ссылочную целостность между таблицами при восстановлении.
- **Восстановление по цепочке**: Восстановление к состоянию **самой поздней** резервной копии в актуальной цепочке — см. [`RESTORE`](https://ydb.tech/docs/ru/yql/reference/syntax/restore-backup-collection.md?version=main).

Для сравнения с другими методами резервного копирования (export/import, dump/restore) см. [Концепции резервного копирования](https://ydb.tech/docs/ru/concepts/backup.md?version=main).

## Ключевые концепции

Эти термины необходимы для понимания коллекций резервных копий. Подробные определения см. в [глоссарии](https://ydb.tech/docs/ru/concepts/glossary.md?version=main#backup-collection).

- **[Полная резервная копия](https://ydb.tech/docs/ru/concepts/glossary.md?version=main#backup)**: Полный снимок всех данных в коллекции на определённый момент времени. Служит основой для последующих инкрементальных резервных копий.
- **[Инкрементальная резервная копия](https://ydb.tech/docs/ru/concepts/glossary.md?version=main#backup)**: Захватывает только изменения (вставки, обновления, удаления) с момента предыдущей резервной копии. Требует всей цепочки резервных копий для восстановления.
- **[Цепочка резервных копий](https://ydb.tech/docs/ru/concepts/glossary.md?version=main#backup-chain)**: Упорядоченная последовательность, начинающаяся с полной резервной копии, за которой следует ноль или более инкрементальных резервных копий.

## Ограничения {#limitations}

Перед использованием коллекций резервных копий учтите эти ограничения:

- **Только строковые таблицы**: [Колоночные таблицы](https://ydb.tech/docs/ru/concepts/datamodel/table.md?version=main#column-oriented-tables) не поддерживаются.
- **Одна коллекция на таблицу**: Таблица может принадлежать только одной коллекции резервных копий. Чтобы включить таблицу в другую коллекцию, выполните [`DROP BACKUP COLLECTION`](https://ydb.tech/docs/ru/yql/reference/syntax/drop-backup-collection.md?version=main) для текущей коллекции и создайте новую с нужным составом таблиц.
- **Неизменяемый состав**: После создания список таблиц в коллекции нельзя изменить. Для добавления новых таблиц создайте новую коллекцию со всеми нужными таблицами.
- **Нет частичного восстановления**: Нельзя восстановить отдельные таблицы из коллекции; восстанавливается вся коллекция целиком.
- **Внешнее планирование**: YDB не предоставляет встроенного планирования резервного копирования. Используйте внешние инструменты, такие как cron, для автоматизации.

## Архитектура

Коллекции резервных копий используют механизм копирования при записи в сочетании с [потоками изменений](https://ydb.tech/docs/ru/concepts/cdc.md?version=main) для эффективных инкрементальных резервных копий. В этом разделе объясняется, как компоненты работают вместе.

### Как работают коллекции резервных копий

Следующая диаграмма иллюстрирует процесс резервного копирования:

```mermaid
block-beta
    columns 5

    CREATE["Создание\nколлекции"]
    FULL["Полная\nкопия"]
    INC1["Инкрементальная\nкопия"]
    INC2["Инкрементальная\nкопия"]
    DROP["Удаление\nколлекции"]

    CREATE --> FULL
    FULL --> INC1
    INC1 --> INC2
    INC2 --> DROP

    style CREATE fill:#1976D2,color:#fff
    style FULL fill:#1565C0,color:#fff
    style INC1 fill:#42A5F5,color:#fff
    style INC2 fill:#64B5F6,color:#000
    style DROP fill:#E91E63,color:#fff
```

**Создание коллекции** определяет, какие таблицы включить, и создаёт схемный объект. Это быстрая операция только с метаданными.

**Полная резервная копия** создаёт согласованный снимок всех таблиц в коллекции. Ключевые характеристики:

- Использует **глобальный снимок**, который обеспечивает согласованность всех таблиц в коллекции.
- Создаёт **потоки изменений** для каждой таблицы для отслеживания последующих модификаций.
- Использует **копирование при записи**: Резервная копия создаётся быстро путём ссылки на существующие данные; фактическое копирование данных происходит только при модификации исходных данных.

**Инкрементальная резервная копия** захватывает все изменения с момента предыдущей резервной копии:

- Использует **распределённую транзакцию** для чтения потоков изменений из всех таблиц в согласованной точке, обеспечивая ссылочную целостность всей коллекции.
- Считывает накопленные изменения из потоков изменений, созданных при выполнении полной резервной копии и накапливающих изменения **с момента предыдущей резервной копии (полной или инкрементальной)**.
- Записывает все модификации: вставки, обновления и удаления (в том числе в виде записей об удалении).
- Сохраняет данные потоков изменений в таблицы инкрементальной резервной копии.

{% note warning %}

Изменения схемы (ALTER TABLE) таблиц в коллекции резервных копий не отслеживаются инкрементальными резервными копиями. Если вам нужно изменить схему таблицы с резервной копией, создайте новую полную резервную копию после изменения схемы, чтобы цепочка резервных копий отражала новую структуру.

{% endnote %}

{% note info %}

Потоки изменений, созданные при полной резервной копии, автоматически удаляются при удалении коллекции резервных копий. Их нельзя удалить вручную или использовать для других целей, пока коллекция существует.

{% endnote %}

### Хранение

Коллекции резервных копий хранятся в кластере YDB в выделенной структуре каталогов:

```text
/Root/database/.backups/collections/
├── my_collection/
│   ├── 20250821141425Z_full/
│   │   ├── table_1/
│   │   └── table_2/
│   └── 20250821151519Z_incremental/
│       ├── table_1/
│       └── table_2/
```

{% note info %}

Каталог `.backups` создаётся автоматически при создании первой коллекции резервных копий и управляется системой. После его создания вы можете управлять таблицами резервных копий внутри него (например, при экспорте или импорте резервных копий).

{% endnote %}

#### Кластерное хранилище

По умолчанию резервные копии хранятся в кластере. Резервные копии в кластере предназначены для восстановления после **логических ошибок**, таких как случайный `DROP TABLE`, `TRUNCATE TABLE` или ошибочные изменения данных. Преимущества:

- Быстрые операции резервного копирования и восстановления.
- Интегрированные механизмы безопасности.
- Не требуется внешняя инфраструктура.

{% note warning %}

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

{% endnote %}

#### Внешнее хранилище {#external-storage}

Для **аварийного восстановления** и защиты от отказов всего кластера регулярно экспортируйте коллекции резервных копий во внешнее хранилище (S3-совместимое хранилище или файловую систему) с помощью [операций export/import](https://ydb.tech/docs/ru/reference/ydb-cli/export-import/index.md?version=main).

Для экспорта резервных копий во внешнее хранилище используйте YDB CLI:

- [`ydb export s3`](https://ydb.tech/docs/ru/reference/ydb-cli/export-import/export-s3.md?version=main) для S3-совместимого хранилища.
- [`ydb export nfs`](https://ydb.tech/docs/ru/reference/ydb-cli/export-import/export-nfs.md?version=main) для NFS на хостах кластера.
- [`ydb tools dump`](https://ydb.tech/docs/ru/reference/ydb-cli/export-import/tools-dump.md?version=main) для файловой системы на локальном компьютере.

Каждую резервную копию в цепочке необходимо экспортировать отдельно. Сохраняйте порядок цепочки при экспорте/импорте для успешного восстановления.

### Фоновые операции

Все операции резервного копирования и восстановления выполняются асинхронно, позволяя продолжать обычные операции с базой данных. Отслеживайте прогресс с помощью [`ydb operation list incbackup`](https://ydb.tech/docs/ru/reference/ydb-cli/operation-list.md?version=main).

## Восстановление из резервных копий

Восстановление возвращает данные к состоянию самой поздней резервной копии в цепочке, находящейся в кластере. Чтобы восстановиться к более раннему состоянию, импортируйте из внешнего хранилища только нужный префикс цепочки — см. [Импорт и восстановление](https://ydb.tech/docs/ru/recipes/backup-collections/importing-and-restoring.md?version=main).

### Процесс восстановления

1. **Импорт из внешнего хранилища** (при необходимости): Если резервные копии были экспортированы, импортируйте полную резервную копию и все инкрементальные резервные копии до нужной точки восстановления.

2. **Выполнение восстановления**: Выполните `RESTORE collection_name` для восстановления всех таблиц из коллекции резервных копий. Система применяет полную резервную копию и все инкрементальные резервные копии последовательно для достижения последней точки резервного копирования.

{% note warning %}

Операция восстановления завершится с ошибкой, если хотя бы одна из восстанавливаемых таблиц уже существует по тому же пути. Переименуйте или удалите конфликтующие таблицы перед восстановлением.

{% endnote %}

Все таблицы в коллекции восстанавливаются к одной и той же точке во времени: данные из разных таблиц будут взаимно согласованы.

{% note info %}

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

{% endnote %}

## См. также

- [Концепции резервного копирования](https://ydb.tech/docs/ru/concepts/backup.md?version=main): Обзор всех подходов к резервному копированию в YDB
- [Резервное копирование и восстановление: коллекции резервных копий](https://ydb.tech/docs/ru/devops/backup-and-recovery/index.md?version=main#backup-collections): пошаговые сценарии и команды CLI
- [Рецепты и примеры](https://ydb.tech/docs/ru/recipes/backup-collections/index.md?version=main): Типовые сценарии и примеры
- Справочник YQL:
  - [CREATE BACKUP COLLECTION](https://ydb.tech/docs/ru/yql/reference/syntax/create-backup-collection.md?version=main)
  - [BACKUP](https://ydb.tech/docs/ru/yql/reference/syntax/backup.md?version=main)
  - [RESTORE](https://ydb.tech/docs/ru/yql/reference/syntax/restore-backup-collection.md?version=main)
  - [DROP BACKUP COLLECTION](https://ydb.tech/docs/ru/yql/reference/syntax/drop-backup-collection.md?version=main)
