Spec-Zone.ru › MySQL 5.7

16.2.5.1 Оценка параметров репликации на уровне базы данных и двоичного журналирования

При оценке параметров репликации реплика начинает с проверки наличия параметров --replicate-do-db или --replicate-ignore-db. При использовании --binlog-do-db или --binlog-ignore-db процесс аналогичен, но параметры проверяются на источнике.

База данных, проверяемая на соответствие, зависит от формата двоичного журнала инструкции, обрабатываемой в данный момент. Если инструкция была записана в формате строк, проверяется база данных, в которой данные должны быть изменены. Если инструкция была записана в формате инструкций, проверяется базовая база данных (указанная с помощью инструкции USE).

Примечание

Только инструкции DML могут быть записаны в формате строк. Инструкции DDL всегда записываются в формате инструкций, даже если binlog_format=ROW. Поэтому все инструкции DDL всегда фильтруются в соответствии с правилами репликации на основе инструкций. Это означает, что для применения инструкции DDL необходимо явно выбрать базу данных по умолчанию с помощью инструкции USE.

Для репликации этапы перечислены ниже:

  1. Какой формат журналирования используется?

    • ИНСТРУКЦИЯ. Проверить базу данных по умолчанию.

    • СТРОКА. Проверить базу данных, затронутую изменениями.

  2. Есть ли какие-либо параметры --replicate-do-db?

    • Да. Соответствует ли база данных одному из них?

      • Да. Перейти к шагу 4.

      • Нет. Пропустить обновление и выйти.

    • Нет. Перейти к шагу 3.

  3. Есть ли какие-либо параметры --replicate-ignore-db?

    • Да. Соответствует ли база данных одному из них?

      • Да. Пропустить обновление и выйти.

      • Нет. Перейти к шагу 4.

    • Нет. Перейти к шагу 4.

  4. Перейти к проверке параметров репликации на уровне таблиц, если они есть. Подробное описание проверки этих параметров см. в разделе 16.2.5.2 «Оценка параметров репликации на уровне таблиц».

    Важно

    Инструкция, которая по-прежнему разрешена на данном этапе, еще не выполняется. Выполнение инструкции происходит только после проверки всех параметров на уровне таблиц (если таковые имеются) и результата этого процесса, который разрешает выполнение инструкции.

Для двоичного журналирования этапы перечислены ниже:

  1. Есть ли какие-либо параметры --binlog-do-db или --binlog-ignore-db?

    • Да. Перейти к шагу 2.

    • Нет. Записать инструкцию и выйти.

  2. Есть ли базовая база данных (была ли выбрана какая-либо база данных с помощью USE)?

    • Да. Перейти к шагу 3.

    • Нет. Пропустить инструкцию и выйти.

  3. Базовая база данных существует. Есть ли какие-либо параметры --binlog-do-db?

    • Да. Соответствует ли какой-либо из них базе данных?

      • Да. Записать инструкцию и выйти.

      • Нет. Пропустить инструкцию и выйти.

    • Нет. Перейти к шагу 4.

  4. Соответствуют ли какие-либо параметры --binlog-ignore-db базе данных?

    • Да. Пропустить инструкцию и выйти.

    • Нет. Записать инструкцию и выйти.

Важно

Для журналирования на основе инструкций есть исключение из приведенных выше правил для инструкций CREATE DATABASE, ALTER DATABASE и DROP DATABASE. В этих случаях база данных, которая создается, изменяется или удаляется, заменяет базу данных по умолчанию при определении, нужно ли записывать или игнорировать обновления.

--binlog-do-db иногда может означать “игнорировать другие базы данных”. Например, при использовании журналирования на основе инструкций сервер, работающий только с --binlog-do-db=sales, не записывает в двоичный журнал инструкции, для которых базовая база данных отличается от sales. При использовании журналирования на основе строк с тем же параметром сервер записывает только те обновления, которые изменяют данные в sales.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/replication-rules-db-options.html

Spec-Zone.ru

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