Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток!
У нас есть 2 программы, которые льют данные каждая в свою локальную базу. На этих 2-х базах настроена двусторонняя репликация. Всё было хорошо, пока работала только одна из этих 2-х программ. Как только начала работать вторая, она тоже начала помещать данные в свою базу, и начались проблемы.
Дело в том, что в таблице используется поле id со свойством auto_increment. И получается, что на одной базе сделалась запись с определённым ID, и на второй тоже сделалась запись с этим же ID, и при первой же попытке это дело среплицировать получаем ошибку Dublicate entry.
Я так думаю, что если бы при репликации slave-базе не пытались запихнуть именно тот номер id, который был создан на Master-базе, то проблемы бы не было. Можно ли это как-то сделать? Или может есть другие методы решения проблемы?
Заранее спасибо.
Неактивен
Насколько я понимаю, баз таки не две, а одна
Конкретно проблема с auto_increment решается выставлением двух переменных
--auto-increment-increment=2
--auto-increment-offset
Вторую нужно поставить на одном сервере в двойку, а на втором оставить единицей. Тогда значения
будут одним сервером создаваться четные, а другим — нечетные. Впрочем, это не избавит Вас от всех
проблем двусторонней репликации (например, одновременное заведение одинаковых текстовых значений
на разных серверах при уникальном ключе).
Неактивен
К счастью, больше уникальных ключей нет. Большое спасибо, попробуем
Неактивен