Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Восстановление из WAL со смешанными транзакциями при обновлении до 2.11.0

Это руководство по устранению специфической проблемы, которая может возникнуть при обновлении с версии Tarantool 2.1.2–2.2.0 до версии 2.8.1 или новее. Описанное решение применимо начиная с версии 2.11.0.

Проблема описана в задаче 7932. Если в Tarantool 2.1.2–2.2.0 одновременно выполнялись две или более транзакции, их операции могли быть записаны в журнал упреждающей записи (WAL) вперемешку друг с другом. Начиная с версии 2.8.1 Tarantool восстанавливает транзакции атомарно и ожидает, что все записи WAL между операциями begin и commit транзакции принадлежат одной транзакции. При обнаружении операции, принадлежащей другой транзакции, Tarantool не может восстановиться из такого WAL.

Начиная с версии 2.11.0 в Tarantool доступно восстановление из WAL со смешанными транзакциями в режиме force_recovery.

Экземпляры не запускаются

Если после обновления до версии 2.11 или новее все или некоторые экземпляры не запускаются из-за ошибки восстановления:

  1. Запустите эти экземпляры с параметром force_recovery, установленным в true.

  2. Создайте новые снимки на этих экземплярах, чтобы старые WAL со смешанными транзакциями больше не использовались для восстановления. Для этого вызовите функцию box.snapshot().

  3. Верните параметру force_recovery значение false.

Репликация не работает

Даже после успешного запуска некоторые экземпляры могут не получать данные от других из-за WAL со смешанными транзакциями. Чтобы устранить проблемы с репликацией, выполните повторную начальную загрузку экземпляров, на которых не работает репликация.