Страница 1 из 1
MS SQL Replication
Добавлено: 27 янв 2004, 11:50
ura
Есть ли возможность создать репликацию между двумя идентичными базами чтобы изменения в любой из баз моментально или достаточно оперативно отражались на другой.
Насколько я понимаю механизм Publisher / Subscriber работает только в одну сторону и база на стороне Subscriber просто обновляется согласно replication правилам и похоже даже не может быть изменена.
Сам механизм кажется очень хрупким, савливается время от времени и приходится перестартовывать все по новой, генерировать новый snapshot и pull subscription.
Добавлено: 28 янв 2004, 16:23
vg
Насколько я понимаю механизм Publisher / Subscriber работает только в одну сторону и база на стороне Subscriber просто обновляется согласно replication правилам и похоже даже не может быть изменена.
Дык вроде в хелпе написано, что Subscriber может попросить Publisher через дистрибьютера опубликовать изменения для других подписчиков (хотя и различным способом в зависимости от выбранной Вами модели).
Сам, я, к сожалению, не занимался этой задачей (для MS SQL).
Но, думаю, что Вы можете быть правы, т.к. декларации M$ не всегда совпадают с реалиями. Касаемо различных служб репликации в W2k можно сказать только одно - устойчиво работает только репликация баз AD, глобального каталога, DNS на контроллерах домена, ну и может быть лицензсервайсы (хотя последнее - несколько более горбато), имхо. Репликация в DFS - вообще угрёбистость (по существу совпадает с Вашими подозреними в части однонаправленности в MSSQL - всё только от мастера к слейв репликам). Может и в MSSQL они не далеко ушли по существу.
По-существу.
1) Как видно из хелпа (хотя это видно и так) выбор модели репликации сильно зависит от клиентской проги. Посмотрите внимательно, что у клиентов? Если там прога от Access или писанная на Delphi, BCB++ (с использованием компонент TDBxxx) - то скорее всего работать не будет. Это потому, что сии "технологии" требуют постоянных или длительных соединений. Если нет уверенно, что будет у клиентов - мож вообще бросить затею, и искать более деревянные способы?
2) Посмотрите, как сделано в оракле. M$ не сможет сделать лучше по определению. И если там это не работает, то в M$ - тем более. В Канаде спецов по ораклу, думаю, валом. Поспрашайте их. Я не знаю оракл, Но то, что оракл включает реализацию паттерна "паблишер - сабскрайбер" - это точно.
ПС.
1) Извините за мои бестолковые советы. Это просто размышления вслух.
2) Завидую Вам. Можете заниматься интересным делом. Эх ...
Добавлено: 28 янв 2004, 16:53
папа Карло
рекомендую спросить на скл.ру.... там есть пара кентов толковых в реплицации.... я хоть и подсел на скл сервер в его репликации как свинья в апельсинах

Добавлено: 28 янв 2004, 18:46
ura
Спасибо за ответы, бум ковыряться...
Добавлено: 29 янв 2004, 11:54
MarkM
ura писал(а):Спасибо за ответы, бум ковыряться...
[trn]Ja zanimajus' R i eshe segodnja poproboval Log Shipping.
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]
Добавлено: 29 янв 2004, 14:16
vg
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). Если даже автор топика "загрубится" до такого функционала, то думаю, всё равно следует использовать встроенную репликацию, а не самопальную. Почему? Когда сам мастеришь - больше ошибок.
ПС. Марк, не ругайся на меня. Твой подход нормальный. Просто я в репликации, как свинья в апельсинах и мандаринах.

Re: MS SQL Replication
Добавлено: 29 янв 2004, 14:43
Vovchik
ura писал(а):Есть ли возможность создать репликацию между двумя идентичными базами чтобы изменения в любой из баз моментально или достаточно оперативно отражались на другой.
Насколько я понимаю механизм Publisher / Subscriber работает только в одну сторону и база на стороне Subscriber просто обновляется согласно replication правилам и похоже даже не может быть изменена.
Сам механизм кажется очень хрупким, савливается время от времени и приходится перестартовывать все по новой, генерировать новый snapshot и pull subscription.
В Мелкомягком можно настроить режим двухсторонней репликации. Однако - не всегда это будет работать. Необходимо четко представлять что происходит и как разрешать конфликты при репликации. Читаю книжку там все наисано. Односторонняя репликация работает хорошо, ежели слово хорошо ваще можнор применсять к продукции дяди Билли.
Добавлено: 29 янв 2004, 15:52
vg
В Мелкомягком можно настроить режим двухсторонней репликации.
Автор топика и без тебя это, как видно знает.
Однако - не всегда это будет работать.
И об этом он пишет.
Необходимо четко представлять что происходит и как разрешать конфликты при репликации.
Так и об этом в нитке сказано.
Читаю книжку там все наисано. Односторонняя репликация работает хорошо, ежели слово хорошо ваще можнор применсять к продукции дяди Билли.
Читать надо внимательно не книжку, а постинги

Добавлено: 29 янв 2004, 21:36
MarkM
vg писал(а):
Я про Лог Шиппинг говорил. Это не Репликация. Это то чтов Оракле называется Stand By.
Просто интересно....
Если я правлильно тебя понял, и если ты занимаешься "в рукопашную" "репликацией",
Нет. У меня два "потока". 1. Репликация. 2. Стэндбай.
Репликация не руками. Стендбай рукопашный.
vg писал(а):
то после обработки транзакции на неком а-ля "db-мастере" ты ставишь в "служебном поле" (пусть IsUpdated) таблиц, например, 1 ( 2, ...
Примерно так. Но не я. Билли сделал уже все.
vg писал(а):
Но! это эмуляция "репликации" "в одну сторону" - от мастера к слэйв-реплике. И это и так у автора топика работает. Задача-то у него гораздо круче. Согласовать транзакции по публикациям, полученных Publisher от, возможно, многих подписчиков (Subscribers). Если даже автор топика "загрубится" до такого функционала, то думаю, всё равно следует использовать встроенную репликацию, а не самопальную. Почему? Когда сам мастеришь - больше ошибок.
Не спорю. Все верно.
Автор трэда может конкретно подсесть на коллизиях. Когда одну и ту же строку пытаются менять(удалять) с разных сторон. Такие вещи надо обрабатывать. Универсальных правил нет. Все сильно зависит от бизнес логики.
Там Вовчик все правильно написал. Зря ты на него наехал.
vg писал(а):
ПС. Марк, не ругайся на меня. Твой подход нормальный. Просто я в репликации, как свинья в апельсинах и мандаринах.

Я оч. глубоко поработал с оракловой Адвансд Р.
С МСовской только вчера начал %).
А сегодня на МС сделал стэндбай (рукопашный Лог Шиппинг). Работает вроде.
Добавлено: 29 янв 2004, 23:01
vg
Там Вовчик все правильно написал. Зря ты на него наехал.
Я не наезжал. Он просто повторил на другой лад, что было сказано другими.
Автор трэда может конкретно подсесть на коллизиях.
Эт точно...
Все сильно зависит от бизнес логики.
И это тоже. И от качества клиентского ПО тоже.
Добавлено: 30 янв 2004, 08:12
Vovchik
vg писал(а):В Мелкомягком можно настроить режим двухсторонней репликации.
Автор топика и без тебя это, как видно знает.
Однако - не всегда это будет работать.
И об этом он пишет.
Необходимо четко представлять что происходит и как разрешать конфликты при репликации.
Так и об этом в нитке сказано.
Читаю книжку там все наисано. Односторонняя репликация работает хорошо, ежели слово хорошо ваще можнор применсять к продукции дяди Билли.
Читать надо внимательно не книжку, а постинги

Братан - с таким гонором тебе в Канаде светит тока вэлфер. Луше б ты дома продолжал строил, в натуре, в солнечном Магадане, поход в Канаду для тебя выйдет в залет на бабки. Я таких пацанов дофига повидал, как пальцы гнуть так они ребята мастаки, тока почеиу то тока булочки пекут. Тама вона в канада.ру вагон таких непризнанных гениев которые за 7.50 в час ночью в русской пекарне впахивают. Ты канешна срал но мое менение но это дело такое я тута уже скора как 6 лет тусуюсь, уже технический архитектор в канкретной корпорации жизнь узнал, таких пацанов как ты за багелями гоняю так что дело такое...
Добавлено: 30 янв 2004, 09:29
папа Карло
без наездов

Добавлено: 30 янв 2004, 09:53
Vovchik
папа Карло писал(а):без наездов

Я чту уголовный кодекс. Я типа так, в порядке развеяния иллюзий.
Добавлено: 30 янв 2004, 15:56
vg
2 Володя,
Я типа так, в порядке развеяния иллюзий.
Ну, за развеяние иллюзий спасибо.
ПС. Чё такой нервный? Ты обиженый? Так я тебя не обижал
