VK Object Storage logo
Помощь
Обновлена 17 июля 2026 г. в 15:35

Восстановление работоспособности инстансов Tarantool

После аварийного перезапуска сервера может произойти сбой инстансов Tarantool из-за повреждения лога (ошибка invalid magic: 0x0):

2026-02-27T16:08:24.978709+03:00 sc01-s3pd-meta01 matter_001_01[2954]: main/104/matter_001_01 xlog.c:1708 E> XlogError: invalid magic: 0x02026-02-27T16:08:24.978715+03:00 sc01-s3pd-meta01 matter_001_01[2954]: main/104/matter_001_01 F> can't initialize storage: invalid magic: 0x0

Чтобы восстановить работу инстансов:

  1. Сохраните поврежденный файл лога (.xlog).

  2. Выберите в наборе реплик узлов рабочий мастер, а при отказе всех узлов определите последний рабочий мастер через Etcd.

  3. В файле конфигурации выбранного узла /etc/filedb/conf.lua для параметра force_recovery установите значение true:

    assert(instance_name, "instance_name is required from symlink")etcd = {   ...}box = {   force_recovery=true,   ...}
  4. Запустите узел с этой конфигурацией и подождите, пока все инстансы вернутся в работу.

  5. В конфигурации узла для параметра force_recovery верните false.

  6. Перезапустите узел.

  7. Проверьте состояние инстансов:

    switchover -p hotbox status <ИМЯ_КЛАСТЕРА>
  8. Проверьте логи узла.

  9. Проверьте состояние репликации:

    • Если репликация работает корректно, сделайте снапшот через box.snapshot().

    • При сбое репликации перезапустите ее:

      switchover -p hotbox rr <ИМЯ_КОМПОНЕНТА>@<ИМЯ_ИНСТАНСА>

      Если проблема с репликацией осталась, восстановите реплику, на которой был поврежденный лог (подробнее — в разделе 1 Аварийное восстановление репликации Tarantool).