Разница между репликацией на основе строк и на основе операторов в MySQL?

12

Какова реальная разница между репликацией на основе строк и операторов. Я на самом деле смотрю с точки зрения влияния репликации на раба.

Если я использую репликацию на основе строк, то каково влияние на ведомое устройство, и если я использую операторы на основе операторов, то каков эффект?

Пожалуйста, примите во внимание следующие параметры:

   replicate-ignore-db  and replicate-do-db 

Благодарность....!

Абдул Манаф
источник

Ответы:

15

Репликация на основе операторов (SBR) будет реплицировать операторы SQL. Это легче читать, используя программу дампа mysqlbinlog.

Репликация на основе строк (RBR) будет реплицировать фактические изменения данных. Двоичные журналы и релейные журналы будут расти намного быстрее, чем SBR. Вы также не можете определить SQL, который сгенерировал изменения.
(Пожалуйста, прочитайте обновленную информацию для MySQL 5.6.2. Ниже)

Вот более полный список плюсов и минусов: http://www.databasejournal.com/features/mysql/article.php/3922266/Comparing-MySQL-Statement-Based-and-Row-Based-Replication.htm

MySQL разрешит оба типа форматов операторов / строк в своих двоичных журналах. Я рекомендую ЗАЯВЛЕНИЕ на основе. По умолчанию двоичный формат журнала MIXED, который в порядке.

Поскольку вы используете replicate-ignore-dbи replicate-do-db, я бы доверял репликации на основе выписок.


Обновление для MySQL 5.6.2:

Представленная в MySQL 5.6.2 binlog_rows_query_log_eventsсистемная переменная заставляет сервер MySQL 5.6.2 или новее записывать события информационного журнала, такие как события журнала запросов строк, в свой двоичный журнал. Таким образом, мы можем определить SQL, который сгенерировал изменения.

Ссылка: 17.1.4.4 Параметры и переменные двоичного журнала

RolandoMySQLDBA
источник
что такое режим репликации по умолчанию SBR или RBR ... ??
Абдул Манаф
1
SBR - Заявление
RolandoMySQLDBA
3
Режим по умолчанию - MIXED начиная с 5.1.8, который использует в основном репликацию на основе операторов, но автоматически переключается на RBR, когда выполняются запросы, небезопасные с SBR. dev.mysql.com/doc/refman/5.1/ru/replication-formats.html
Аарон Браун
9

В MySQL 5.5 формат на основе операторов используется по умолчанию. Но лучше использовать смешанный формат. Потому что в этом случае ведение журнала на основе операторов используется по умолчанию, но автоматически переключается на ведение журнала на основе строк в тех случаях, когда это необходимо.

shantanuo
источник