@haramba
Почему вопросы о про битрикс такие тупые?

Какое влияние sync_binlog > 1 при innodb_flush_log_at_trx_commit = 2?

Помогите понять пожалуйста.
Что принципиально изменится при установке
sync_binlog = 1000 при innodb_flush_log_at_trx_commit = 2

Второй параметр, насколько понял, влияет на сохранение коммитов на диск, а первый сохраняет записи бинарного лога на диск.

Я правильно понимаю, что при конфиге sync_binlog=1
всегда можно восстановить данные из бинарного лога? А при > 1 и соответственно значении 2 второго параметра, при краше мускуля может потеряться транзакция, в т.ч в логе?


Из доков:
innodb_flush_log_at_trx_commit

With a setting of 2, logs are written after each transaction commit and flushed to disk once per second. Transactions for which logs have not been flushed can be lost in a crash.


sync_binlog

sync_binlog=N, where N is a value other than 0 or 1: The binary log is synchronized to disk after N binary log commit groups have been collected. In the event of a power failure or operating system crash, it is possible that the server has committed transactions that have not been flushed to the binary log. This setting can have a negative impact on performance due to the increased number of disk writes. A higher value improves performance, but with an increased risk of data loss.
  • Вопрос задан
  • 1349 просмотров
Решения вопроса 1
@retvizan
Что принципиально изменится при установке
sync_binlog = 1000 при innodb_flush_log_at_trx_commit = 2

Есть возможность потерять данные при крахе системы.

Транзакция завершилась, запись об этом попала в бин лог. Но, что будет с бин логом при крахе?
1. sync_binlog = 1 - бин лог сбрасывается на диск после каждой транзакции (данные о завершенных транзакциях не теряются при крахе, но много операций записи, плохо для производительности)
2. sync_binlog > N - бин лог сбрасывается на диск реже (данные о завершенных транзакциях могут быть потеряны при крахе, но меньше операций записи, лучше для производительности)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vitaly_il1
DevOps Consulting
Я правильно понимаю, что при конфиге sync_binlog=1
всегда можно восстановить данные из бинарного лога?

Бинарный лог записывается после транзакции, так что насколько понимаю вы неправы.
Иными словами, если mysql падает во время транзакции, то бинарный лог еще не успел записаться.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы