Гость
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Репликация. / 25 сообщений из 25, страница 1 из 1
06.11.2005, 23:00
    #33363113
AbelKasum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
<Дипломная>
<Кто чем может поможите>

Задача: По региону десятки компов, с возможно разыми РСУБД. Нужна
репликация вносимых изменений в БД. Все узлы равноправны,
т.е. репликация двух сторонняя.

Реализация:
Прога, которая:
1) (желательно) независила от РСУБД.
2) реплицировала только вносимые изменения.
3) сразу бы передовала данные или создовала очередь, а потом
передовала.

Вопрос: какие методы использовать, а главное с помошью каких программных
средств это реализовать (VS, delphi, com, dcom).
...
Рейтинг: 0 / 0
07.11.2005, 09:13
    #33363320
a40
a40
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
Дык вроде в MS SQL Server все есть уже?

Если нужно самостоятельно разработать, то уточни.
...
Рейтинг: 0 / 0
07.11.2005, 09:16
    #33363329
zirex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
Видел реализацию такого чуда :)

Описываю, то, что видел:

1. Врядли получиться полностью оторваться от РСУБД.
Изменение/Удаление/Добавление записей регистрируются триггерами, а триггер в MSSQL очень отличается от триггера в Oracle.
С клиентом чуть попроще :) Собирать клиента пришлось к ключами (define) отдельно под Oracle и MSSQL

3. Очень важный момент - "сразу бы передовала данные или создовала очередь, а потом передовала."
Если есть возможность настроить постоянный коннект, тогда самописная репликация вообще не нужна :), т.к. можно настроить прямой коннект и не извращаться. В случае с самописной репликацией нужно определелиться кто за какие данные отвечает, т.е. нельзя редактировать 1 запись сразу в нескольких местах (в разных СУБД) - сложно понять чьи изменения потом отдавать всем.
...
Рейтинг: 0 / 0
07.11.2005, 10:26
    #33363452
Calm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
Ну можно попробовать в каждой реплицируемой талице добавлять столбец, в котором хранится время последнего изменения записи. И еще столбец с признаком того, что изменение растиражировано в другие СУБД.
В этом случае можно быть более независимым от СУБД.

Понятно, что нереалистично, но ведь и задача учебная.
...
Рейтинг: 0 / 0
07.11.2005, 10:36
    #33363478
zirex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
Calm в каждой реплицируемой талице добавлять столбец, в котором хранится время последнего изменения записи.
а писать поле триггером?
...
Рейтинг: 0 / 0
07.11.2005, 12:28
    #33363757
Calm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
автора писать поле триггером?

Ну да, тоже триггер, конечно. Но чуть по-проще :)
...
Рейтинг: 0 / 0
07.11.2005, 13:06
    #33363881
zirex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
Calm автора писать поле триггером?

Ну да, тоже триггер, конечно. Но чуть по-проще :)

Чуть проще не "портить" таблицы, а сделать 1 таблицу:
1. ID-записи
2. ID-таблицы
3. Состояние I/U/D
4. Оттиражирована или нет

Но этот механизм не позволяет контролировать ситуацию с редактированием 1 записи в разных СУБД :(
...
Рейтинг: 0 / 0
07.11.2005, 13:52
    #33364042
Calm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
угу, согласен.
...
Рейтинг: 0 / 0
07.11.2005, 14:19
    #33364121
zirex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
AbelKasumВсе узлы равноправны,

уточните это понятие, в данном случае (мне кажется) все узлы не могут быть равноправнами, здесь нужна схема "звезда" или "гибридная".... если понимать, что "узлы равноправны" - как кольцевую схему или "каждый с каждым".
...
Рейтинг: 0 / 0
07.11.2005, 15:21
    #33364301
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
Картина маслом: студент и куча изобретателей велосипедов
AbelKasum
Задача: По региону десятки компов, с возможно разыми РСУБД.

Что значит "с возможно разыми РСУБД."? Почему с разными?

Надо проанализировать задачу и возможности штатных средств репликации, имеющихся у разных СУБД. Сопоставить и сделать выводы о приемлемости. Грамотно спроектировать схему репликации, исключить ошибки репликации и продумать обработку конфликтов. IMHO самые богатые возможности, особенно по off-line репликации у Sybase ASA. Если нужно стыковать обязательно разные произвольные СУБД, то можно глянуть в сторону российской разработки DbSync .

Но использование произвольных разных СУБД - бред, если речь идет о проектировании всей системы с нуля. Если же идет речь о запуске репликации между уже созданными и работающими системами с разными СУБД, то это нетривиальная и обычно очень сложная задача. Может потребоваться существенная переделка/доработка структур баз. Все-таки желательно проектирование баз с учетом того, что они будут участвовать в репликации.
...
Рейтинг: 0 / 0
07.11.2005, 16:11
    #33364518
a40
a40
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
2 Александр Гoлдун
Холст, акварель: попытка из дипломной работы выжать реальный результат.

При всем уважении к Вам:
конечно, все что Вы написали - верно. Но челу нужно написать диплом. Независимо от того, насколько реальна и подъемна сформулированная тема диплома.

Так поможем советом :)
...
Рейтинг: 0 / 0
08.11.2005, 10:22
    #33365680
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
В первой части диплома проанализируйте и уточните задачу
- что такое любая БД - можно предположить что любая БД умеет создавать единого образца логи изменения данных, на которых далее и строится репликация.
- как разрешаются конфликты при одновременно изменении данных в 2 и более узлах. Равноправие - очень сильное требование.
- должен ли каждый узел быть непосредственно связан репликацией со всеми другими, чем этот грозит, или допускаются какие-то специальные узлы -диспетчеры.
Решать имхо нужно уже ограниченную задачу.
...
Рейтинг: 0 / 0
11.11.2005, 00:42
    #33372378
iLLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
Ё-мое! Это же мой диссер!
Уважаемый, а в каком инсте нынче дают такие темы?


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
13.11.2005, 14:25
    #33375404
AbelKasum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
[quot iLLer]
Ё-мое! Это же мой диссер!
Уважаемый, а в каком инсте нынче дают такие темы?


iLLer'у поделись чем-нибудь!
...
Рейтинг: 0 / 0
13.11.2005, 14:38
    #33375412
AbelKasum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
zirex AbelKasumВсе узлы равноправны,

уточните это понятие, в данном случае (мне кажется) все узлы не могут быть равноправнами, здесь нужна схема "звезда" или "гибридная".... если понимать, что "узлы равноправны" - как кольцевую схему или "каждый с каждым".

Изменёные данные передаются всем, а узел сам решает что с ними делать.
...
Рейтинг: 0 / 0
13.11.2005, 14:47
    #33375419
AbelKasum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
ModelRВ первой части диплома проанализируйте и уточните задачу
- что такое любая БД - можно предположить что любая БД умеет создавать единого образца логи изменения данных, на которых далее и строится репликация.
- как разрешаются конфликты при одновременно изменении данных в 2 и более узлах. Равноправие - очень сильное требование.
- должен ли каждый узел быть непосредственно связан репликацией со всеми другими, чем этот грозит, или допускаются какие-то специальные узлы -диспетчеры.
Решать имхо нужно уже ограниченную задачу.

- главное чтобы она передовала изменения.
- пока не знаю.
- узел связан с центром. А уже центр рассылает изменеия другим.
...
Рейтинг: 0 / 0
13.11.2005, 14:51
    #33375422
AbelKasum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
Самое главное это:
1). Как сообщить проге, через СУБД, об произошедщих изменениях в БД.
2). И желательно, чтобы СУБД передала сами изменения.

Вывод: если выполняются все эти условия, то нам глубоко похер какая
СУБД стоит или лежит.
...
Рейтинг: 0 / 0
13.11.2005, 23:44
    #33375628
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
Зачем плодить одинаковые топики?
AbelKasumКак сделать так, чтобы СУБД сообщала об изменениях в БД.
Кому?
AbelKasum
Желательно чтобы и сами изменения (записи) передавала.
Воспользоваться штатным или сторонним репликатором.
...
Рейтинг: 0 / 0
14.11.2005, 14:31
    #33376785
AbelKasum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
Александр ГoлдунЗачем плодить одинаковые топики?
AbelKasumКак сделать так, чтобы СУБД сообщала об изменениях в БД.
Кому?
AbelKasum
Желательно чтобы и сами изменения (записи) передавала.
Воспользоваться штатным или сторонним репликатором.

Надо, чтобы СУБД (как нибудь) сообщала проге об произошедших изменениях.
Что-то вроде событий в ООП.
Как, это сделать вот мой вопрос?
Возможно с помошью каких-нибудь COM обьектов, это возможно сделать?
Или сообшений?
...
Рейтинг: 0 / 0
14.11.2005, 14:33
    #33376793
AbelKasum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
Как?
...
Рейтинг: 0 / 0
14.11.2005, 15:03
    #33376875
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
AbelKasum Александр Гoлдун
Воспользоваться штатным или сторонним репликатором.

Надо, чтобы СУБД (как нибудь) сообщала проге об произошедших изменениях.
Что-то вроде событий в ООП.
Как, это сделать вот мой вопрос?

Ну подсмотри же в конце концов хоть что-нибудь из готовых решений, чтобы не изобретать велосипедов с квадратными колесами и не задавать таких вопросов!
Что значит сообщать проге? В реальном режиме времени по каждому изменению записи сообщать программе "запись такая-то поменялась"? Нафига? Какой программе? Логичнее по запросу получать информацию о том, что изменилось. Сделать это можно великим множеством способов. Например в ASA просто сканируется журнал транзакций. Всякие стороние и самопальные репликаторы часто практикуют ведение отельной информации об измененниях, например в доп таблицах на триггерах вставляются ID измененных записей. А уж программа периодически просто проверяет эти таблицы на предмет определения того, что изменилось, предпринимает необходимые действия для обслуживания этих изменений (например для рассылки) и там же отмечает успешно отработанное.

Не поленись хотя бы прочитать то, что тебе уже ответили. Я давал ссылку на DbSync. Загляни в раздел "функционирование системы". Там кратко описано, но из этого можно понять, как оно сделано.

А то все как да как! Все разжевать или даже диплом за тебя написать? Это в форум Работа - там найдутся желающие сделать это за умеренную сумму. Тут люди могут посоветовать направление, куда копать, что-то подсказать, навести на мысль, высказать идею. Если этого недостаточно, тогда ошибся форумом. Или институтом. Ничего личного.
...
Рейтинг: 0 / 0
15.11.2005, 15:32
    #33379444
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
AbelKasum
т.е. репликация двух сторонняя.

Sybase RS. Стандарт транзакционной репликации де-факто.

AbelKasum
1) (желательно) независила от РСУБД.

Почти что так. Список серверов БД для RS смотрите на сайте Sybase.

AbelKasum
2) реплицировала только вносимые изменения.

Имеете в виду при commit?

AbelKasum
3) сразу бы передовала данные или создовала очередь, а потом передовала.

Есть буфер, его размер настраивается.
...
Рейтинг: 0 / 0
15.11.2005, 18:23
    #33379921
AbelKasum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
Спасибо всем!!!
Если, какие мысли будут пишите.
...
Рейтинг: 0 / 0
30.11.2005, 12:28
    #33408116
crowler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
а про XML забыли?
...
Рейтинг: 0 / 0
30.11.2005, 12:34
    #33408144
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация.
crowler
а про XML забыли?

А что XML? Это модное словечко обозначает всего лишь формат
представления данных, а не технологию репликации или какую другу панацею.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Репликация. / 25 сообщений из 25, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]