powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Репликация.
25 сообщений из 25, страница 1 из 1
Репликация.
    #33363113
AbelKasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<Дипломная>
<Кто чем может поможите>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Есть буфер, его размер настраивается.
...
Рейтинг: 0 / 0
Репликация.
    #33379921
AbelKasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем!!!
Если, какие мысли будут пишите.
...
Рейтинг: 0 / 0
Репликация.
    #33408116
crowler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а про XML забыли?
...
Рейтинг: 0 / 0
Репликация.
    #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]