Tema: Re: MSSQL DB duomenų sinchronizavimas į vieną pusę
Autorius: Laimis
Data: 2010-09-16 22:41:58
bala nemate rašė:
>>
>> Iš trumpo problemos paaiškinimo nesupratau kokia yra ta „tikroji
>> problema“ -- ar turima konkrečioji programa pritaikyta (jau)
>> replikavimui ir jį tereikia paleisti, ar kuriama savo sistema, ar pats
>> išmanai replikavimo principus/technologiją MS kontekste, todėl galbūt
>> visa ši tirada ir bereikalinga/beprasmė.
>
> reiškiasi, yra programa, kurios viena iš užduočių - registruoti aliarmus į
> DB. DB yra kurta softo gamintojo, ne mano rašyta. Centre reikia matyti

Jei ta DB, tai kelios lentelės (įvykių žurnalai ir ar pan.), t.y. 
nedidelė ir dar gana aiškios (nes primityvios) struktūros, tuomet dar 
nesunku išsiaiškinti, ar nebus loginių/fizinių kolizijų (sutampantys PK, 
įrašų vaikščiojimas tarp filialų, įrašų autorių identifikavimas, kt.). 
Paprastas pavyzdys:

alarmlog:
id data event_id alarm_id ...
... ..   ..       ..

events:
id type description ..
... ..   ..

alarms:
id type description ..
... ..   ..


iš A, B, C, ...
į vieną krūvą sukristų visų objektų/filialų įrašai; reikia išsiaiškinti:

- kaip centre bus identifikuojamas kiekvienas objektas (filialas), t.y. 
jo įrašai?

- ar nesipjaus PK (t.y. ar kiekviename prenumeratoriuje _programoje_ 
įmanoma užprogramuoti tam tikro intervalo PK skaitliuk-ą(-us), kad PK, 
suliejus įrašus į vieną vietą, tiesiog nepersidengtų/nesipeštų;

- ar nesipjaus ir, svarbiausia, sutaps (neišsisinchronizuos) gana 
statinių lentelių events/alarms įrašai/sąryšiai. Čia gali būti įvairių 
kolizijų: kai/jei vienas (ar keli) objektai/filialai sumanytų koreguoti 
kokio alarm'ų/event'ų aprašymus, pridėti, šalinti įrašus; visa tai 
nukeliautų į centrą, po to pasklistų visuose filialuose...

- kt.

> GEriau pagalvojus, gal verta daryti centre ne vieną bendrą, bet kiekvieno
> filialo DB repliką, o jei analizei prisireiks duomenų iš visų filialų
> vienoje ataskaitoje - view'e apjungti skirtingas DB viską su UNIONu..

Viskas į vieną publikuojamą DB turi aiškų privalumą -- nereikia kurti 
naujos publikacijos atsirandant vis naujiems objektams/klientams; 
tereikia užsiprenumeruoti. Tačiau jei programa (DB struktūra) 
nepritaikyta (nes netinkama) replikavimui, tai net neverta apie tai 
kalbėti -- į vieną ir norint nesigaus.