|
Нет бы взять у меня готовую, точно описанного вида :) |
Какую например? Streams пробовал, фигня редкая, на нестабильных каналах не работает вообще.
|
Хреново. Когда едет изменение - ехать должно изменение (то есть только новое значение измененного поля). Соответственно, если на одном сервере поменяли одно поле записи, на сервере Б - другое, никакого конфликта не будет, спокойно пройдут оба изменения.
Ситуация, когда одно и то же поле меняют на двух серверах, редка по бизнесу. Решать ее можно двумя путями. Во-первых, посылая дополнительно старое значение поля, или какой-нибудь "номер версии" - в общем, нечто, что убедит: запись модифицируется именно в том виде, в каком она лежала на исходном сервере. Но в моей практике - удавалось обойтись без этого, придумывая некоторое бизнес-правило и делая поддерживающие его триггера (например, разрешение менять записи только в определенном состоянии).
|
Как раз таки едут ТОЛЬКО изменения. Но есть такие поля, которые изменяются автоматически и всегда (дата редакции, юзер, который эту редакцию провел, и т.д.)
|
В топку. Решалось очень просто: на удаленных серверах не вставлялась "одинаковая запись". Вместо этого на них создавалось "задание" вставить запись. Задание реплицировалось на центральный сервер и там исполнялось. Соответственно, одно из заданий падало с ошибкой, дублей в БД не возникало.
|
ПРоблемы в разруливании конфликта одиночной таблицы нет. ПРоблема, если он возникает в нескольких связанных по Foreign Key таблицах.
|
А чем не устроила Advanced Replication? Там все это прописано и реализовано.
|
Хотя бы тем, что так и не удалось ее испытать. Все МАНы которые я видел описывают настройку через ГУИ Enterprise Managerа. У меня Ora10g, и чтоб настроить этот Advanced Replication скриптами я никакой доки не нашел.
Буду благодарен за какую либо помощь в этом деле. И еще - нормально ли оно работает в случае, если канал пролежит 2 дня? Вроде как говорили, что есть с этим проблемы
автор |
В мануале многабукф, да и традиции шапкозакидательства никто не отменял... |
Ваш ответ, сЭЭр, несомненно, очень ценный, и он здорово мне помог!
З.Ы. Нечего написать по теме - не пиши. Срать иди или на www.udaff.com или на http://lleo.aha.ru/na/ автор |
Весь мануал читать не обязательно. А дублирование встроенных решений - это даже не смешно. В АР есть 3 вида репликации мультимастер, снапшот и комбинированный... Все построено на отложенных транзакциях... Юзаю уже лет 9 - все логично, все работает...
|
Снапшот не устраивает 100%. А можно ли реализовать такую схему:
Сервер 1<----> Центральный сервер <-----> Сервер 2
|
Сервер 3
Т.е. сервер 1, 2, 3 не знают друг о друге и передают информацию только на центральный сервер, а уж центральный раздает всем.
Проблема в том, что серверов планируется много, и связь с некоторыми - по каналам с ограничением по трафику (ну нету другой возможности, кроме как оптику кидать). ПОэтому пересылать данные вместо 1 сервера на 5 - в 5 раз увеличение трафика. А данных ходит много.