Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Simultani upis u 2 istovetne baze na 2 računara?

[es] :: Firebird/Interbase :: Simultani upis u 2 istovetne baze na 2 računara?

[ Pregleda: 3253 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dogriz
Sombor

Član broj: 29744
Poruke: 259
*.dynamic.sbb.co.yu.

Sajt: dogriz.blogspot.com


+6 Profil

icon Simultani upis u 2 istovetne baze na 2 računara?26.02.2008. u 12:54 - pre 158 meseci
Situacija:
Imam 2 računara u mreži i identičnu aplikaciju na oba. Aplikacija na oba računara istovremeno pristupa bazi koja se nalazi na jednom od ta 2 računara.
Postoji li mogućnost da radim neki "mirroring" baze na onaj drugi računar i to tako da se svaka promena u "primarnoj" bazi prenosi odmah na ovu drugu (znači nešto kao trigger koji kopira svaku promenu odmah po njenom nastanku).

Nadam se da sam dovoljno jasno ovo objasnio.
Ono što mi treba je da u slučaju otkaza računara 1 (na kome je "primarna" baza), računar 2 može automatski da nastavi sa radom sa "sekundarnom" tj. njemu lokalnom bazom i identičnim podacima.

Da li mogu tako nešto na jednostavan način da odradim u Delphi-u ili mi treba neki poseban alat za to?

Ovo je pitanje i za Firebird i za Delphi forum, ali hajde za početak da vidim bar da li može tako nešto sa firebirdom, pa ću onda da vidim šta ću dalje.
 
Odgovor na temu

Dr.sima

Član broj: 6237
Poruke: 478



+119 Profil

icon Re: Simultani upis u 2 istovetne baze na 2 računara?26.02.2008. u 14:24 - pre 158 meseci
Uf, ti hocesh da napravish klaster? Mislim da po uopste nije jednostavno, pogotovu ne znam da li to moze da se uradi u firebird-u...
 
Odgovor na temu

savkic
Igor Savkić

Član broj: 92186
Poruke: 2654



+73 Profil

icon Re: Simultani upis u 2 istovetne baze na 2 računara?26.02.2008. u 22:11 - pre 158 meseci
FB nema ugrađenu replikaciju, ali postoje posebni alati za to. Pogledaj npr. IBReplicator.
 
Odgovor na temu

darko_sudarov
ProConto Software doo
Kikinda

Član broj: 89262
Poruke: 136
212.200.34.*



Profil

icon Re: Simultani upis u 2 istovetne baze na 2 računara?27.02.2008. u 07:49 - pre 158 meseci
Koliko sam cuo od ljudi koji su koristili replikaciju,vise je bilo problema oko toga nego da su pravili stabilnu konekciju ka primarnoj bazi.
Cak sta vise kazu da je to dosta veliki problem jer se desava da se replikacija ne izvrsi najsrecnije pa je dolazilo do problema tipa nezavrsenih transakcija i korumpiranih baza.
Ja je nisam nikada koristio ali iz price drugih ljudi mislim da bi trebalo to ostaviti za sada po strani.
 
Odgovor na temu

dogriz
Sombor

Član broj: 29744
Poruke: 259
*.dynamic.sbb.co.yu.

Sajt: dogriz.blogspot.com


+6 Profil

icon Re: Simultani upis u 2 istovetne baze na 2 računara?27.02.2008. u 08:17 - pre 158 meseci
Mislim da mi replikacija svakako ne rešava problem, pošto koliko vidim, može da se konfiguriše da radi periodično, znači - na svakih npr sat vremena, 1 min itd. a meni to ne rešava problem, jer praktično sve treba da se obavlja prilikom svake promene u bazi.
Mislim da ću problem rešavati programski - kreiraću aplikaciju tako da se istovremeno konektuje na obe baze i upisuje podatke i lokalno i remote.
Po potrebi dalja pitanja postavljam na delphi forumu.
Hvala
 
Odgovor na temu

schild
Dejan Šild
TopCode Software
Subotica

Član broj: 59888
Poruke: 137
77.46.205.*

Sajt: www.topcode.rs


+2 Profil

icon Re: Simultani upis u 2 istovetne baze na 2 računara?27.02.2008. u 09:28 - pre 158 meseci
Pa sad... replikacija svakog minuta, ili svakih pola minuta, trebalo bi da bude dovoljno sigurna, ne? Za dodatnu sigurnost postavi raid diskove,... pa ne crkavaju racunari bas stalno.
A ako je sve to bas jako bitno, onda bi logicnije bilo postaviti neki 3-tier, pa da imas jedan db server, jedan aplikacioni server na kome bi bila i kopija baze, i onda dve radne stanice koje bi radile preko aplikacionog servera.
Mislim da je bilo koja od ovih varijanti bolja nego praviti klijent aplikaciju koja istovremeno pise u dve baze?!
 
Odgovor na temu

dogriz
Sombor

Član broj: 29744
Poruke: 259
*.dynamic.sbb.co.yu.

Sajt: dogriz.blogspot.com


+6 Profil

icon Re: Simultani upis u 2 istovetne baze na 2 računara?27.02.2008. u 09:34 - pre 158 meseci
Dejane, u pravu si što se tiče servera i ostalog, jedini je problem što je ovo neki niskobudžetni projekat, pa nije moguće da se uglavi još dodatne opreme, a verovatno ni adekvatnog softvera...
Ja bih najviše voleo da imam mogućnosti da posao radim "po PSu", ali često je neophodno pribegavati i "alternativnim" rešenjima... (od kojih podjednako često kasnije zaboli glava...)
 
Odgovor na temu

savkic
Igor Savkić

Član broj: 92186
Poruke: 2654



+73 Profil

icon Re: Simultani upis u 2 istovetne baze na 2 računara?27.02.2008. u 11:40 - pre 158 meseci
> Koliko sam cuo od ljudi koji su koristili replikaciju,vise je bilo problema oko toga nego da su pravili stabilnu konekciju ka primarnoj bazi.
> Cak sta vise kazu da je to dosta veliki problem jer se desava da se replikacija ne izvrsi najsrecnije pa je dolazilo do problema
> tipa nezavrsenih transakcija i korumpiranih baza.

Ne znam šta su oni radili ali to ne radi tako, replikacija kada se napravi kako treba je pouzdan mehanizam.
 
Odgovor na temu

schild
Dejan Šild
TopCode Software
Subotica

Član broj: 59888
Poruke: 137
77.46.205.*

Sajt: www.topcode.rs


+2 Profil

icon Re: Simultani upis u 2 istovetne baze na 2 računara?27.02.2008. u 12:34 - pre 158 meseci
Citat:
dogriz: Ja bih najviše voleo da imam mogućnosti da posao radim "po PSu", ali često je neophodno pribegavati i "alternativnim" rešenjima... (od kojih podjednako često kasnije zaboli glava...)
E pa o tome ja i govorim, o glavobolji! Čuvaj živce za bitne stvari u životu, ako je niski budžet, i ti ćeš se slabo opariti
 
Odgovor na temu

mbabuskov
Milan Babuškov
Subotica

Član broj: 4718
Poruke: 217
82.208.250.*

Sajt: www.comp.rs/izradasajta


+6 Profil

icon Re: Simultani upis u 2 istovetne baze na 2 računara?27.02.2008. u 20:35 - pre 158 meseci
Kao sto ti je vec preporuceno, mozes sa replikacijom. Moze da se podesi replikacija da koristi evente, tako da trigger na tabeli u kojoj se upisuje/menja/brise podatak odmah posalje event replikatoru (tj. ne odmah, vec odmah nakon commit-a) i izmena se odmah replikuje na drugu bazu. Ako je ovo u LAN-u, to u praksi bude oko 1-2 sekunde.

E sad, free replikatora koji rade sa eventima nema (bar koliko ja znam), a ovi komercijalni su dosta skupi. Pitanje sa koliko tabela ti radi ta aplikacija, ako nije previse komplikovano, mozda mozes nesto i sam da slozis.

Sem replikacije, imas varijantu da jednostavno imas 2 konekcije i sve upisujes u 2 baze istovremeno. Nemam pojma kakva je arhitektura tvoje aplikacije, ali ako ti je ikako izdvojen layer za komunikaciju sa bazom, onda bi to bilo skoro trivijalno napraviti.

 
Odgovor na temu

franjo_tahi
Franjo Tahi
Zagreb

Član broj: 34712
Poruke: 399
*.adsl.net.t-com.hr.



+1 Profil

icon Re: Simultani upis u 2 istovetne baze na 2 računara?17.03.2008. u 22:50 - pre 157 meseci
Ako je još uvijek zanimljivo...
Imao sam slilčan problem: baza se morala replicirati u bazu koja je na web-u i to Firebird -> MySQL, koji sam riješio na sljedeći način:

1. Kreirao sam tablicu Brisano s field-ovima:
tablica (VarChar(50))
ID (Integer)
TableKey (VarChar(50))
2. Svaka tablica ima field Mijenjano (SmallInt)
3. Svaka tablica ima trigere After Insert, After Update, Before Delete
After Insert i After Update upisuju u field Mijenjano 1 tj. 2
Before Delete upisuje u tablicu Brisano: ime tablice iz koje se briše, ime key fielda i vrijednost key fielda

Napravio sam program koji je cijelo vrijeme aktivan na serveru (nikako da ga uredim da radi kao servis) s timerom koji nakon svakih xx sekundi radi sljedeće:
1. Selektira sve iz tablice Brisano i prema njoj briše slogove u drugoj bazi, a nakon toga briše podatke iz tablice Brisano. Oprez - select i brisanje tablice Brisano raditi u jednoj transakciji kako se ne bi obrisali eventualno kasnije dodati slogovi!
2. Selektira iz svih tablica podatke koji imaju u field-u Mijenjano <> 0 i kopiraju/append-aju ih u drugu bazu.

Ne moraju se pisati procedure za svaku tablicu posebno. Preko DB$... (ne znam već koje) dobiješ popis svih tablica, a SQL za select i insert-update kreiraš dinamički.
 
Odgovor na temu

mbabuskov
Milan Babuškov
Subotica

Član broj: 4718
Poruke: 217
82.208.250.*

Sajt: www.comp.rs/izradasajta


+6 Profil

icon Re: Simultani upis u 2 istovetne baze na 2 računara?18.03.2008. u 22:19 - pre 157 meseci
Citat:
franjo_tahi
2. Svaka tablica ima field Mijenjano (SmallInt)
2. Selektira iz svih tablica podatke koji imaju u field-u Mijenjano <> 0 i kopiraju/append-aju ih u drugu bazu.


A sta ako se vise polja u istom redu promeni?

Vecina replikatora koje sam video nisu toliko intruzivni na samu strukturu baze (na tabele ti dodaju samo trigere, ne zahtevaju specijalne kolone). Svi inserti, izmene i brisanja se beleze u 3-4 log tabele odakle se kasnije citaju i radi replay na target bazi - sto omogucuje i 1-na-vise replikaciju. Ujedno su i mnogo efikasnije jer replikator samo cita iz loga gde je "ID > poslednje replicirane akcije" - za sta moze da koristi index. U tvom pristupu mora da prodje celu tabelu (za sta plan bude NATURAL) da bi nasao sta se menjalo. To mozda nije problem za manje tabele, ali kada imas nekoliko sa po par miliona rekorda, moze da uspori znacajno (narocito ako se koriste eventi, pa ti replikacija 'krene' posle svake izmene na bazi).

Citat:
(ne znam već koje) dobiješ popis svih tablica


RDB$RELATIONS za tabele
RDB$RELATION_FIELDS za kolone.

 
Odgovor na temu

franjo_tahi
Franjo Tahi
Zagreb

Član broj: 34712
Poruke: 399
213.147.114.*



+1 Profil

icon Re: Simultani upis u 2 istovetne baze na 2 računara?20.03.2008. u 08:55 - pre 157 meseci
Varijacija na temu:
Triger koji se okida kod insert ili update, u field upiše timestamp po kom je kreiran index. Kod pretrage se traži Field > Zadnji_update, a to radi po indexu.
Ne koristim evente već radim update na zahtjev korisnika, a može se staviti timer koji će to raditi nkon svakih x minuta.

I jedan i drugi primjer koristim.

1. Način kada se samo oznaći da li je slog mijenjan ili ne - radi update baze na web-u. Radi dobro već više od godinu dana. Istina da nema puno sloguva u tablici max: cca 10,000.

2. Način sa upisom timestampa koristim u programu koji radi na različitim lokacijama. Na svakoj lokaciji se mogu upisivati, mijenjati ili brisati matični podaci (npr stranke), a nakon toga se šire po svim ostalim lokacijama preko zajedničkog kompa (za izradu faktura).
 
Odgovor na temu

[es] :: Firebird/Interbase :: Simultani upis u 2 istovetne baze na 2 računara?

[ Pregleda: 3253 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.