Spec-Zone.ru › MySQL 9.2

19.2.5 Как серверы оценивают правила фильтрации репликации

  • 19.2.5.1 Оценка параметров репликации базы данных и логирования двоичных данных
  • 19.2.5.2 Оценка параметров репликации на уровне таблиц
  • 19.2.5.3 Взаимодействие параметров фильтрации репликации
  • 19.2.5.4 Фильтры репликации, основанные на каналах

Если сервер-источник репликации не записывает оператор в свой двоичный журнал, оператор не реплицируется. Если сервер записывает оператор, он отправляется всем репликам, и каждая реплика определяет, выполнить его или проигнорировать.

На источнике вы можете управлять тем, для каких баз данных регистрировать изменения, используя параметры --binlog-do-db и --binlog-ignore-db для управления логированием двоичных данных. Подробное описание правил, используемых серверами при оценке этих параметров, см. в разделе 19.2.5.1 «Оценка параметров репликации базы данных и логирования двоичных данных». Не следует использовать эти параметры для управления тем, какие базы данных и таблицы реплицируются. Вместо этого используйте фильтрацию на реплике для управления событиями, выполняемыми на реплике.

На стороне реплики решения о выполнении или игнорировании операторов, полученных от источника, принимаются в соответствии с параметрами --replicate-*, с которыми была запущена реплика. (См. раздел 19.1.6 «Параметры и переменные репликации и двоичного логирования».) Фильтры, регулируемые этими параметрами, также могут быть установлены динамически с помощью оператора CHANGE REPLICATION FILTER. Правила, управляющие такими фильтрами, одинаковы, независимо от того, созданы ли они при запуске с помощью параметров --replicate-* или во время работы сервера реплики с помощью CHANGE REPLICATION FILTER. Обратите внимание, что фильтры репликации нельзя использовать для каналов, специфичных для Group Replication, на экземпляре сервера MySQL, настроенном для Group Replication, так как фильтрация транзакций на некоторых серверах сделает группу неспособной достичь соглашения о согласованном состоянии.

В самом простом случае, когда нет параметров --replicate-*, реплика выполняет все операторы, которые она получает от источника. В противном случае результат зависит от указанных параметров.

Параметры на уровне базы данных (--replicate-do-db, --replicate-ignore-db) проверяются в первую очередь; см. раздел 19.2.5.1 «Оценка параметров репликации базы данных и логирования двоичных данных» для описания этого процесса. Если параметры на уровне базы данных не используются, проверка параметров переходит к любым параметрам на уровне таблиц, которые могут быть в использовании (см. раздел 19.2.5.2 «Оценка параметров репликации на уровне таблиц» для обсуждения этих параметров). Если используется один или несколько параметров на уровне базы данных, но ни один из них не совпадает, оператор не реплицируется.

Для операторов, влияющих только на базы данных (то есть CREATE DATABASE, DROP DATABASE и ALTER DATABASE), параметры на уровне базы данных всегда имеют приоритет над любыми параметрами --replicate-wild-do-table. Другими словами, для таких операторов параметры --replicate-wild-do-table проверяются только в том случае, если не существует параметров на уровне базы данных, которые применяются.

Для облегчения определения эффекта набора параметров рекомендуется избегать смешивания параметров do-* и ignore-*, а также параметров, содержащих подстановки, с параметрами, которые их не содержат.

Если были указаны какие-либо параметры --replicate-rewrite-db, они применяются до проверки правил фильтрации --replicate-*.

Примечание

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

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

Дополнительную информацию см. в разделе 19.5.1.30 «Ошибки реплики во время репликации».

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

Spec-Zone.ru

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