PC Press
O nama
O nama
Pretplata
O nama
Postanite saradnik PC-ja
Kontakt sa redakcijom
PC Press
Novi broj
Novi broj   
Pretrazivanje
Arhiva
Arhiva   
PC Online
PC Plus   
Specijalna izdanja
Softver Softver
PC #68 : Jun 2001 Knjiga 50 godina racunarstva u Srbiji

 Naslovna  Sadržaj 
Ljubica Bukvić  

Sinhronizacija baza podataka

DBCompare je alat za sinhronizaciju baza podataka na Microsoft SQL serveru 7 i 2000. On omogućava automatizaciju procesa usklađivanja baza.

U razvoju baza podataka veoma često se dolazi u situaciju kada postoji barem jedna baza u eksploataciji i baza na kojoj razvojni tim priprema adaptacije i vrši testiranje. Posle faze testiranja, treba preneti modifikacije na ciljnu bazu, čuvajući postojeće podatke u njoj. Tu na scenu stupa DBCompare, koji ustanovljava razlike između svih objekata u dve baze podataka. Radi se o strukturama tabela, indeksima, trigerima, strored procedurama... Podaci u tabelama nisu predmet upoređivanja. Kao rezultat rada programa dobija se skript kojim se usklađuju objekti ciljne sa polaznom bazom podataka, uz očuvanje podataka koji postoje u tabelama na ciljnoj bazi. Postojeći objekti se usklađuju, a novi kreiraju.

Koraci do cilja

Tabela čija je struktura izmenjena i koja ima referencirani primarni ključ predstavlja nešto teži „zalogaj“. DBCompare tada izvrši drop svih referenci, a zatim i primarnog ključa. Sadržaj se smešta u privremenu tabelu, zatim sledi drop tabele, kreiranje tabele na ciljnoj bazi sa izmenjenom strukturom, pa vraćanje sadržaja neizmenjenih polja iz privremene tabele. Sadržaj ostalih polja su default vrednosti ili ono što korisnik unese u delu programa za razrešenje novih polja. Zatim se generiše primarni ključ, pa potom reference. Ovo je bio kratak opis posla, koji bi administrator koji radi na usklađivanju morao ručno da izvrši.

(kliknite za veću sliku)

Pri radu sa programom, potrebno je napraviti nekoliko koraka da bi se stiglo do cilja. Najpre se uspostavljaju konekcije sa SQL serverima na kojima se nalaze baze koje sinhronizujemo (naravno, obe mogu biti na istom serveru). Zatim se bira po jedna baza iz svake konekcije; nakon klika na taster Compare, sledi analiza objekata na obe baze, njihovo poređenje i vizuelno predstavljanje dobijenih razlika. Razlike su prikazane u formi stabla, a objekti su grupisani po vrstama: tabele, stored procedure, view-ovi...

Objekti koji pripadaju tabelama (primarni ključ, indeksi, default-i i sl.) hijerarhijski su predstavljeni ispod tabele na koju se odnose. Boja kojom se ispisuju nazivi objekata zavisi od vrste razlike. Neki objekti postoje u obe baze, neki samo u jednoj i shodno tome njihovi nazivi su drugačije obojeni. Na posebnom panelu (moguće ga je isključiti) prikazani su SQL skriptovi za generisanje objekata koji su trenutno odabrani na grafičkom prikazu.

Postoje dva tastera za navigaciju kroz razlike na skriptovima: Next difference i Previous difference. Nakon pregleda svih razlika koje je program pronašao, korisnik može odabrati pojedine objekte za koje ne želi da izvrši sinhronizaciju. Na ovom mestu mogu se definisati parametri konekcije sa SQL serverom, da bi se u generisani skript uključile opcije koje su potrebne za ispravno izvršenje.

(kliknite za veću sliku)

Posle pregleda i podešavanja akcija, pokušavamo generisanje sinhronizacionog skripta. Ukoliko postoje problemi sa sadržajem koji treba upisati u nova polja ili korisnik poželi da interveniše, može „ručno“ pozvati prikaz svih novih polja. To mogu biti polja koja ne postoje u tabelama na ciljnoj bazi, postoje na polaznoj, ne mogu po definiciji imati null vrednost i nije im definisana default vrednost. Pošto ovo nije problem sa jednim rešenjem (tj. program ga ne može uvek rešiti), korisnik ima alternative: da se vrati i dodeli default vrednost u početnoj bazi i ponovo pokrene komparaciju, ili da na ponuđeno mesto u programu upiše skript koji će DBCompare umetnuti na mesto dodeljivanja vrednosti „problematičnom“ polju.

Spreman za izvršenje

Na kraju dobijamo sinhronizacioni skript u posebnom editoru. Zbog bolje preglednosti i kontrole ručnog unosa izmena, prikaz teksta je sintaksno obojen; korišćene su iste konvencije za boje kao u Microsoft-ovim alatima. Pošto je reč o editoru, moguće je pre izvršenja skript promeniti ili snimiti, pa ga pokrenuti iz nekog drugog alata. Preporučuje se ipak izvršavanje iz samog DBCompare-a, pošto se na taj način izvršava u transakciji; ako dođe do neke greške, ciljna baza će biti vraćena u stanje pre sinhronizacije, a uvek je dobro izvršiti backup pre sinhronizacije.

Trenutno ograničenje je što program ne podržava rad sa replikacijom, tako da je taj deo sinhronizacije prepušten administratorima. U pitanju je složena problematika, ali će rešenje koje pokriva veliki deo problema vezanih za replikaciju biti uključeno u sledeću verziju. Trial verzija ovog alata može se preuzeti sa sajta www.informatika.com , a cena je 35,000 dinara po licenci.

Korisne adrese:

Informatika
Jevrejska 32, Beograd
tel: 011/3215-151