31 lines
1.5 KiB
Markdown
31 lines
1.5 KiB
Markdown
---
|
||
aliases:
|
||
- RBR
|
||
tags:
|
||
- зрелость/🌱
|
||
date:
|
||
- - 2024-06-02
|
||
zero-link:
|
||
- "[[00 MySQL]]"
|
||
parents:
|
||
- "[[Репликация в MySQL]]"
|
||
linked:
|
||
- "[[Statement Based Replication (SBR)]]"
|
||
---
|
||
От мастера к слейву отправляются только измененные строки, сам результат изменений. Основан на журнале [Row-based Binary Log](Журналы%20в%20MySQL.md#Row-based%20Binary%20Log).
|
||
|
||
Есть три режима работы:
|
||
- full - при изменении сохраняются все колонки (до изменения и после), даже если в них не было изменений. Потребляет много памяти.
|
||
- noblob - работает как full, но не передает изменения BLOB и TEXT колонок
|
||
- minimal - при изменении строки сохраняются только измененные колонки и колонки ПК
|
||
|
||
**Плюсы:**
|
||
- Детерминирован. Запрос выполняется на master, а slave получают уже результат
|
||
- Бинарный формат
|
||
|
||
**Минусы:**
|
||
- Не человеко-читаемый
|
||
- Есть утилита `mysqlbinlog -v`, которая позволяет читать журнал
|
||
- При изменении одного поля у записи отправляется вся запись целиком
|
||
- в mysql есть binlog_row_image, который решает эту проблему
|