Восстановление работоспособности инстансов 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
Чтобы восстановить работу инстансов:
-
Сохраните поврежденный файл лога (.xlog).
-
Выберите в наборе реплик узлов рабочий мастер, а при отказе всех узлов определите последний рабочий мастер через
Etcd. -
В файле конфигурации выбранного узла
/etc/filedb/conf.luaдля параметраforce_recoveryустановите значениеtrue:assert(instance_name, "instance_name is required from symlink")etcd = {...}box = {force_recovery=true,...} -
Запустите узел с этой конфигурацией и подождите, пока все инстансы вернутся в работу.
-
В конфигурации узла для параметра
force_recoveryвернитеfalse. -
Перезапустите узел.
-
Проверьте состояние инстансов:
switchover -p hotbox status <ИМЯ_КЛАСТЕРА> -
Проверьте логи узла.
-
Проверьте состояние репликации:
-
Если репликация работает корректно, сделайте снапшот через
box.snapshot(). -
При сбое репликации перезапустите ее:
switchover -p hotbox rr <ИМЯ_КОМПОНЕНТА>@<ИМЯ_ИНСТАНСА>Если проблема с репликацией осталась, восстановите реплику, на которой был поврежденный лог (подробнее — в разделе 1 Аварийное восстановление репликации Tarantool).
-