По умолчанию в MySQL 5.6 формат двоичного журнала по умолчанию - "STATEMENT". (https://dev.mysql.com/doc/refman/5.6/en/replication-formats.html)
MySQL 5.6, работающий на RDS, по умолчанию имеет формат "MIXED", хотя (http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html). Кажется, что STATEMENT даже недоступно.
В чем причина этого несоответствия?
Нет никаких противоречий. RDS, будучи управляемой службой, не включает все возможные настраиваемые значения для каждого параметра конфигурации.
Архитекторы RDS предпочли не делать STATEMENT
доступен как опция для BINLOG_FORMAT
, по-видимому, потому, что они признают тот факт, что он имеет множество ограничений в среде репликации.
Не все операторы, которые изменяют данные (например,
INSERT
,DELETE
,UPDATE
, иREPLACE
операторы) могут быть воспроизведены [правильно] с помощью репликации на основе операторов. Любое недетерминированное поведение трудно воспроизвести при использовании репликации на основе операторов.
Даже если у вас нет реплик RDS, двоичный журнал по-прежнему используется для восстановления RDS на определенный момент времени. Не требуя по крайней мере MIXED
ведение журнала, RDS не сможет восстановить экземпляр до определенного момента времени и гарантировать, что он будет фактически идентичен исходному экземпляру в тот же момент времени. С помощью MIXED
или ROW
делает это возможным.
Действительно, более запутанный вопрос заключается в том, почему значение по умолчанию в официальных дистрибутивах не было изменено на MIXED
обратно в MySQL 5.1 или 5.5. С помощью STATEMENT
режим - почти всегда неправильный выбор.
По состоянию на 2018 год AWS RDS позволяет следующие настройки binlog_format: ROW, STATEMENT, MIXED, OFF
как показано в официальная документация AWS RDS
Значение по умолчанию для нового экземпляра Aurora: STATEMENT
.
mysql> show global variables like 'binlog_format';
+---------------+-----------+
| Variable_name | Value |
+---------------+-----------+
| binlog_format | STATEMENT |
+---------------+-----------+
1 row in set (0,08 sec)