Spec-Zone.ru › MariaDB

Восстановление с помощью журнала координатора транзакций

Журнал координатора транзакций (tc_log) используется для координации транзакций, затрагивающих несколько XA-совместимых движков хранения. Одна из основных целей этого журнала — восстановление после сбоя.

Режимы восстановления после сбоя

Существует два режима восстановления после сбоя:

  • Автоматическое восстановление после сбоя.
  • Ручное эвристическое восстановление, когда --tc-heuristic-recover установлено в значение, отличное от OFF.

Автоматическое восстановление после сбоя

Автоматическое восстановление после сбоя происходит во время запуска, когда MariaDB необходимо восстановить после сбоя, и --tc-heuristic-recover установлено в OFF, что является значением по умолчанию.

Автоматическое восстановление после сбоя с использованием журнала координатора транзакций, основанного на бинарном журнале

Если MariaDB необходимо выполнить автоматическое восстановление после сбоя и если бинарный журнал включен, то в журнале ошибок будут отображаться сообщения, подобные этому:

[Note] Recovering after a crash using cmdb-mariadb-0-bin
[Note] InnoDB: Buffer pool(s) load completed at 190313 11:24:29
[Note] Starting crash recovery...
[Note] Crash recovery finished.

Автоматическое восстановление после сбоя с использованием журнала координатора транзакций, основанного на файле с отображением в памяти

Если MariaDB необходимо выполнить автоматическое восстановление после сбоя и если бинарный журнал не включен, то в журнале ошибок будут отображаться сообщения, подобные этому:

[Note] Recovering after a crash using tc.log
[Note] InnoDB: Buffer pool(s) load completed at 190313 11:26:32
[Note] Starting crash recovery...
[Note] Crash recovery finished.

Ручное эвристическое восстановление

Ручное эвристическое восстановление происходит, когда --tc-heuristic-recover установлено в значение, отличное от OFF. Это может потребоваться, если сервер обнаружит подготовленные транзакции во время восстановления после сбоя, которые отсутствуют в журнале координатора транзакций. Например, в журнале ошибок может появиться ошибка такого типа:

[ERROR] Found 1 prepared transactions! It means that mysqld was not shut down properly last time and critical recovery information (last binlog or tc.log file) was manually deleted after a crash. You have to start mysqld with --tc-heuristic-recover switch to commit or rollback pending transactions.

При запуске ручного эвристического восстановления MariaDB проигнорирует информацию о транзакциях в журнале координатора транзакций во время процесса восстановления. Подготовленные транзакции, обнаруженные во время процесса восстановления, будут либо откачены, либо подтверждены в зависимости от значения --tc-heuristic-recover.

При запуске ручного эвристического восстановления в журнале ошибок будет отображаться сообщение, подобное этому:

[Note] Heuristic crash recovery mode

Ручное эвристическое восстановление с использованием журнала координатора транзакций, основанного на бинарном журнале

Если --tc-heuristic-recover установлено в значение, отличное от OFF, и бинарный журнал включен, то MariaDB проигнорирует информацию о транзакциях в бинарном журнале во время процесса восстановления. Подготовленные транзакции, обнаруженные во время процесса восстановления, будут либо откачены, либо подтверждены в зависимости от значения --tc-heuristic-recover.

После завершения процесса восстановления MariaDB создаст новый пустой файл бинарного журнала, чтобы можно было проигнорировать старые поврежденные файлы.

Ручное эвристическое восстановление с использованием журнала координатора транзакций, основанного на файле с отображением в памяти

Если --tc-heuristic-recover установлено в значение, отличное от OFF, и бинарный журнал не включен, то MariaDB проигнорирует информацию о транзакциях в файле с отображением в памяти, определенном параметром --log-tc, во время процесса восстановления. Подготовленные транзакции, обнаруженные во время процесса восстановления, будут либо откачены, либо подтверждены в зависимости от значения --tc-heuristic-recover.

Содержание, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержание не предварительно проверяется MariaDB. Мнения, информация и мнения, выраженные в данном содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/heuristic-recovery-with-the-transaction-coordinator-log/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API