Mysql 5.6: Replication with Global Transaction Identifiers / Репликация с помощью глобальных идентификаторов транзакций: 16.1.3.4. Ограничения GTID-репликаций

Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Следствием зависимости GTID-ориентированной репликации от транзакций, является то, что некоторые функции MySQL не будут доступны при ее использовании. Этот раздел посвещен таким запретам и ограничениям.

nipman 30.10.13 в 07:25

0

Обновление хранилищ, неподдерживающих транзакции. При использовании GTID, одновременное обновление таких хранилищ как MyISAM и InnoDB не может быть произведено в рамках одого выражения или транзакции.

nipman 30.10.13 в 07:28

0

Это ограничение вызвано с тем, что смешанное обновление транзакционных и нетранзакционных хранилищ во время одной транзакции может привести к появлению множества GTID связанных с одной и той же транзакцией.

nipman 30.10.13 в 07:31

0

Такие проблемы могут возникнуть еще и в том случае, если master и slave сервера используют разные типы хранилищ для одной и той же таблицы, где одно из них поддерживает транзакции а другое нет.

nipman 30.10.13 в 07:36

0

В каждом из описанных случаев происходит нарушение связи один-к-одному между GTID и транзакцией, что приводит некорректному функционированию репликации.

nipman 30.10.13 в 07:37

0

CREATE TABLE ... SELECT выражения. CREATE TABLE ... SELECT небезопасны для командо-ориентированной репликации. При использовании строко-ориентированной репликации это действие записывается в виде двух отдельных событий - создание и добавление строк в созданную таблицу. Выполнение этого выражения внутри транзакции, в некоторых случаях может привести к тому, что обе транзакции получат одинаковый идентификатор, что в свою очередь приведет к пропуску операции вставки на slave-сервере. Поэтому выражение CREATE TABLE ... SELECT не поддерживается при использовании GTID-ориентированной репликации.

nipman 30.10.13 в 07:43

0

Временные таблицы. Использование выражение CREATE TEMPORARY TABLE и DROP TEMPORARY TABLE внутри транзакций не поддерживается при использовании GTID (при указании опции --enforce-gtid-consistency). Возможно использование этих выражений только за пределами транзакций и только с autocommit=1.

nipman 30.10.13 в 07:52

0

Ограничение использования неподдерживаемых выражений. Использование таких выражение приведет к нарушению функционирования GTID-репликации. Все сервера должны быть запущены с опцией --enforce-gtid-consistency. Что обеспечит возникновение ошибки при попытке выполнить описанные выше выражения.

nipman 30.10.13 в 07:55

0

Для получения инофрмации о других опциях GTID, см 16.1.3.2 "Настройка репликации с помощью GTID".

nipman 30.10.13 в 07:56

0

При использовании GTID sql_slave_skip_counter не поддерживается. Если нужно пропустить транзакции, используйте gtid_executed на master-сервере; см Внедрение пустых транзакций.

nipman 30.10.13 в 07:58

0

GTID и mysqldump. В MySQL версии 5.6.9 и старше, возможно импортирование слепка сделанного mysqldump на сервер запущенном в GTID-режиме даже если в его бинарном логе нет GTID.

nipman 30.10.13 в 08:04

0

В версиях предшествовавших 5.6.9, в mysqldump не поддерживалась запись глобальных идентификаторов транзакций, для это было необходимо использовать бинарный лог и mysqlbinlog для восстановления GTID. (Ошибка #14797808, Ошибка #14832472)

nipman 30.10.13 в 08:06

0

GTID-режим и mysql_upgrade. В версиях MySQL предшесовавших 5.6.7, процесс mysql_upgrade не имел возможности подключиться к серверу, запущенному с опцией --gtid-mode=ON, до перезапуска с опцией --write-binlog=OFF. (Или с опцией --gtid-mode=OFF для запуска mysql_upgrade, а затем с --gtid_mode=ON ). В версиях MySQL 5.6.7 и старше проблема устранена, опция --write-binlog=OFF присутствует по-умолчанию. (Bug #13833710) Тем не менее рекомендуется избегать таких действий, так как mysql_upgrade может вносить изменения в системные таблицы, использующие механизм MyISAM и как следствие не поддерживающие транзакции.

nipman 30.10.13 в 08:13

0
Минутку...