Mysql 5.6: Replication with Global Transaction Identifiers / Репликация с помощью глобальных идентификаторов транзакций: 16.1.3.4. Ограничения GTID-репликаций
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Следствием зависимости GTID-ориентированной репликации от транзакций, является то, что некоторые функции MySQL не будут доступны при ее использовании. Этот раздел посвещен таким запретам и ограничениям. nipman 30.10.13 в 07:25 |
|
|
Обновление хранилищ, неподдерживающих транзакции. При использовании GTID, одновременное обновление таких хранилищ как MyISAM и InnoDB не может быть произведено в рамках одого выражения или транзакции. nipman 30.10.13 в 07:28 |
||
|
Это ограничение вызвано с тем, что смешанное обновление транзакционных и нетранзакционных хранилищ во время одной транзакции может привести к появлению множества GTID связанных с одной и той же транзакцией. nipman 30.10.13 в 07:31 |
||
|
Такие проблемы могут возникнуть еще и в том случае, если master и slave сервера используют разные типы хранилищ для одной и той же таблицы, где одно из них поддерживает транзакции а другое нет. nipman 30.10.13 в 07:36 |
||
|
В каждом из описанных случаев происходит нарушение связи один-к-одному между GTID и транзакцией, что приводит некорректному функционированию репликации. nipman 30.10.13 в 07:37 |
||
|
CREATE TABLE ... SELECT выражения. CREATE TABLE ... SELECT небезопасны для командо-ориентированной репликации. При использовании строко-ориентированной репликации это действие записывается в виде двух отдельных событий - создание и добавление строк в созданную таблицу. Выполнение этого выражения внутри транзакции, в некоторых случаях может привести к тому, что обе транзакции получат одинаковый идентификатор, что в свою очередь приведет к пропуску операции вставки на slave-сервере. Поэтому выражение CREATE TABLE ... SELECT не поддерживается при использовании GTID-ориентированной репликации. nipman 30.10.13 в 07:43 |
||
|
Временные таблицы. Использование выражение CREATE TEMPORARY TABLE и DROP TEMPORARY TABLE внутри транзакций не поддерживается при использовании GTID (при указании опции --enforce-gtid-consistency). Возможно использование этих выражений только за пределами транзакций и только с autocommit=1. nipman 30.10.13 в 07:52 |
||
|
Ограничение использования неподдерживаемых выражений. Использование таких выражение приведет к нарушению функционирования GTID-репликации. Все сервера должны быть запущены с опцией --enforce-gtid-consistency. Что обеспечит возникновение ошибки при попытке выполнить описанные выше выражения. nipman 30.10.13 в 07:55 |
||
|
Для получения инофрмации о других опциях GTID, см 16.1.3.2 "Настройка репликации с помощью GTID". nipman 30.10.13 в 07:56 |
||
|
При использовании GTID sql_slave_skip_counter не поддерживается. Если нужно пропустить транзакции, используйте gtid_executed на master-сервере; см Внедрение пустых транзакций. nipman 30.10.13 в 07:58 |
||
|
GTID и mysqldump. В MySQL версии 5.6.9 и старше, возможно импортирование слепка сделанного mysqldump на сервер запущенном в GTID-режиме даже если в его бинарном логе нет GTID. nipman 30.10.13 в 08:04 |
||
|
В версиях предшествовавших 5.6.9, в mysqldump не поддерживалась запись глобальных идентификаторов транзакций, для это было необходимо использовать бинарный лог и mysqlbinlog для восстановления GTID. (Ошибка #14797808, Ошибка #14832472) nipman 30.10.13 в 08:06 |
||
|
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 |
