Spec-Zone .ru
спецификации, руководства, описания, API

16.2.3.3. Приложение Правила репликации

Этот раздел обеспечивает дополнительное объяснение и примеры использования для различных комбинаций опций фильтрации репликации.

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

Условие (Типы Опций) Результат
Нет --replicate-* опции вообще: Ведомое устройство выполняет все события, которые оно получает от ведущего устройства.
--replicate-*-db опции, но никакие табличные опции: Ведомое устройство принимает или игнорирует события, используя параметры базы данных. Это выполняет все события, разрешенные теми опциями, потому что нет никаких табличных ограничений.
--replicate-*-table опции, но никакие параметры базы данных: Все события принимаются на проверяющем базу данных этапе, потому что нет никаких условий базы данных. Ведомое устройство выполняет или игнорирует события, базируемые исключительно на табличных опциях.
Комбинация базы данных и табличных опций: Ведомое устройство принимает или игнорирует события, используя параметры базы данных. Затем это оценивает все события, разрешенные теми опциями согласно табличным опциям. Это может иногда приводить к результатам, которые кажутся парадоксальными, и это может отличаться в зависимости от того, используете ли Вы основанную на операторе или построчную репликацию; см. textfor пример.

Более сложный пример следует, в котором мы исследуем результаты и на основанные на операторе и на основанные на строке настройки.

Предположите, что у нас есть две таблицы mytbl1 в базе данных db1 и mytbl2 в базе данных db2 на ведущем устройстве, и ведомом устройстве работает со следующими опциями (и никакими другими опциями фильтрации репликации):

replicate-ignore-db = db1replicate-do-table  = db2.tbl2

Теперь мы выполняем следующие операторы на ведущем устройстве:

USE db1;INSERT INTO db2.tbl2 VALUES (1);

Результаты на ведомом устройстве изменяются значительно в зависимости от двоичного формата журнала, и, возможно, не соответствуют начальные ожидания в любом случае.

Основанная на операторе репликация. USE причины оператора db1 быть базой данных значения по умолчанию. Таким образом --replicate-ignore-db соответствия опции, и INSERT оператор игнорируется. Табличные опции не проверяются.

Построчная репликация. База данных значения по умолчанию не имеет никакого эффекта на то, как ведомое устройство читает параметры базы данных при использовании построчной репликации. Таким образом, USE оператор не имеет никакого значения в как --replicate-ignore-db опция обрабатывается: база данных, определенная этой опцией, не соответствует базу данных где INSERT данные изменений оператора, таким образом, ведомое устройство продолжается, чтобы проверить табличные опции. Таблица, определенная --replicate-do-table соответствует таблицу, которая будет обновлена, и строка вставляется.