ATE Documentation portal logo
Помощь
Обновлена 30 октября 2026 г. в 12:05

Переменные PITR-восстановления

В этом разделе приведены переменные окружения сценария PITR-восстановления playbooks/restore_pitr.yml. Сценарий восстанавливает кластер Tarantool 3.x на момент времени T из резервной копии, созданной сценарием playbooks/backup_pitr.yml, на основе утилиты tt restore (планирование точки восстановления и применение архивов на целевых узлах).

Все переменные имеют префикс tarantool_pitr_ и задаются глобально, например через --extra-vars или в файле инвентаря. Сценарий переиспользует общие переменные раскладки хранилища из резервирования (tarantool_pitr_storage, tarantool_pitr_storage_root, tarantool_pitr_cluster_name, tarantool_pitr_environment, tarantool_pitr_tt_bin_dir) и переменные роли tt для подключения к централизованному хранилищу конфигурации tt_config_storage_* (см. раздел [Переменные tt CLI}).

Обязательные переменные {paramsanchor

Переменная

Описание

tarantool_pitr_storage

Значение, передаваемое в tt restore plan флагом --backup-storage: ссылка на файл конфигурации хранилища (@/path/s3-prod.yaml) либо inline-URI (s3://…, s3+https://…, file://…). Общая переменная для резервирования и восстановления (хранилище одно и то же). Ссылочный файл конфигурации должен существовать на хосте восстановления. Тип: string. Значение по умолчанию: "" (обязательная).

tarantool_pitr_restore_host

Хост, на котором выполняется фаза plan (для управляющего узла Ansible — localhost). Тип: string. Значение по умолчанию: "" (обязательная).

tarantool_shared_hosts

Хосты кластера, на которых выполняется остановка и применение архивов. Тип: string. Значение по умолчанию: "" (обязательная).

Область хранилища (кластер и окружение)

Переменные tarantool_pitr_cluster_name и tarantool_pitr_environment необязательны. Они выбирают поддерево хранилища <root>/<prefix>/<cluster-name>/<environment>/ и должны совпадать с теми, что использовались при резервировании (backup_pitr.yml). Если обе переменные пусты, резервные копии читаются непосредственно из корня хранилища (или из его prefix). tarantool_pitr_environment задаётся только вместе с tarantool_pitr_cluster_name.

Переменная

Описание

tarantool_pitr_cluster_name

Имя кластера — первый компонент поддерева хранилища (<root>/<prefix>/<cluster-name>/<environment>/…). Переиспользуется из резервирования. Тип: string. Значение по умолчанию: "" (необязательная).

tarantool_pitr_environment

Окружение (например prod, stage) — второй компонент поддерева хранилища. Задаётся только вместе с tarantool_pitr_cluster_name. Переиспользуется из резервирования. Тип: string. Значение по умолчанию: "" (необязательная).

Момент восстановления

Момент восстановления выбирается автоматически: по умолчанию — последняя доступная точка. Задать его явно можно одним из двух способов ниже.

Точки восстановления создаются не сценарием резервирования, а встроенной ролью roles.recovery-point-manager (периодически, на каждом наборе реплик); без неё tt restore plan не найдёт ни одной точки (см. Переменные PITR-резервирования).

Переменная

Описание

tarantool_pitr_restore_target_time

Момент восстановления, передаваемый в tt restore plan флагом --target-time: RFC3339 (например 2026-03-26T12:00:00Z) либо временная метка Unix. Если точной точки в T нет, tt выбирает ближайшую доступную и возвращает её в плане (recovery_point.label). Тип: string. Значение по умолчанию: "" (необязательная; если пусто — восстановление на последнюю точку). На этапе разрешения последней точки читаются манифесты хранилища type: fs и требуется tarantool_pitr_storage_root; для S3-хранилища задайте момент явно.

tarantool_pitr_restore_point_label

Имя точки восстановления. Когда задана, сценарий разрешает её во временную метку, читая манифесты хранилища type: fs (нужен tarantool_pitr_storage_root), и передаёт в --target-time. Приоритетнее tarantool_pitr_restore_target_time. Для S3-хранилища недоступна — используйте tarantool_pitr_restore_target_time. Тип: string. Значение по умолчанию: "".

Хранилище

Переменная

Описание

tarantool_pitr_storage_root

Корневой каталог локальной файловой системы хранилища type: fs. Используется для чтения манифестов при --tags list-points, при разрешении tarantool_pitr_restore_point_label и при определении последней точки восстановления (пустой tarantool_pitr_restore_target_time). Для S3-хранилища переменную оставляют пустой. Тип: string. Значение по умолчанию: "".

Фильтр наборов реплик

tt restore plan разрешает момент восстановления только по кластерным точкам восстановления — одинаковой метке (label) на всех наборах реплик манифеста. Встроенная роль roles.recovery-point-manager создаёт точки только на наборах реплик storage и никогда на vshard-роутере (и других stateless-компонентах), поэтому нефильтрованный tt restore plan возвращает no_recovery_point. Переменная tarantool_pitr_restore_replicasets позволяет сузить восстановление до storage.

Переменная необязательна; если она пуста, сценарий сам вычисляет отличные от storage наборы реплик (роутеры и прочие stateless-компоненты) в инвентаре и исключает их. Исключённые наборы реплик не восстанавливаются; после tt restore plan их достаточно просто запустить, и они стартуют с пустого состояния и подключаются к восстановленному кластеру.

Переменная

Описание

tarantool_pitr_restore_replicasets

Белый список для tt restore plan (--replicasets): восстанавливаются ТОЛЬКО перечисленные наборы реплик (по имени, например storage-r01, через запятую). Тип: string. Значение по умолчанию: "" (необязательная).

Бинарный файл tt

Переменная

Описание

tarantool_pitr_tt_bin_dir

Директория, содержащая бинарный файл tt (для фаз plan и apply). По умолчанию — tt для каждого экземпляра (tt_bin_path), доступный на хостах кластера. Явно задаётся только для управляющего узла Ansible или выделенного хоста восстановления, не входящего в кластер. Тип: string. Значение по умолчанию: "{{ tt_bin_path }}" (необязательная).

Хост восстановления

Фаза plan (и раздача скачанных архивов) выполняется один раз на хосте восстановления. Хост восстановления обязателен: чтобы выполнять plan на управляющем узле Ansible, явно задайте tarantool_pitr_restore_host: localhost.

Переменная

Описание

tarantool_pitr_restore_host

Хост, на котором выполняется фаза plan. Обязательный; для управляющего узла Ansible задайте localhost. Тип: string. Значение по умолчанию: "".

Рабочий каталог

Переменная

Описание

tarantool_pitr_restore_dir

Локальный каталог, передаваемый в tt restore plan флагом -d. В него tt скачивает манифесты и архивы на хосте восстановления; оттуда архивы раздаются по целевым узлам. Тип: string. Значение по умолчанию: /tmp/restore.

Разнесённые каталоги данных

Tarantool 3.x хранит снимки данных, WAL и vinyl-файлы в раздельных каталогах (snapshot.dir, wal.dir, vinyl.dir). tt restore apply запускается отдельно для каждого записанного в манифесте экземпляра с флагом --instance <имя> и подключается к централизованному хранилищу конфигурации флагом -c, поэтому раздельные каталоги tt считывает из конфигурации кластера и сам раскладывает файлы по нужным каталогам. Каталог, не вынесенный отдельно, наследуется от work_dir экземпляра. Флаг --patch-uuid <uuid> вшивает UUID экземпляра в заголовки снапшотов и WAL, чтобы восстановленный экземпляр сохранил свой идентификатор.

Сохранение данных перед очисткой

Перед очисткой каталогов данных сценарий переносит их в сторону (переименование в <dir>.pre-restore-<ts>), а не удаляет сразу. Это позволяет откатиться, если tt restore apply упадёт после очистки: удалите восстановленные каталоги и переименуйте <dir>.pre-restore-* обратно. После успешного восстановления (tt restore apply выполнен на всех узлах) сценарий сам удаляет <dir>.pre-restore-*, чтобы освободить место.

Переменная

Описание

tarantool_pitr_restore_keep_data_backup

Когда true, перед очисткой каталоги данных (work_dir, memtx_dir, wal_dir, vinyl_dir) переименовываются в <dir>.pre-restore-<ts> (откат возможен). Когда false — каталоги просто очищаются без сохранения копии (место освобождается сразу, откат невозможен). Тип: boolean. Значение по умолчанию: true.

Была ли статья полезна?