14.6.5 Буфер двойной записи
Буфер двойной записи — это область памяти, где InnoDB записывает страницы, сброшенные из буфера пула, перед записью страниц в их надлежащие места в InnoDB файлах данных. Если в середине записи страницы происходит выход из строя операционной системы, подсистемы хранения или неожиданный выход процесса mysqld, InnoDB сможет найти копию страницы из буфера двойной записи во время восстановления после сбоя.
Несмотря на то, что данные записываются дважды, буфер двойной записи не требует двойного I/O-накладных расходов или двойного количества операций ввода-вывода. Данные записываются в буфер двойной записи в большом последовательном блоке с одной fsync() вызовом операционной системе (за исключением случаев, когда innodb_flush_method установлено в O_DIRECT_NO_FSYNC).
Буфер двойной записи по умолчанию включен в большинстве случаев. Чтобы отключить буфер двойной записи, установите innodb_doublewrite в 0.
Если файлы системного табличного пространства (“файлы ibdata”) находятся на устройствах Fusion-io, поддерживающих атомарные записи, буферизация двойной записи автоматически отключается, и для всех файлов данных используются атомарные записи Fusion-io. Поскольку настройка буфера двойной записи глобальна, буферизация двойной записи также отключается для файлов данных, находящихся на оборудовании, не являющемся Fusion-io. Эта функция поддерживается только на оборудовании Fusion-io и включена только для Fusion-io NVMFS в Linux. Для полного использования этой функции рекомендуется настройка innodb_flush_method на значение O_DIRECT.
© 2025 Oracle
Licensed under the GPLv2 License.