|
|
|
| Добрый день.
Существует примерно такая схема:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _
| | | |
| master | -----------------> | slave1 |
| | | |
|_ _ _ _ _ _| |_ _ _ _ _ __|
/ \
/ \
/ \
/ \
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _
| | | |
| slave2 | | slave3 |
| | | |
|_ _ _ _ _ _ | |_ _ _ _ _ _ |
|
На всех серверах mysql 4 ветки. Между master & slave1 репликация master-slave. Причем slave1 реплицирует все, за исключением одной таблички(сильно тяжелая). На slave1 идут исключительно select запросы, никаких insert'ов нет.
Slave2 & slave3 реплицируют всего несколько табличек, в отличии от slave1. Но, в slave2 & slave3 идут insert'ы.
В master приходит основной поток insert'ов.
В резуьтате того, что в slave2&slave3 приходят некоторые insert'ы, ломаются master-slave репликация между master и slave2&slave3.
(В результате того, что slave2 и slave3 имеют на некоторых таблицах различные autoicrement_value, и при реплицированиии с master, может возникнуть ситуация duplicate entry).
Что хочется получить:
1. Идеальный вариант: наличие master-master репликация нескольких табличек между slave2&slave3 - master
2. Достаточный вариант: работа master-slave репликации между slave2&slave3 - master
Насколько я понимаю, достаточный вариант можно получить, проапргрейдив все сервера до 5 версии и выставив определленые значения autoincrement_increment и autoincrement_offset на slave2, slave3 и master.
Существуют ли какие-либо другие способы решения? Может быть стоит перейти к какой-то другой схеме репликации?
Так же, не будет ли возникать проблемы, в случае master-master репликации между slave2&slave3 - master, поскольку на slave2&slave3 находится только несколько табличек, а в master их гораздо больше(если указывать replicate-do-table - то не будет ли slave1 реплицировать только эти таблички. В конфиге my.cnf slave1 прописано какие таблицы игнорировать).
Чтобы не быть голословным - slave1 и slave2 - базы хранилище для dns-системы. slave1 - реплика, которая создана для уменьшения нагрузки master и используется только для большого количества select запросов. Убрать из схемы slave2 и slave3 - нельзя. | |
|
|
|
|
|
|
|
для: ubique
(14.05.2009 в 15:05)
| | Проблему решили, путем использования составного ключа в таблице. | |
|
|
|