Готовый перевод Mysql 5.6: Replication with Global Transaction Identifiers / Репликация с помощью глобальных идентификаторов транзакций: 16.1.3.4. Ограничения GTID-репликаций
Следствием зависимости GTID-ориентированной репликации от транзакций, является то, что некоторые функции MySQL не будут доступны при ее использовании. Этот раздел посвещен таким запретам и ограничениям.
Обновление хранилищ, неподдерживающих транзакции. При использовании GTID, одновременное обновление таких хранилищ как MyISAM и InnoDB не может быть произведено в рамках одого выражения или транзакции.
Это ограничение вызвано с тем, что смешанное обновление транзакционных и нетранзакционных хранилищ во время одной транзакции может привести к появлению множества GTID связанных с одной и той же транзакцией.
Такие проблемы могут возникнуть еще и в том случае, если master и slave сервера используют разные типы хранилищ для одной и той же таблицы, где одно из них поддерживает транзакции а другое нет.
В каждом из описанных случаев происходит нарушение связи один-к-одному между GTID и транзакцией, что приводит некорректному функционированию репликации.
CREATE TABLE ... SELECT выражения. CREATE TABLE ... SELECT небезопасны для командо-ориентированной репликации. При использовании строко-ориентированной репликации это действие записывается в виде двух отдельных событий - создание и добавление строк в созданную таблицу. Выполнение этого выражения внутри транзакции, в некоторых случаях может привести к тому, что обе транзакции получат одинаковый идентификатор, что в свою очередь приведет к пропуску операции вставки на slave-сервере. Поэтому выражение CREATE TABLE ... SELECT не поддерживается при использовании GTID-ориентированной репликации.
Временные таблицы. Использование выражение CREATE TEMPORARY TABLE и DROP TEMPORARY TABLE внутри транзакций не поддерживается при использовании GTID (при указании опции --enforce-gtid-consistency). Возможно использование этих выражений только за пределами транзакций и только с autocommit=1.
Ограничение использования неподдерживаемых выражений. Использование таких выражение приведет к нарушению функционирования GTID-репликации. Все сервера должны быть запущены с опцией --enforce-gtid-consistency. Что обеспечит возникновение ошибки при попытке выполнить описанные выше выражения.
Для получения инофрмации о других опциях GTID, см 16.1.3.2 "Настройка репликации с помощью GTID".
При использовании GTID sql_slave_skip_counter не поддерживается. Если нужно пропустить транзакции, используйте gtid_executed на master-сервере; см Внедрение пустых транзакций.
GTID и mysqldump. В MySQL версии 5.6.9 и старше, возможно импортирование слепка сделанного mysqldump на сервер запущенном в GTID-режиме даже если в его бинарном логе нет GTID.
В версиях предшествовавших 5.6.9, в mysqldump не поддерживалась запись глобальных идентификаторов транзакций, для это было необходимо использовать бинарный лог и mysqlbinlog для восстановления GTID. (Ошибка #14797808, Ошибка #14832472)
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 и как следствие не поддерживающие транзакции.
Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод
Переведено на Нотабеноиде
http://notabenoid.org/book/45231/179752
Переводчики: nipman
Настройки
Готово:
