Это - то, как Вы сделали бы это с ре:
import re
p = re.compile('^hello, re.I)
p.match('Hello')
p.match('hello')
p.match('HELLO')
Репликация с несколькими ведущими (ведомое устройство с более чем одним ведущим устройством) не поддерживается MySQL (кроме MySQL Cluster). Вы можете выполнить репликацию мастер-мастер циклической (кольцевой) репликации (описанной здесь или здесь ).
В High performance MySQL 2nd edition авторы описывают способ эмуляции репликации с несколькими мастерами с использованием умной комбинации репликации мастер-мастер и механизма хранения Blackhole
(Глава 8 Репликация > Топологии репликации> Решения для пользовательской репликации> Эмуляция многомастерной репликации стр. 373 - 375 ).
Они показывают две возможные топологии:
Использование двух совместных мастеров (позволяющих переключать мастер подчиненного устройства от главного устройства 1 к главного устройства 2 )
Blackhole
, так что данные не сохраняются эффективно на Master 1 . Blackhole
, поэтому данные не будут эффективно храниться на Master 2 Использование главной цепи
Blackhole
, поэтому данные не будут эффективно храниться на Master 2 Обратите внимание, что эта настройка позволяет отправлять обновления только с DB1 через Master 1 и обновления с DB2 на Master 2 . Вы не можете отправлять обновления ни в одну из таблиц произвольным мастерам.
Возможно, можно объединить описанное решение с хаком для настоящей репликации мастер-мастер (позволяющей обновлять оба мастера), которая использует своего рода автоинкремент-манипуляцию и описана здесь или здесь .
Возможно объединить описанное решение с хаком для истинной репликации мастер-мастер (позволяющей обновления для обоих мастеров), которая использует своего рода автоинкрементное изменение и описана здесь или здесь . Возможно объединить описанное решение с хаком для истинной репликации мастер-мастер (позволяющей обновления для обоих мастеров), которая использует своего рода автоинкрементное изменение и описана здесь или здесь .Я мало знаю о MySQL, но разве у вас нет возможности установить конфигурацию репликации «только загрузка», в которой роль мастера / издателя заключается только в сборе обновлений сделано на уровне ведомого / подписчика.
Насколько мне известно, никуда не годится.
Однако, если здесь требуется просто наличие одной резервной машины на основе репликации, вы можете легко запустить три сервера MySQL (на разные адреса и / или порты) - мы делаем это здесь с двумя кольцами репликации, каждое из которых включает в себя наш внутренний промежуточный сервер в качестве узла.
Оригинальная идея, если вы действительно хотите, чтобы все данные помещались на один сервер, а схемы таблиц были либо фиксированными, либо в значительной степени статичными и находились под вашим контролем: настройте один сервер с тремя включенными базами данных и свяжите все таблицы, используя механизм объединения. Теоретически (большое предостережение: я никогда не пробовал!), Вы можете затем реплицировать эти объединенные таблицы на второй сервер (опять же, возможно, на той же машине), давая вам настоящие живые копии данных на одном MySQL пример. Вы даже можете попробовать повторить репликацию еще раз, но это, возможно, безумие :)
Теоретически (большое предостережение: я никогда не пробовал!), Вы можете затем реплицировать эти объединенные таблицы на второй сервер (опять же, возможно, на той же машине), давая вам настоящие живые копии данных на одном MySQL пример. Вы даже можете попробовать повторить репликацию еще раз, но это, возможно, безумие :) Теоретически (большое предостережение: я никогда не пробовал!), Вы можете затем реплицировать эти объединенные таблицы на второй сервер (опять же, возможно, на том же компьютере), давая вам настоящие живые копии данных на одном MySQL пример. Вы даже можете попробовать повторить репликацию еще раз, но это, возможно, безумие :)Might be worth a look at maatkit's table sync -- it's not "real" replication but it might be good enough.