MS SQL Replication
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
-
- Житель
- Сообщения: 915
- Зарегистрирован: 09 мар 2003, 22:46
MS SQL Replication
Есть ли возможность создать репликацию между двумя идентичными базами чтобы изменения в любой из баз моментально или достаточно оперативно отражались на другой.
Насколько я понимаю механизм Publisher / Subscriber работает только в одну сторону и база на стороне Subscriber просто обновляется согласно replication правилам и похоже даже не может быть изменена.
Сам механизм кажется очень хрупким, савливается время от времени и приходится перестартовывать все по новой, генерировать новый snapshot и pull subscription.
Насколько я понимаю механизм Publisher / Subscriber работает только в одну сторону и база на стороне Subscriber просто обновляется согласно replication правилам и похоже даже не может быть изменена.
Сам механизм кажется очень хрупким, савливается время от времени и приходится перестартовывать все по новой, генерировать новый snapshot и pull subscription.
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Дык вроде в хелпе написано, что Subscriber может попросить Publisher через дистрибьютера опубликовать изменения для других подписчиков (хотя и различным способом в зависимости от выбранной Вами модели).Насколько я понимаю механизм Publisher / Subscriber работает только в одну сторону и база на стороне Subscriber просто обновляется согласно replication правилам и похоже даже не может быть изменена.
Сам, я, к сожалению, не занимался этой задачей (для MS SQL).
Но, думаю, что Вы можете быть правы, т.к. декларации M$ не всегда совпадают с реалиями. Касаемо различных служб репликации в W2k можно сказать только одно - устойчиво работает только репликация баз AD, глобального каталога, DNS на контроллерах домена, ну и может быть лицензсервайсы (хотя последнее - несколько более горбато), имхо. Репликация в DFS - вообще угрёбистость (по существу совпадает с Вашими подозреними в части однонаправленности в MSSQL - всё только от мастера к слейв репликам). Может и в MSSQL они не далеко ушли по существу.
По-существу.
1) Как видно из хелпа (хотя это видно и так) выбор модели репликации сильно зависит от клиентской проги. Посмотрите внимательно, что у клиентов? Если там прога от Access или писанная на Delphi, BCB++ (с использованием компонент TDBxxx) - то скорее всего работать не будет. Это потому, что сии "технологии" требуют постоянных или длительных соединений. Если нет уверенно, что будет у клиентов - мож вообще бросить затею, и искать более деревянные способы?
2) Посмотрите, как сделано в оракле. M$ не сможет сделать лучше по определению. И если там это не работает, то в M$ - тем более. В Канаде спецов по ораклу, думаю, валом. Поспрашайте их. Я не знаю оракл, Но то, что оракл включает реализацию паттерна "паблишер - сабскрайбер" - это точно.
ПС.
1) Извините за мои бестолковые советы. Это просто размышления вслух.
2) Завидую Вам. Можете заниматься интересным делом. Эх ...
- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
-
- Житель
- Сообщения: 915
- Зарегистрирован: 09 мар 2003, 22:46
-
- Пользователь
- Сообщения: 113
- Зарегистрирован: 24 сен 2003, 21:52
[trn]Ja zanimajus' R i eshe segodnja poproboval Log Shipping.ura писал(а):Спасибо за ответы, бум ковыряться...
Samodel'nyj t.k Netu Enterrprajz Edishn. Cherez dzhoby.
Ja delaju s cel'ju Haj Avajlabiliti.
Tak vot Log Shipping mne bol'she ponravilsja.
Odin nedostatok. Ne mozhet byt' real time. Ja zapuskajy tranz log backup raz v 10 min.
S R eshe problema. Ona dobavljaet sluzhebnyj stolb v tablicu.[/trn]
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Просто интересно....ura:
Спасибо за ответы, бум ковыряться...
Я занимаюсь Р и еше сегодня попробовал Лог Шиппинг.
Самодельный т.к Нету Ентеррпрайз Едишн. Через джобы.
Я делаю с целью Хай Авайлабилити.
Так вот Лог Шиппинг мне больше понравился.
Один недостаток. Не может быть реал тиме. Я запускайы транз лог бацкуп раз в 10 мин.
С Р еше проблема. Она добавляет служебный столб в таблицу.
Если я правлильно тебя понял, и если ты занимаешься "в рукопашную" "репликацией", то после обработки транзакции на неком а-ля "db-мастере" ты ставишь в "служебном поле" (пусть IsUpdated) таблиц, например, 1 ( 2, ...). Далее при помощи джобов ты обрабатываешь, например, view (select ... from ... where IsUpdated = 1) и обновляешь данные в "реплике", а по view (select ... from ... where IsUpdated = 2), например, вставляешь новые данные в "реплику", а по view (select ... from ... where IsUpdated = 3), например, удаляешь данные из "реплики".
Но! это эмуляция "репликации" "в одну сторону" - от мастера к слэйв-реплике. И это и так у автора топика работает. Задача-то у него гораздо круче. Согласовать транзакции по публикациям, полученных Publisher от, возможно, многих подписчиков (Subscribers). Если даже автор топика "загрубится" до такого функционала, то думаю, всё равно следует использовать встроенную репликацию, а не самопальную. Почему? Когда сам мастеришь - больше ошибок.
ПС. Марк, не ругайся на меня. Твой подход нормальный. Просто я в репликации, как свинья в апельсинах и мандаринах.

-
- Маньяк
- Сообщения: 2841
- Зарегистрирован: 20 фев 2003, 09:15
- Откуда: Vancouver
Re: MS SQL Replication
В Мелкомягком можно настроить режим двухсторонней репликации. Однако - не всегда это будет работать. Необходимо четко представлять что происходит и как разрешать конфликты при репликации. Читаю книжку там все наисано. Односторонняя репликация работает хорошо, ежели слово хорошо ваще можнор применсять к продукции дяди Билли.ura писал(а):Есть ли возможность создать репликацию между двумя идентичными базами чтобы изменения в любой из баз моментально или достаточно оперативно отражались на другой.
Насколько я понимаю механизм Publisher / Subscriber работает только в одну сторону и база на стороне Subscriber просто обновляется согласно replication правилам и похоже даже не может быть изменена.
Сам механизм кажется очень хрупким, савливается время от времени и приходится перестартовывать все по новой, генерировать новый snapshot и pull subscription.
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Автор топика и без тебя это, как видно знает.В Мелкомягком можно настроить режим двухсторонней репликации.

И об этом он пишет.Однако - не всегда это будет работать.

Так и об этом в нитке сказано.Необходимо четко представлять что происходит и как разрешать конфликты при репликации.

Читать надо внимательно не книжку, а постингиЧитаю книжку там все наисано. Односторонняя репликация работает хорошо, ежели слово хорошо ваще можнор применсять к продукции дяди Билли.

-
- Пользователь
- Сообщения: 113
- Зарегистрирован: 24 сен 2003, 21:52
Нет. У меня два "потока". 1. Репликация. 2. Стэндбай.vg писал(а): Я про Лог Шиппинг говорил. Это не Репликация. Это то чтов Оракле называется Stand By.
Просто интересно....
Если я правлильно тебя понял, и если ты занимаешься "в рукопашную" "репликацией",
Репликация не руками. Стендбай рукопашный.
Примерно так. Но не я. Билли сделал уже все.vg писал(а): то после обработки транзакции на неком а-ля "db-мастере" ты ставишь в "служебном поле" (пусть IsUpdated) таблиц, например, 1 ( 2, ...
Не спорю. Все верно.vg писал(а): Но! это эмуляция "репликации" "в одну сторону" - от мастера к слэйв-реплике. И это и так у автора топика работает. Задача-то у него гораздо круче. Согласовать транзакции по публикациям, полученных Publisher от, возможно, многих подписчиков (Subscribers). Если даже автор топика "загрубится" до такого функционала, то думаю, всё равно следует использовать встроенную репликацию, а не самопальную. Почему? Когда сам мастеришь - больше ошибок.
Автор трэда может конкретно подсесть на коллизиях. Когда одну и ту же строку пытаются менять(удалять) с разных сторон. Такие вещи надо обрабатывать. Универсальных правил нет. Все сильно зависит от бизнес логики.
Там Вовчик все правильно написал. Зря ты на него наехал.
Я оч. глубоко поработал с оракловой Адвансд Р.vg писал(а): ПС. Марк, не ругайся на меня. Твой подход нормальный. Просто я в репликации, как свинья в апельсинах и мандаринах.
С МСовской только вчера начал %).
А сегодня на МС сделал стэндбай (рукопашный Лог Шиппинг). Работает вроде.
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
-
- Маньяк
- Сообщения: 2841
- Зарегистрирован: 20 фев 2003, 09:15
- Откуда: Vancouver
Братан - с таким гонором тебе в Канаде светит тока вэлфер. Луше б ты дома продолжал строил, в натуре, в солнечном Магадане, поход в Канаду для тебя выйдет в залет на бабки. Я таких пацанов дофига повидал, как пальцы гнуть так они ребята мастаки, тока почеиу то тока булочки пекут. Тама вона в канада.ру вагон таких непризнанных гениев которые за 7.50 в час ночью в русской пекарне впахивают. Ты канешна срал но мое менение но это дело такое я тута уже скора как 6 лет тусуюсь, уже технический архитектор в канкретной корпорации жизнь узнал, таких пацанов как ты за багелями гоняю так что дело такое...vg писал(а):Автор топика и без тебя это, как видно знает.В Мелкомягком можно настроить режим двухсторонней репликации.![]()
И об этом он пишет.Однако - не всегда это будет работать.![]()
Так и об этом в нитке сказано.Необходимо четко представлять что происходит и как разрешать конфликты при репликации.![]()
Читать надо внимательно не книжку, а постингиЧитаю книжку там все наисано. Односторонняя репликация работает хорошо, ежели слово хорошо ваще можнор применсять к продукции дяди Билли.
- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
-
- Маньяк
- Сообщения: 2841
- Зарегистрирован: 20 фев 2003, 09:15
- Откуда: Vancouver
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага