Spec-Zone.ru › MariaDB

Журнал репликации

Журнал репликации представляет собой набор журнальных файлов, созданных репликой во время репликации.

Он имеет тот же формат, что и бинарный журнал, содержащий запись о событиях, которые влияют на данные или структуру; таким образом, mariadb-binlog можно использовать для отображения его содержимого. Он состоит из набора файлов журнала репликации и файла индекса, содержащего список всех файлов журнала репликации.

События считываются из бинарного журнала первичного сервера и записываются в журнал репликации вторичного сервера. Затем они выполняются на реплике. Старые файлы журнала репликации автоматически удаляются, когда они больше не нужны.

Создание файлов журнала репликации

Новые файлы журнала репликации создаются репликой в следующие моменты:

  • при запуске потока IO
  • при сбросе журналов с помощью команды FLUSH LOGS или mariadb-admin flush-logs.
  • при достижении максимального размера, определяемого системной переменной max_relay_log_size

Имена файлов журнала репликации

По умолчанию, журналу репликации будет присвоено имя host_name-relay-bin.nnnnnn, где host_name относится к имени хоста сервера, а #nnnnnn the sequence number.

Это может вызвать проблемы, если имя хоста реплики изменится, приведя к ошибке Failed to open the relay log и Could not find target log during relay log initialization. Чтобы избежать этого, можно указать имя файла журнала репликации, задав системные переменные relay_log и relay_log_index.

Если вам необходимо решить эту проблему, когда репликация уже запущена, вы можете остановить реплику, добавить старый файл индекса журнала репликации к новому файлу индекса журнала репликации и перезапустить реплику.

Например:

shell> cat NEW_relay_log_name.index >> OLD_relay_log_name.index
shell> mv OLD_relay_log_name.index NEW_relay_log_name.index

Просмотр журналов репликации

Команда SHOW RELAYLOG EVENTS отображает события в журнале репликации, и, поскольку файлы журнала репликации имеют тот же формат, что и файлы бинарного журнала, их можно прочитать с помощью утилиты mariadb-binlog.

Удаление старых журналов репликации

Старые журналы репликации автоматически удаляются, как только все события будут реализованы на реплике, и файл журнала репликации больше не нужен. Это поведение можно изменить, изменив системную переменную relay_log_purge со значения по умолчанию 1 на 0, в этом случае журналы репликации останутся на сервере.

Журналы репликации также удаляются операцией CHANGE MASTER, если не используется опция журнала репликации.

Также можно выполнить сброс журналов с помощью команды FLUSH RELAY LOGS.

Если журналы репликации занимают слишком много места на реплике, можно установить системную переменную relay_log_space_limit для ограничения размера. Поток IO остановится, пока поток SQL не очистит очередь. По умолчанию ограничения нет.

См. также

  • FLUSH RELAY LOGS
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительной проверки MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/relay-log/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API