Spec-Zone .ru
спецификации, руководства, описания, API
|
Релейный журнал, как двоичный журнал, состоит из ряда пронумерованных файлов, содержащих события, которые описывают изменения базы данных, и индексный файл, который содержит имена всех используемых релейных файлов журнала.
Термин "релейный файл журнала" обычно обозначает человека пронумерованный файл, содержащий события базы данных. Термин "релейный журнал" все вместе обозначает набор пронумерованных релейных файлов журнала плюс индексный файл.
Релейные файлы журнала имеют тот же самый формат как двоичные файлы журнала и могут быть считаны, используя mysqlbinlog (см. Раздел 4.6.8, "mysqlbinlog — Утилита для Обработки Двоичных Файлов журнала" ).
По умолчанию у релейных имен файла журнала есть форма
в каталоге данных, где host_name
-relay-bin.nnnnnn
host_name
имя ведомого узла сервера и nnnnnn
порядковый номер. Последовательные
релейные файлы журнала создаются, используя последовательные порядковые номера, начинаясь 000001
.
Ведомое устройство использует индексный файл, чтобы отследить релейные использующиеся в настоящее время файлы
журнала. Имя индексного файла журнала реле значения по умолчанию
в каталоге данных. host_name
-relay-bin.index
Файл журнала реле значения по умолчанию и имена индексного файла журнала реле могут быть переопределены с,
соответственно, --relay-log
и --relay-log-index
параметры сервера (см. Раздел
16.1.4, "Репликация и Двоичные Опции Журналирования и Переменные").
Если ведомое устройство использует значение по умолчанию основанные на узле релейные имена файла журнала,
изменяя имя хоста ведомого устройства после того, как репликация была установлена, может заставить репликацию
перестать работать с ошибками, Отказавшими, чтобы открыть релейный журнал, и
не Мог найти целевой журнал во время релейной инициализации журнала. Это -
известная проблема (см. Ошибку #2122). Если Вы ожидаете, что имя хоста ведомого устройства могло бы измениться в
будущем (например, если сети устанавливаются на ведомом устройстве так, что, его имя хоста может быть изменено,
используя DHCP), можно избежать этой проблемы полностью при использовании --relay-log
и --relay-log-index
опции, чтобы определить релейный файл журнала называют явно,
когда Вы первоначально устанавливаете ведомое устройство. Это сделает имена независимыми от изменений имени
хоста сервера.
Если Вы встречаетесь с проблемой после того, как репликация уже началась, один способ работать вокруг этого состоит в том, чтобы остановить ведомый сервер, предварительно ожидать содержание старого релейного индексного файла журнала к новому, и затем перезапустить ведомое устройство. На системе Unix это может быть сделано как показано здесь:
shell>cat
shell>new_relay_log_name
.index >>old_relay_log_name
.indexmv
old_relay_log_name
.indexnew_relay_log_name
.index
Ведомый сервер создает новый релейный файл журнала при следующих условиях:
Каждый раз поток ввода-вывода запускается.
Когда журналы сбрасываются; например, с FLUSH LOGS
или журналы сброса mysqladmin.
Когда размер текущего релейного файла журнала становится "слишком большим," определил следующим образом:
Если значение max_relay_log_size
больше чем 0, который является
максимальным релейным размером файла журнала.
Если значение max_relay_log_size
0, max_binlog_size
определяет максимальный релейный размер файла
журнала.
Поток SQL автоматически удаляет каждый релейный файл журнала, как только это выполнило все события в файле и
больше не нуждается в этом. Нет никакого явного механизма для того, чтобы удалить релейные журналы, потому что
поток SQL заботится о выполнении так. Однако, FLUSH
LOGS
поворачивает релейные журналы, который влияет, когда поток SQL удаляет их.