Spec-Zone .ru
спецификации, руководства, описания, API
|
MySQL Server options и системные переменные, описанные в этом разделе, используются, чтобы контролировать и управлять Глобальными Идентификаторами транзакции (GTIDs).
Для дополнительной информации см. Раздел 16.1.3, "Репликация с Глобальными Идентификаторами транзакции".
Опции запуска используются в репликации GTID. Последующие опции запуска сервера используются с GTID-на-основе репликацией:
Формат командной строки | --enforce-gtid-consistency[=value] |
||
Формат файла опции | enforce-gtid-consistency |
||
Системное Имя переменной | enforce_gtid_consistency
|
||
Переменный Контекст | Глобальная переменная | ||
Динамическая Переменная | Нет | ||
Разрешенные Значения | |||
Ввести | boolean |
||
Значение по умолчанию | false |
Когда установлено, эта опция позволяет выполнение только тех операторов, которые могут быть зарегистрированы транзакционно безопасный способ. Это означает, что следующие операции не могут использоваться, когда эта опция включается:
CREATE TABLE ... SELECT
операторы
CREATE
TEMPORARY TABLE
операторы в транзакциях
Транзакции или операторы, которые обновляют и транзакционные и нетранзакционные таблицы.
Нетранзакционные операторы DML позволяются на временных таблицах с --enforce-gtid-consistency
пока все таблицы, на которые влияют, являются временными таблицами.
Эта опция предназначается в основном для использования с программами, такими как mysql_install_db и mysql_upgrade.
Формат командной строки | --gtid-mode=MODE |
||
Формат файла опции | gtid-mode |
||
Системное Имя переменной | gtid_mode
|
||
Переменный Контекст | Глобальная переменная | ||
Динамическая Переменная | Нет | ||
Разрешенные Значения | |||
Ввести | enumeration |
||
Значение по умолчанию | OFF |
||
Допустимые Значения | OFF |
||
UPGRADE_STEP_1 |
|||
UPGRADE_STEP_2 |
|||
ON |
Эта опция определяет, включаются ли GTIDs. Запуск сервера с --gtid-mode=ON
требует, чтобы сервер также был запущен с --log-bin
и --log-slave-updates
опции также. (Кроме того, следует также
использовать --enforce-gtid-consistency
.)
Установка этой опции к OFF
когда есть GTIDs в двоичном журнале или в
релейном журнале, или к ON
то, когда там остаются анонимными
транзакциями, которые будут выполняться, вызывает ошибку.
Эта опция не использует булевы значения; его значения фактически перечисляются.
Недопустимо попытаться использовать числовые значения, устанавливая эту опцию, поскольку они
могут привести к неожиданным результатам. Значения UPGRADE_STEP_1
и
UPGRADE_STEP_2
резервируются для будущего использования, но в
настоящий момент не поддерживаются в производстве; если Вы используете одно из этих двух
значений с --gtid-mode
, сервер отказывается запуститься.
Это возможно, но не рекомендуемое выполнить mysql_upgrade на сервере где --gtid-mode=ON
, так как это может произвести изменения в системных
таблицах MySQL, которые используют MyISAM
механизм хранения, который является нетранзакционным.
До MySQL 5.7.1, устанавливая глобальное значение для sql_slave_skip_counter
переменная к 1 не имела никакого эффекта --gtid-mode
был установлен в ON
.. (Ошибка
#15833516), обходное решение в в предыдущих версиях должно сбросить использование позиции ведомого
устройства CHANGE MASTER TO ...
MASTER_LOG_FILE = ... MASTER_LOG_POS = ...
, включая MASTER_AUTO_POSITION
= 0
опция с этим оператором если нужно.
Системные переменные используются на ведущих устройствах репликации. Следующие системные переменные используются с GTID-на-основе репликацией:
Формат командной строки | --enforce-gtid-consistency[=value] |
||
Формат файла опции | enforce_gtid_consistency |
||
Системное Имя переменной | enforce_gtid_consistency
|
||
Переменный Контекст | Глобальная переменная | ||
Динамическая Переменная | Нет | ||
Разрешенные Значения | |||
Ввести | boolean |
||
Значение по умолчанию | false |
Когда эта переменная является истиной, выполнение допускается только те операторы, которые могут быть зарегистрированы транзакционно безопасный способ, что означает, что следующие операции не могут использоваться:
CREATE TABLE ... SELECT
операторы
CREATE
TEMPORARY TABLE
операторы в транзакциях
Транзакции или операторы, которые обновляют и транзакционные и нетранзакционные таблицы.
Эта переменная только для чтения. Чтобы установить это, используйте --enforce-gtid-consistency
опция на командной строке или в файле
опции, запуская MySQL Server.
Системное Имя переменной | gtid_executed
|
||
Переменный Контекст | Глобальная переменная, Сеанс | ||
Динамическая Переменная | Нет | ||
Разрешенные Значения | |||
Ввести | string |
Когда использующийся с глобальной областью видимости, эта переменная содержит представление набора всех транзакций, которые зарегистрированы двоичный журнал. Когда использующийся с контекстом сеанса, это содержит представление набора транзакций, которые пишутся кэшу в текущем сеансе.
Издание RESET MASTER
заставляет глобальное значение (но не значение сеанса) этой переменной быть сброшенным к пустой
строке.
Системное Имя переменной | gtid_mode
|
||
Переменный Контекст | Глобальная переменная | ||
Динамическая Переменная | Нет | ||
Разрешенные Значения | |||
Ввести | enumeration |
||
Значение по умолчанию | OFF |
||
Допустимые Значения | OFF |
||
UPGRADE_STEP_1 |
|||
UPGRADE_STEP_2 |
|||
ON |
Шоу, включаются ли GTIDs. Только для чтения; использование набора --gtid-mode
.
Системное Имя переменной | gtid_next
|
||
Переменный Контекст | Сеанс | ||
Динамическая Переменная | Да | ||
Разрешенные Значения | |||
Ввести | enumeration |
||
Значение по умолчанию | AUTOMATIC |
||
Допустимые Значения | AUTOMATIC |
||
ANONYMOUS |
|||
UUID:NUMBER |
Эта переменная используется, чтобы определить, ли и как следующий GTID получается. gtid_next
может принять любое из следующих значений:
AUTOMATIC
: Используйте следующий
автоматически сгенерированный глобальный ID транзакции.
ANONYMOUS
: Транзакции не имеют глобальных
идентификаторов, и идентифицируются файлом и позицией только.
Глобальный ID транзакции в UUID
:NUMBER
формат.
Вы должны иметь SUPER
полномочие установить эту переменную. Установка этой переменной
не имеет никакого эффекта если gtid_mode
OFF
.
В MySQL 5.7.1 невозможно выполнить ни один из операторов CHANGE MASTER TO
, START SLAVE
, STOP SLAVE
, REPAIR TABLE
, OPTIMIZE TABLE
, ANALYZE TABLE
, CHECK TABLE
, CREATE SERVER
, ALTER SERVER
, DROP SERVER
, CACHE INDEX
, LOAD INDEX INTO CACHE
, FLUSH
, или RESET
когда gtid_next
устанавливается в любое значение кроме AUTOMATIC
; в таких случаях оператор перестал работать с ошибкой.
Такие операторы не отвергаются в MySQL 5.7.2 и позже. (Ошибка
#16062608, Ошибка #16715809, Ошибка #69045) (Ошибка #16062608)
Системное Имя переменной | gtid_owned
|
||
Переменный Контекст | Глобальная переменная, Сеанс | ||
Динамическая Переменная | Нет | ||
Разрешенные Значения | |||
Ввести | string |
Эта переменная только для чтения содержит список, содержание которого зависит от его контекста. Когда использующийся с контекстом сеанса, список содержит все GTIDs, которые принадлежат этому клиенту; когда использующийся с глобальной областью видимости, это содержит список всего GTIDs наряду с их владельцами.
Системное Имя переменной | gtid_purged
|
||
Переменный Контекст | Глобальная переменная | ||
Динамическая Переменная | Да | ||
Разрешенные Значения | |||
Ввести | string |
Набор всех транзакций, которые были очищены от двоичного журнала.
Возможно обновить значение этой переменной, но только добавляя GTIDs к уже перечисленным, и только
когда gtid_executed
сбрасывается — то есть, на новом сервере.
Издание RESET MASTER
заставляет значение этой переменной быть сброшенным к пустой строке.