You are on page 1of 24

VISOKA TEHNIKA KOLA NI

SEMINARSKI RAD
Tema: Replikacije baza u MS Access
Predmet: Distribuirane baze podataka

Mentor: dr Miloevi Borivoje

Student: Matijaevi Saa RTs 7/11

1. Replikacije baza u MS Access Upotreba, prednosti i zamke replikacije baze podataka


Replikacija baza podataka obezbeuje dizajnerima i korisnicima bazu podataka da unose i auriraju podatke u bazi podataka na vie od jedne lokacije, dok DBMS upravlja sinhronizacijom svake kopije baze podataka. Shadow baze podataka, mirror baze podataka ili backup u realnom vremenu se takoe smatraju replikacijom baza podataka. Replikacija baza podataka je tesno povezana sa transakcijama nad bazama podataka. Na nivou transakcije podaci se mogu duplirati na replici baze podataka. Rezultat je vei integritet podataka i dostupnost. Meutim, poveana dostupnost zavisi od toga koliko je nezavisna replika baze podataka u odnosu na primaru bazu podataka. Nezavisnost replike se mora razmatrati u smislu diskova, kontrolera diskova, napajanja, sistema, soba, zgrade i grada. Razmatranjem ove liste odreujmo koliko je robusna i dostupna naa replika baze podataka pod razliitim okolnostima. Idealno bi bilo da se duplikati uklone iz primarne baze podataka. Zajedno sa poveanjem udaljenosti dolazi dodatna kompleksnost i trokovi. Cenu nezavisnosti replike treba razmotriti. Koncept replikacije ukljuuje: Master/Slave replikacije: Svi zahtevi za upis se izvode na master-u i onda se kopiraju na slave-ove Kvorum: Rezultat zahteva itanja i pisanja se dobija upitom veine replika. Multimaster: Dve ili vie kopija se sinhronizuju preko identifikatora transakcija. Replikacija baza podataka moe da poslui u vie svrha. Ovde su neke od njih: 1. Daljinski pristup i auriranje podataka: Na primer, prodavac na terenu mogao bi kada se uvee vrati u motel da se poveite na raunar u kancelariji i odradi dvosmernu sinhronizaciju baze podataka. 2. Distribucija promene dizajna baze podataka: Programer baze podataka moe da primeni promene master baze podataka - kao to su dodavanje/izmena tabela, obrazaca i izvetaja. Sistem replikacije e primeniti ove promene na sve replike baze podataka. Ovaj metod moe znaajno smanjiti trokove odravanja sistema baze podataka. 3. Backup baze podataka i oporavak: Replika, kopija master baze podataka moe biti smetena u drugoj kancelariji, zgradi, ili gradu. Ovaj metod moe da obezbedi skoro trenutni backup kritinih informacija. 4. Sistem balansiranog optereenja: Replike baza podataka mogu da se nalaze na vie od jednog raunara, a kada se kombinuje sa softverom za balansiranje optereenja, moe da distribuira korisnicima ravnomerno da se uspostavi ravnotea optereenja preko vie raunara. -1-

5. Segregacija optereenja baza podataka: Funkcije baza podataka mogu biti odvojene preko raunarskih sistema, kako bi se izoluje kljune funkcije od moguih usporavanja. Na primer - moda ete eleti da izoluje vreme kritinih obrada transakcija od korisnika pregleda i generisanja izvetaja. Sve vee (i mnoge manje) softverske kompanije u svojim sistemima za upravljanje bazama podataka pruaju mogunost replikacije baze podataka sa razliitim stepenom robusnosti i fleksibilnosti - ukljuujui Microsoft Office Access.

1.1.Microsoft Office Access replikacije


Sa svim Access baza podataka je najbolje poeti sa najefikasnijim dizajnom relacione tabele. Obimna upotreba Lookup tabela sa indeksnim pokazivaem i definisanim odnosom izmeu tabela zajedno bez dupliranja podataka poboljava performanse i pouzdanost Access baze podataka. Efikasnost i performanse su jo vanije za repliciranu bazu podataka. Pri podeavanju replika moe biti samo jedan Dizajn master i koliko god je potrebno replika baze podataka. Imajte na umu da promene nad objektima (tabele, obrasci, izvetaji, upiti, itd), mogu se izvoditi samo na dizajn majstoru a ne na kopijama. Ne moraju svi objekti u bazi podataka da se repliciraju. Lokalni objekti mogu postojati u dizajnu masteru i u svakoj replici. Moete da imate neke posebne upite ili privremene tabele u replikama koje se ne sinhronizuju. Pre poetka replikacije morate da odluite koji e objekti baze podataka biti deo skupa objekata koji se repliciraju i koji e biti lokalni. AutoNumber ID polje: Ako se redovno dodaje vie od 100 objekata u repliciranu bazu podataka izmeu sinhronizacija onda bi trebalo da razmislite o promeni Autonumber Long Integer polja u Autonumber Replication ID za tip podataka. Replication ID tip (128 bita) prua vie brojeva za Autonumber polja i na taj nain e smanjiti verovatnoa sukoba Autonumber polja. Ako bazu podataka ima lozinku prvo uklonite lozinku pre kreiranja replikacije. Postoje dva metoda (plus programski) za kreiranje replicirane baze podataka (preuzeto iz Microsoft Access Help): A. Korienjem Tools menubar: 1. Otvorite bazu podataka koju elite da replicirate. Ako radite u viekorisnikom okruenju, proverite da su svi ostali korisnici zatvorili bazu podataka. 2. Ako vaa baza podataka koristi lozinke za zatitu baze podataka, uklonite lozinku. 3. Na Tool meniju izaberite stavku Repication, a zatim kliknite na Create Replica. 4. Kliknite na dugme Yes kada budete upitani da li da zatvorite bazu podataka. -2-

5. Kliknite na dugme Yes ili No (Yes se preporuuje) kada budete upitani da li elite da se backup baze podataka (ovaj dijalog se prikazuje samo ako baza podataka prvo mora biti konvertovana u Design Master pre kreiranja prve replike). 6. U Location of New Replica dijalogu, uradite sledee: Izaberite lokaciju gde elite da smestite novu repliku. Kliknite na dugme Priority, upiite prioritet za repliku, a zatim kliknite na dugme OK. Izaberite potvrdu Prevent deletes ako ne elite da korisnici mogu da briu zapise u replici. Izaberite vidljivost replike iz dijaloga Save as type. B. Upotrebom Briefcase opcije 1. Morate imati Briefcase instaliran na raunaru. Ako je Briefcase instaliran, videete ikonu My Briefcase na desktopu. Da biste instalirali Briefcase na vaem raunaru u operativnom sistemu Windows 2000, kliknite desnim tasterom mia bilo gde na radnoj povrini, izaberite na stavku New, a zatim kliknite na Briefcase. 2. Ako vaa baza podataka koristi lozinke za zatitu baze podataka, uklonite lozinku. 3. U Windows Exploreru pronaite Microsoft Access bazu podataka. 4. Prevucite datoteku baze podataka u My Briefcase ikonu na desktopu. Sada imate mogunost da kreirate rezervnu kopiju originalne baze podataka.

1.2.Konflikti sinhronizacije
Kada imate vie replika i u trenutnku kada treba da ih sinhronizujete izemu sebe ili sa glavnom bazom javie se konflikt sinhronizacije ako je isti objekt promenjen na vie od jedne replike. Alati za upravljanje replikacijom baza podataka imaju sofisticirane algoritme za utvrivanje ispravne vrednosti za objekte, ali oigledno postoje situacije kada se konflikt ne moe reiti. U ovom sluaju, za reavanje konflikta potrebna je intervencija od strane oveka. Microsoft Replication Conflict Viewer je alat koji se koristi za runo reavanje konflikta. Da bi se smanjila ili eliminisala pojava konflikta moda ete eleti da promenite dizajn baze podataka tabele ili promeniti procedure za rad, tako da postoji podela dunosti ime se izbegava da dvoje ljudi radi na istim tabelama i zapisima izmeu sinhronizacija. Promene u dizajnu - na primer moete imati bazu podataka zahteva za rad, koji ima polje status komentara koje mogu da auriraju vie ljudi u toku dana. U tom sluaju moda ete eleti da se podelite polje za komentar u posebnu tabelu sa markerom datum/vreme za skladitenje svakog komentara kada ga je promenila vie od jednog korisnika.

-3-

Za sveobuhvatan skup pitanja i odgovora o replikaciji Microsoft Access baza podataka pogledajte Microsoft Office Access Replication FAQ Download1 i Database Journal2. Pregledajte informacije replikacije baze podataka sa gornjih linkova u kombinaciji sa Software Disaster Recovery Planning3 i Software Risk Assessment4. Napomena: Replikacija baza podataka nije direktno podrana u Microsoft Office Access 2007.

1.3.esto postavljana pitanja o Microsoft Access Replication


1. ta je GUID? Replikacija treba metodologiju za jedinstvenu identifikaciju razliitih artikala, kao to svaki zapis, tabela, i replika u repliciranoj bazi podataka. Identifikator je GUID (Globally Unique Identifier) kreiran od Microsoft Jet alata baze podataka na takav nain da garantuje jedinstvenost kroz prostor i vreme. GUID nisu svojstveni samo Jet-u i replikaciji, mnogi programi kreiraju i koriste GUID. Na primer, Windows operativni sistem dodeljuje GUID svakoj ActiveX kontroli instaliranoj na vaem sistemu. Kada se baza podataka pretvara u skup replika, nekoliko polja se dodaju svakoj tabeli ukljuujui i polje po imenu s_GUID. GUID su kreirani korienjem kombinacije vora lokalne mree, vreme, clock sekvenca, a verzija. Za detaljnije informacije o tome kako su GUID kreirani, pogledajte Database Replication white paper. Evo primera GUID:
36B295B1-D128-11d0-81F9-0000F649884F

2. Mogu li da koristim GUID kao primarni klju? Apsolutno. Meutim, nije potrebno da to uradite. Ako odluite da koristite GUID kao primarni klju za tabelu, morate to uiniti pre konvertovanja baze podataka u repliku: za Polje primarnog kljua, izaberite tip podataka AutoNumber; izaberite ReplicationID kao FieldSize osobinu. Kada se baza podataka pretvara u repliku, Jet e koristiti te polje AutoNumber kao GUID-a nee dodati novo s_GUID polje, kao to je opisano u taki 1, ta je GUID? 3. Zato je replikacija promenila sve moja AutoNumber polja u Random Increment? Podrazumevano ponaanje AutoNumber polja, je poveanje za 1 svaki put kada se zapis dodaje, ne bi radilo u raplici. Ako je to ureano, svaki lan skupa replika bi kreirali nove zapise nezavisno jedna od druge sa istom vrednou primarnog kljua, uzrokujui greke dupliranja primarnog kljua pri svakoj sinhronizaciji. Tako da kada pravite repliku iz redovne baze podataka, ono se automatski menja da nasumino uveava vrednost, to u velikoj meri smanjuje
1 2

http://support.microsoft.com/kb/q182886/ http://www.databasejournal.com/features/mysql/article.php/3355201 3 http://www.blueclaw-db.com/disaster_recovery_plan.htm 4 http://www.blueclaw-db.com/software_risk_assessment.htm

-4-

verovatnou da e dve replike dedeliti istu primarni klju. Ako koristite AutoNumber i kao primarni klju i kao broj evidencije redom, gde su brojevi vani u poslovnom kontekstu (kao to je broj fakture), onda treba da razmotrite druge alternative pre nego to konvertovanje bazu podataka u repliku. Jedna od moguih alternativa je kreiranje prilagoene AutoNumber rutine za dodelu brojeva koristei koda koji se izvrava iz vae forme. Ovaj kod bi trebalo da sadre sajt ili ID replike kao deo primarnog kljua ili da koriste razliite vrednosti za svaku repliku. 4. Mogu li da koristim polje sa GUID u kriterijume za DLookup? Kao parametar u upitima? Za pretrage? Ne moete da koristite GUID kao deo kriterijuma za DLookup (ili bilo koji drugi domen funkcije). Moete da ga koristite u upitu parametara postavljanjem podataka parametar tipa kao GUID. Takoe moete da ga koristite u pretrazi. Microsoft Jet baze podataka uva GUID kao nizove tipa bajt. Meutim, Microsoft Office Access ne moe da vrati bajt podataka iz kontrola na obrazac ili izvetaj. Kako bi se vratili vrednost GUID sa kontrolom, morate da: a) GUID konvertujete u string. Da biste konvertovali GUID u string, koristite StringFromGUID funkciju. Da biste konvertovali string u GUID, koristite funkciju GUIDFromString. b) Koristi osobinu Tekst kontrole, a ne vrednost. Kada je GUID vezan za kontrole, kanonski (string) oblik GUID se prikazuje. Vrednost je binarni podatak, a tekst kanonska forma. 5. Zato se ponekad udni brojevi pojavljuju u mojoj padajuoj listi i kombo boksovima? U Microsoft Access 95, forme i kontrole formi nisu svesni replikacija. Dakle, ako bi padajuom listom ili kombo boksom bili direktno vezani za izvor zapisa tabela, bilo je situacija koje bi izazvalo (normalno) da se skrivena polja replike prikau. Koristei izvor zapisa na osnovu rezultata upita je mnogo sigurnija tehnika. To je isravljeno u Microsoft Access 97. 6. Na koja pitanja oko dizajna treba da obratim panju pri radu sa replikacijom? O ovome bi verovatno mogla knjiga da se napie! Razmotrite fizike promene koje se deavaju u bazi podataka. Svaka replicirana tabela e imati 3 nova polja (i vie ako je tabela sadri Long Binary tipove podataka) koja e dodati 24 bajtova na duinu svakog zapisa. Svaka replicirana baza podataka e dobiti oko 14 novih tabela koje su replikacija sistemskih tabela. Microsoft Jet baze podataka i dalje sprovodi 255 polja po tabeli, 2048 bajta duine po zapisu. Kada se planira replikacija, budite sigurni da dodatna polja koja se dodaju tabelama nee prei maksimalan broj polja po tabeli ili maksimalan broj bajtova po zapisu. -5-

Kada baza podataka se konvertuje u skup replika, na poziciju Dizajn Mastera (DM) treba posebno obratiti panju. DM je jedino mesto gde mogu da vre izmene u dizajnu objekata baze podataka, tako da elite da budete sigurni da ga neete staviti u situaciju da se sinhonizacija delimino obavi. 7. Zato su neki od objekata dobili novo ime? U Microsoft Access 97, ako se tabela kreira u Dizajn masteru moe da se desi da imaju isto ime kao lokalni objekat u bilo kojoj od replika lanova. Da Dizajn master ne izazove greku, lokalni objekat u replici dobija novo ime u obliku '<lokalni objekat> _Local '. 8. Kako mogu da sinhronizujem u jednom pravcu? Koristite VBA/DAO i Synchronize metod. Podrazumevano je dvosmerna, ali moete izabrati da sinhronizacija radu u jednom smeru, ili izvoz ili uvoz. Imajte na umu da e bilo koje promene u dizajnu biti dvosmerne. Sintaksa je:
database.Synchronize pathname [,exchange]

Synchronize metod sintaksa ima sledee delove. Deo Database Opis Promenljiva koja ukazuje na repliku baze podataka koju elite sinhronizovati. Pathname Putanja do ciljane baze podataka sa kojom baza podataka e biti sinhronizovana. Pratei .mdb moe biti opciono izostavljen. Exchange Ukazuje u kom pravcu treba da se sinhronizuju promene izmeu dve baze podataka. Ovo moe biti jedan od sledeih Integer konstanti: dbRepExportChanges dbRepImportChanges dbRepImpExpChanges dbRepSyncInternet Poalji promene iz baze u putanju. Prime izmene iz putanje. (Podrazumevano) Dvosmerna razmena. Microsoft Office Access 97. Razmenjuje podatake izmeu datoteka putem Internet ili intranet putanje. Putanja za sinhronizovanje e sadrati Uniform Resource Location (URL), kao identifikator. Pored toga, moete da dodati konstante Export ili Import kao opciju Internet razmene zavisno da li aljete ili primite akcije preko interneta.

-6-

Evo primera proceduru koju moete da prilagodite za linu upotrebu. Procedura oekuje bazu podataka/putanju koju sinhronizacijemo sa, ciljanom putanjom / bazom podataka, i aktivnost sinhronizacije. Potrebno je da navedete intSync argument kao 1 za dvosmerni, 2 za izvoz, 3 za uvoz, i 4 za Internet sinhronizuju. Evo primera pozivanja funkcije za izvoz samo promena:
Call SynchronizeDBs("C:\MyRepl.mdb", "L:\OtherRepl.mdb", 2) Sub SynchronizeDBs(strDBName As String, strSyncTargetDB As String, _ intSync As Integer) Dim dbs As DATABASE Set dbs = DBEngine(0).OpenDatabase(strDBName) Select Case intSync Case 1 'Synchronize replicas (bidirectional exchange). dbs.Synchronize strSyncTargetDB, dbRepImpExpChanges Case 2 'Synchronize replicas (Export changes). dbs.Synchronize strSyncTargetDB, dbRepExportChanges Case 3 'Synchronize replicas (Import changes). dbs.Synchronize strSyncTargetDB, dbRepImportChanges Case 4 'Synchronize replicas (Internet). dbs.Synchronize strSyncTargetDB, dbRepSyncInternet End Select dbs.Close End Sub

9. Mogu li da koristim lozinke baze podataka sa replikacijom? Microsoft Access 95 i Microsoft Access 97 je uveo lozinke za bazu podataka. Lozinka za bazu podataka omoguava vam da podesite jednu lozinku za bazu podataka umesto viestrukog logovanja sa redovnim Microsoft Access sistemom bezbednosti. Ova funkcija je nespojiva sa replikacijom. Ne moete da kopirate bazu podataka sa lozinkom, niti moete da postavite lozinku baze podataka replika. Uvek moe da primeni korisniki nivo bezbednosti u Microsoft Office Access; samo svi korisnici treba da se prijave koristei istu ID i lozinku. Ovo postie isti efekat i robustnije reenje, jer lozinke za bazu podataka su izuzetno nepouzdano. Meutim, to zahteva da distribuirate svoju bezbednosnu datoteku radne grupe (system.mdw) sa replikama. 10. Kako da primenim sistem bezbednosti sa replikom? I replikacija i bezbednost su napredne funkcije, koje zahtevaju mnogo planiranja unapred, kako bi se uspeno sprovele. Moete da kombinujete obe, ali treba da razmotrite kako e vaa osigurana replika raditi. Moete obezbediti vau aplikaciju na normalan nain, a sve promene koje izvrite u dozvolama baze podataka e biti distribuirane tokom sinhronizacije. Meutim, ne moete da sinhronizujete fajlove radne grupe, tako da morate da distribuirate svoje datoteke radne grupe (ili system.mdw) odvojeno za svaki sajt koji uestvuju u replikaciji. Ovo moe administracij da zada glavobolju ako treba da dodaje i uklanja korisnike sve vreme. Jo jedna opcija je da se stvori zajednika grupa u razliitim fajlovima radnih grupa koji imaju identine nazive i PID. Ovo bi omoguilo svakom sajtu da odri svoju datoteku radne grupe, dok jo uvek -7-

dozvoljava pristup repliciranom objekatu. Za vie informacija o tome kako da podesite Microsoft Office Access sistem bezbednosti, pogledajte pitanja i odgovore vezana za bezbednost, koji je dostupan na veb sajtu Microsoft-a. 11. Kako da osveite povezane tabele u repliciranoj bazi podataka? Ako imate kod koji brie povezane tabele i ponovo ih stvara, to nee uspeti u svim replikama, osim za dizajn master, jer brisanje povezih tabela i dodavanja novih podrazumevaju izmene u dizajnu. U cilju da osveite veze, moraete da napiete kod za repliku koji aurira vezu (sa putanja/mdb bazom podataka) za svaki priloeni TableDef objekat. Uradite update metodom Connect sa RefreshLink metodom za svaki objekat TableDef da Jet baze podataka zna gde su novi podaci. Sreom, to se ne smatra za promenu dizajna za potrebe kopiranja, tako da ne morate da brinete o putanji propagiranja u druge replike tokom sinhronizacije. 12. Kako da repliciram aplikaciju koja ima implementiranu podelu podatka i koda MDB-a? Moete da replicirate aplikaciju baze podataka, tabelu baze podataka, ili oboje. Meutim, moda e vam biti efikasnije u praksi samo da replicirate tabelu baze podataka. Iako se promene u dizajnu mogu replicirati, njihova sinhronizacija moe izazvati probleme. Bilo je prijavljenih sluajeva dizajna promena forme i module ne propagira uspeno sve replike u skupu replika. Ako je mogue, razviti svoju aplikaciju u potpunosti pre preiranja replika i distribucije. Ukoliko je potrebno da kasnije napravite izmene dizajna, onda distribuirajte front-end baze podataka nezavisno od tabela. 13. Kako da kompaktujem repliciranu bazu podataka? Kada kompaktujete repliku u Microsoft Jet baze podataka 3.5x, postoje etiri stvari koje treba imati na umu: Proverite da li se replika vraa na originalnu lokaciju/ime posle kompaktovanja a pre sinhronizacije sa bilo kojom drugom replikom. Ako ne, onda ete dodati jo jednu replika na skup replika i ako je replika Dizajn master, to vie nee biti Dizajn master (jer je pomeren). Najbolji pristup je da se napravi rezervna kopija replika pred kompaktovanja, a zatim ga kompaktovati na istu lokaciju/ime. Ako kompaktujete repliku koja je oteena, ona e izgubiti statusa replike (i status Dizajn mastera ako je Dizajn master). Kompaktovanje oteene replika izaziva da se replika vrati u normalnu, ne-repliciranu bazu podataka, ali sa svim skrivenim sistemskim tabelama i poljima koji su i dalje prisutni. Za najbolje rezultate, kompaktovati replikzu dva puta. Prvo kompaktovanje obavlja normalan proces konsolidacije i oznaava replicirane objekte koje je potrebno da izbriete, -8-

ali ih u stvari ne brie. Drugo kompaktovanje brie ove objekte i oslobaa prostor koji su zauzimali obrisani objekti. Iako navedeni saveti o kompaktovanju su vani sve vreme, to je od vitalnog znaaja za Dizajn master, a posebno prilikom pravljenja izmene u dizajnu u Microsoft Office Access objektima. To je zbog verzije Microsoft Office Access objekata. Ako napravite 80 promena u formi i sauvate ga 80 puta, bie 80 primeraka te forme sauvane u bazi podataka, tako da Access baze podataka moe primeniti te izmen na nekom drugom mestu. Ako kompaktujete bazu podataka pre nego to je sinhronizujete, Access baze podataka e primetiti da su 79 od tih promena irelevantne i ne treba da budu. Ukoliko ste prvi put sinhronizujete, meutim, neete moi da povrate prostor i svih 80 promena e morati da se primene na svaku repliku. Dakle opet, uvek kompaktovati Dizajn master pre sinhronizacije. 14. Kako da popravim oteen Dizajn master? ak i ne pokuavajte odbacite ga. Kompaktovanje ili popravka bilo koje replike, bilo da je dizajn master ili ne, ne radi. Da biste zamenili oteen Dizajn master, sinhronizujute preivele replike i odrediti jednu da bude novi Dizajn master. Takoe, pogledajte taku 44 Kako da oporavim izgubljeni ili oteeni Dizajn master?. 15. ta je menader replikacija? Menader replikacija je alat koji se opciono isporuuje sa Office 97 Developer Edition (ODE) (ili Microsoft Access 95 razvojnim alatima) koji nam pomae u nekim aspektima replikacije. Menader replikacija ukljuuje funkcije koje vam omoguavaju da se zakae izvrenje i izvri sinhronizacija bez nadzora i bez programiranja. Pored toga, vam omoguava da koristite indirektne sinhronizacije (vidi taku 17 ta je indirektna sinhronizaciju i kako da napravim da radi?) i Internet sinhronizacije, i obezbeuje alate za ispitivanje istorije sinhronizacija replika. Jedna od komponenti menadera replikacije je Sinhronizator (koja se zove The Transporter u Microsoft Office Access 95). Ova komponenta obavlja sinhronizacije bez nadzora koji ste postavili sa menaderom replikacije. 16. Moja RAS veza za sinhronizaciju je spora, kako da ubrzam proces sinhronizacije? Razmislite o korienju indirektne sinhronizacije kojanje opisana u taki 17: ta je indirektna sinhronizaciju i kako da napravim da radi? 17. ta je indirektna sinhronizaciju i kako da napravim da radi? Indirektna sinhronizacija zahteva korienje menadera replikacija. Kada sinhronizujete dve replike koristei indirektnu sinhronizaciju, sinhronizator na jednom raunaru razmenjuje promene sa sinhronizatorom na drugom raunaru, ime se izbegava direktno otvaranje baze podataka preko regionalne mree (WAN). -9-

Postoji nekoliko prednosti korienja ovog procesa: To u velikoj meri smanjuje mogunost korupcije baze podataka koja moe nasatati gubitkom veze u toku update-a baze. Ako indirektna sinhronizacija ne uspe, menader replikacije e jednostavno ponovo poslati bilo kakve promene na sledeem prolazu. Menader replikacija je ukljuen u Office 97. Developers Edition. Za Microsoft Access 95, to je u paketu sa Microsoft Access Developers Toolkit (ADT). Moraete da podesite menader replikacije na nivou lokalnih i udaljenih lokacija i kreirate odvojene dropboksove lokacija za svaki menader replikacija za upotrebu indirektne sinhronizacije. Ovo ukljuuje podeavanje dropboksova (ili deljenih fascikli), koji e se koristiti za skladitenje promena. Vi ne elite da zaista traite replike u deljenim fasciklama ili indirektnoa sinhronizacija e biti zamenjena direktnom sinhronizacijom. Evo koraka za podeavanje menadera replikacije na lokalnom raunaru: 1. Instalirajte ODE sa menaderom replikacija (ili koristite arobnjak Office Developers Edition Setup). 2. Napravite deljenu fasciklu, koja e biti Sinhronizatorov dropboks. (Ne stavljajte repliku u bilo koju deljenu fasciklu, ili e se indirektna sinhronizuja zaobii). 3. Konfiguriite menader replikacije za indirektno sinhronizaciju izborom opcije koja podrava indirektnu sinhronizaciju. Pratite ostale korake u arobnjaku navodei deljenu fasciklu koju ste kreirali kao dropboks, imenovanjem Sinhronizatora, i izborom Sinhronizator log fajla. 4. Otvorite menader replikacija i izaberite repliku koju upravljate. 5. Opciono podesite sinhronizacioni raspored. Na udaljenom raunaru: 6. Instalirajte menader Replikacija i kreirajte deljivu fasciklu za Sinhronizatorov dropboks, kao u koracima 1 i 2. 7. Kopirajte repliku iz lokalnog na udaljeni raunar (koristi regularno kopiranje fajlova), i stavite ga u nedeljivu fasciklu. Ako replika je u deljenoj fascikli, ili podfascikli deljene fascikle (ovo ukljuuje koren), indirektna sinhronizuja e se zaobii i direktna razmena e se odraditi. 8. Otvoreno novokopiranu repliku iz nedeljive fascikle na raunaru klijenta u menaderu replikacija, i izaberite upravljanje replikom. 9. Poveite se nazad na lokalni raunari i sinhronizujete, kako bi lokalni raunari znao za lokaciju kopije na udaljenom raunaru. - 10 -

Kad god menader replikacije upravlja replikom, on e zapisati lokaciju dropboksa u repliku. Sa udaljene veze, sada morate da obavestite ostale replike o lokaciji dropboksa, zbog ega treba da uradite 4 gornja koraka. Obavetavate ostale replike o novoj adresi, ili dropboksu, na jedan od dva naina: ili pravite novu repliku iz menadera replika, ili sinhronizovati sa postojeom replikom. 18. Mogu li da koristim DAO za izvravanje indirektne sinhronizacije? Ne. Menader replikacije mora upravljati indirektnom sinhronizacijom. Ovo poboljanje e biti u nekoj od narednih verzija Microsoft Office Access (Jet). Moete, meutim, rukovati sinhronizacijom preko Interneta pomou DAO (kada je Internet server jednom ispravno konfigurisan), to je poseban oblik indirektne sinhronizacije (za vie informacija, pogledajte taku 49, Kako da podesim replikaciju putem Interneta?). 19. Kako da napravim deliminu repliku? Najlaki nain da zaponete je da preuzmete arobnjak delimine replike sa Microsoftovog sajta i eksperimentiete! DAO se takoe moe koristiti za stvaranje delimine replike, i neophodan je za stvaranje delimind replike sa vie od jednog filtera delimine replike. Kada ste kreirali novu deliminu repliku, nemojte brisati celu repliku od koje ste je kreirali, jer deluje kao neka vrsta backupb za vreme pre nego to ste zapoeli stvaranje delimine replike. 20. arobnjak delimine replike samo mi omoguava da definiem filter delimine replike na jednu tabelu. Kako da napravim dodatne filtere replika tabela? Morate da koristite DAO da dodate filter za vie od jedne tabele u deliminoj replika tabeli. Pratite Online linkove pomo za Napravi deliminu repliku - postoje koraci i test kod.Tri osnovne metode baze podataka koje ete koristiti su ReplicaFilter, PartialReplica i PopulatePartial. Moete da popunite deliminu repliku iz dizajna majstora kada je otvoren iskljuivo, kao to je prikazano u sledeem kodu:
Sub PopulatePartialDB Dim db As Database Dim StrFullDB As String Set db = OpenDatabase("C:\MyApp.mdb", True) StrFull = "k:\direct.mdb" db.PopulatePartial StrFullDB db.Close End Sub

Za vie informacija, pogledajte neke od referenci na kraju Dodatna literatura i resursi. 21. Mogu li da napravim replikaciju sa Microsoft SQL Serverom i Microsoft Access? Moete podesiti replikaciju u jednom pravcu iz SQL Servera na ODBC DSN, to moe biti Microsoft Access baza podataka. SQL Server koristi objavi i pretplati se replikacije gde se baza podataka objavljuje, ili replikuje, informacije pretplatnika baze podataka. Nema dvosmerne - 11 -

heterogene replikacije na raspolaganju u ovom trenutku potraite ga u narednim verzijama Microsoft Access i SQL Server. 22. Zato je mom izvetaju replike istekao rok? Kako mogu da ga popravim? Ako je va replika izraena pomou DAO ili menadera replikacije, podrazumevan period isteka je 60 dana. Ako je replika kreirana kroz UI, podrazumevan period isteka je 1000 dana. Naalost, datum isteka nije dostupan DAO. Morate da koristite menader replikacije da promenite datum isteka. Ako nemate menader replikacije instaliran, uvek moete da jednostavno otvorite dizajn master i sinhronizujete sa replikom, iako je izvetaj istekao. Naravno, ovo nee raditi ako ste napravili promene u dizajnu da istekla replika nikada ne prima. Ako je to sluaj, onda Access baza podataka nee biti u mogunosti da dve replike imaju istu emu, a istekla replika nikada nee moi da se sinhronizuje sa ostalim replikama ponovo. 23. Mogu li da kreiram MDE za upotrebu sa replikacijama? Da. Meutim, replicirane baze podataka ne moe da se konvertuje u MDE. Baze podataka u MDE formatu moe da se konvertuje u repliciranu bazu podataka. Da biste konvertovali repliciranu bazu podataka u MDE format bi zahtevalo konvertovanje baze podataka u nerepliciranu bazu podataka, kao to je opisano u taki 39: Mogu li da koristim replikaciju sa Visual Source bezbedno? 24. Mogu li da uvozim/izvoz podatke iz replicirane baze podataka? Da. Samo koristite standardne procese za uvoz/izvoz. Ako uvezete u ne-dizajn master repliku, i kreirate novu tabelu, neete moi da je replicirate. Svaka nova tabela mora da bude stvorena u dizajn masteru, kako bi se replicirala. 25. Zato se pojavljuje konflikt kada sinhronizujem svoje replike? Jer je vie od jedne replike aurirala iste podatke od poslednje sinhronizacije. 26. Kako da izbegnem (ili barem smanjim) konflikt podataka? Najbolji nain da se smanje sukobi je da se prvenstveno sprei da se deavaju. Mogli bi da napite itavu knjigu na ovu temu, ali evo nekoliko primera kako moe da se izbegnu ili smanje konflikti: 1. Dodavanje novog zapisa umesto izmene postojeih. Na primer, kod praenja zaliha, umesto jednog polja koje sadri koliinu, kreiramo tabelu evidencije koja sadri listu promena. Na ovaj nain, kada se dve razliite osobe smanje koliinu iste stavke, neete dobiti sukob za njih dvoje to su menjali isti zapis. 2. Podela zapisa kada razliiti korisnici vre izmene razliita polja u istom zapisu. Podelom ovakvih polja u dve tabele sa 1:1 odnosom izmeu njih, moete izbei konflikte u sluajevima gde su razliita polja u istoj tabeli menjana. - 12 -

3. Kreiranje pametnijeg rasporeda sinhronizacije.Opte pravilo je da podesite raspored za sinhronizaciju na osnovu nain na koji aplikacija radi. Ako jedna replika sadri podatke koji e druga morati odmah da vidi, vaa aplikacija treba da sinhronizacije odmah. Ovim se izbegavaju potencijalni konflikti da neko drugim menja isti zapisu pre nego to se promena propagira. Takoe e vam pomoi da izbegnete ljute kupce koji se pitaju zato su dali nekome promenu adrese i zato moraju da ponovo daju nekom drugom! 27. Kako Microsoft Office Access reava konflikte sinhronizacije? Najee aurirana replika dobija. Drugim reima, ako aurirate zapis 5 puta u jednoj replici, i 2 puta u drugoj replici, replika gde je zapis auriran 5 puta pobeuje. Svaka promena zapisa rauna kao jedno auriranje, bez obzira na to koliko polja je ukljueno. Samo replika koja gubi e boditi tabelu konflikta. U sluaju nereenog rezultata, replika sa najniim ReplicaID pobeuje. ID replike se dodeljuje interno - ne moete menjati ReplicaID za repliku. Jedini nain da se garantuje da e jedna replika imati nii ReplicaID kreiranja je kreiranje obe replike u istoj sesiji Jet ili Microsoft Office Access. Kada ovo uradite, prva kreirana e imati nii ReplicaID. 28. Kako da spreim greke replikacije podataka? Brisanje, ponovo dodavanja ili menjanja Replicable svojstva tabela nee popraviti osnovni problem. Razmislite o ovim faktora da smanjite greke u dizajnu: Kada pokrenete promene u dizajnu na replici, ne sme biti otvorenih tabela u toj replici. Budite sigurni da ne koristite vezanu formu, kojs moe da dri otvorenu tabelu, to e blokirati uspenu replikaciju. Sinhronizujte sve replike pre nego to napravite jo neku restriktivniju promenu validacije na nivou tabele (TLV) pravila. Nakon to ste napravili promene, sinhronizujte sve replike ponovo u najkraem moguem roku da se smanjila mogunost da je neko u meuvremenu uneo podatke koji razbijaju novo pravilo. Koristite gornja pravila za druge promene ema koje su restriktivnije, kao to su smanjenje maksimalnog broj znakova polja, promena odnosa iz nesprovodivog u sprovodivi referencijalni integritet, dodajui jedinstveni indeks ili bilo koju drugu promenu, gde neko moe se kri novo pravilo u replici u isto vreme kada dodajete pravilo u dizajn master. Kompakt DM dva puta pre pokretanja sinhronizacije. Koristite primarne kljueve koji su ili teko ili nemogue da korisnici dve razliite replike dupliraju, da bi se izbegla greka Duplikat primarnog kljua.

- 13 -

29. Kada sepojavi greka podataka, kako mogu da je se oslobodim? Pogledaete MSisSchemaProb, lokalnu tabelu u replici u neskrivenim sistemskim tabelama (Tools/Options/View ...). To obino daje detalje o prirodi problema. Moraete da uklonite problematian element iz replike, a zatim da je ponovo sinhronizujete sa DM. Na primer, ako je zapis u ovoj tabeli prijavljuje greku duplikat primarnog kljua, moraete da promenite neki od primarnih kljueva i zatim ponovo sinhronizujete replike. 30. Da li postoji nain da kreiram svoj menader sukoba replikacija? To je prilino mogue. Pogledajte Access 97 Developer's Handbook od Litwin, Getz, Gilbert za vie detalja o nekoliko prilagoenih rutina menadera sukoba. 31. Da li e replikacija radi sa Banian Vines i LANtastic? Naalost, ove mree nisu podrane za Microsoft Office Access replikacije u ovom trenutku. 32. Saveti za reavanje problema za Novell mree Jedan od problema moe biti da je klijent raunar pokree Windows ili Windows NT i koristi Novell Client. Ako je tako, onda uitajte Microsoft klijent. Ako je Microsoft klijent instaliran, zatim proverite da li je instalirana SR1 zakrpa za Windows 95, koji ukljuuje auriranu verziju Microsoft klijenta za Novell mree. Na strani mree, proverite da je broj zapisa po vezi postavljen na 10.000 i najvei broj zapisa koje server moe da obradi postavljen na 200.000. 33. Kako da se reim greke replikacije za repliku koja vie ne postoji? Pokuaj da se sinhronizujete na putanju gde se replika nalazila. Kada sinhronizacija ne uspe, jer ne moe da pronae bazu podataka, ona e se automatski ukloniti greke ne postojee replike. Ako ste obrisali fasciklu, moda ete morati da je ponovo kreirate da bi ovo uspelo. 34. Zato se neke od mojih promene u dizajnu ne propagiraju na replike? Proverite da su replike zatvorene pre nego to pokuate da sinhronizujete promene dizajna. Kao i kod bilo sinhronizacije, kompaktujte sve replike dva puta pre sinhronizacije. Ako je problem sa kodom koji nije pokrenut, moete otvoriti bazu podataka sa /decompile iz komandne linije a zatim ponovo kompajlirate ceo kod. 35. Imam este probleme sa korupcijom baze podataka. ta da radim? Microsoft Office Access ne rukuje dobro sa sudarom podataka. Uverite se da je mrea nije neispravna, jer e to izazvati ruenje i oteenje baze podataka. Kada je replika oteena, ne moe da uestvuje u sinhronizaciji. Pre nego to pokuate da se replicirate promene dizajna, uverite se da sve vae ostale replike mogu da se sinhronizuju. Kompaktujte sve lanove pre sinhronizacije.

- 14 -

Jedan drugi predlog je da se ne kreiraju relacije izmeu tabela i da se oslanjaju na kodu i upitu za odravanje referencijalnog integriteta. Ovo moe da rei sukob na jedinstvenim indeksima lake ako ne moraju da se reavaju problemi sa relacijama. Ako sinhronizaciju vrite preko sporih WAN linija, razmislite o korienju indirektne sinhronizacije (vidi taku 17, ta je indirektna sinhronizaciju i kako da napravim da radi?) 36. Kako da uklonim mrtvu repliku? Ako pokuate da sinhronizujete sa obrisanom replikom iz Microsoft Access, i kada je Microsoft Office Access ne moe da je pronae, on e vas pitati da li elite da uklonite iz baze podataka skupa replika. Ako odgovorite potvrdno, replika bi trebalo da se vie ne pojavljuju na mapi menadera replikacije. Menader replikacija trai u tabeli MSysReplicas da kreira mapu. Ne moete sami da otvorite tabelu MSysReplicas i obriete zapisa iz nje zato to je Microsoft Office Access postavio dozvole samo za itanje. 37. Dobijam poruku o greci, MyData.mdb nije indeks u ovoj tabeli Pogledaj u zbirku indeksa TableDef objekta da odredite ispravna imena indeksa. Ovo je poznat problem korupcije u programu Microsoft Access 97. Moete preuzeti nov alat za popravku/kompaktovanje za Access 97 na Microsoft web lokaciji (www.microsoft.com). 38. Da li da koristim Briefcase menader za rukovanje replikacijama? Preporueno je da se koristi Microsoft Office Access UI, manager replikacije ili VBA/DAO. Briefcase je dobar za jednostavne replikacije, ali ima i neka ogranienja: Radie samo na raunarima koji imaju Microsoft Access instaliran i gde je Briefcase replikacija izabrana tokom instalacije. U suprotnom, jednostavno zamenjuje MDB fajl kao kopiju na osnovu datum/vreme markera fajla. Briefcase e dvosmerno sinhronizovati samo na zahtev. Ne moete da podesite raspored ili koristite DAO samo za sinhronizaciju u jednom smeru. 39. Mogu li da koristim replikaciju sa Visual Source Safe? Potrebno je da uklonite bazu podataka iz izvornog koda pre nego to ga replicirate. Moete da postavite svojstva kao to su KeepLocal na objektima koje ne elite da replicirate, tako da e biti lako da replicirate bazu podataka kada je uklonite iz izvornog koda. 40. Kako da uklonim replikacije? Ako ste na poetku i niste napravili mnogo promena podataka i objekata, postoji verovatnoa da ste napravili backup originalne baze podataka. Potraite ga u folderu gde je replika - imae isto ime kao osnovni fajl replike samo sa "BAK" ekstenzijom. Ako ste otili malo dalje od ove take, moete preuzeti arobnjak Replica To Regular sa Microsoftove web lokacije, koja e to odraditi. Ako to radite runo, potrebno je da sledite sledee korake: 1. Kreirate novu bazu podataka i uvezite sve objekte iz replike, osim tabela. - 15 -

2. Zatvorite novu bazu podataka i otvoriti repliku. Kreirajte novi upit i izaberite prvu tabelu u dijalog boksu Show Table. Dodajte sva polja, osim onih za replikaciju polja (s_Generation, s_Guid, s_Lineage), osim ukoliko se koriste u vaoj aplikaciji. Ako je tako, onda i njih dodajte. 3. Izaberite opciju upita Make Table i iskoriste sadanje ime baze podataka i ime baze podataka koju ste kreirali u koraku 1. Pokrenite upit. Ponovite ovaj postupak za svaku tabelu u bazi podataka. 4. Nakon toga ete morati da ponovo kreirate sve indekse, svojstva, i relacije koji su postojali u originalnoj replici baze podataka. 5. Kada zavrite, potrebno je da kompaktujete i popravite novu bazu podataka. Ako elite da izbegnete ponovno rekreiranje svih osobina i indeksa u tabelama, a ne smeta vam polje s_Guid, ali bi eleli druga polja da uklonite, moete da uradite sledee: 1. Moete obrisati sve relacije u bazi podataka. Morate da uradite ovaj korak zato to Access baze podataka nee dozvoliti da imate relacije koje nameu referencijalni integritet izmedju tabela replike i lokalne baze. 2. Kliknite desnim tasterom mia na svaku repliciranu tabelu, izaberite "Properties" i iskljuite "replicated" polje za potvrdu. 3. Uvezite tabele iz replike kao to ste to uradili sa drugim objektima. 4. Ponovo kreirajte relacije u bazi podataka (ili promenite njihov tip nazad na primeni referencijalni integritet). Sve osobine (kao to su InputMask, Format, Caption, itd.) i svi indeksi e i dalje biti tamo. 41. Kako da primenim mera napretka za prikaz statusa sinhronizacije? Naalost ova osobina nije dostupna programerima, tako da ne postoji nain da to uradite. Moda e ova korisna opcija biti dostupna u narednim verzijama Microsoft Office Accessa. 42. Da li da koristim alete za backup za replike? U stvari vam ne treba - replikacije sameimaju dobar mehanizam za kreiranje backupa. Koristite druge replike sa drugog diska ili raunara gde su rezerne kopije replika. Odradite sinhronizaciju na redovnoj osnovi kako bi se osiguralo minimalno vreme downloada koje je potrebno da se vrati backup replike. Opte pravilo je, koliko vremena mogu da priutite (ili va kupac) da preuzmete i ponovo kreirate podatke koje ste izgubili? Taj odgovor nam pomae u odreivanju minimalnog intervala sinhronizacije. Ukolik se replika oteti ili je izgubite usled krae ili oteenja medijima, jednostavno kreirajte novu repliku od druge replika u skupa replika. Ukoliko izgubite Dizajn master, pogledajte taku 44, "Kako da oporavim izgubljen ili oteen dizajn master?" - 16 -

43. Mogu li da kreiram repliku putem e-maila, umesto preko mree ili dial-up veze? Ne. Ova funkcija nije podrana u ovom trenutku. 44. Kako da oporavim izgubljen ili oteen dizajn master? Sinhronizujte sve replike i proverite da su sve replike aurirane. Onda izaberite jednu od njih da bude novi dizajn master. Moete da ga uinize dizajn masterom ili iz menija Replication, menadera replikacije, ili iz koda postavljanjem DesignMasterID osobine. 45. Kako mogu da izvrim prenos statusa Dizajn master na drugu repliku? Microsoft Office Access 97 omoguava prenos DM statusa korienjem korisnikog interfejsa (Tools/Replication/Synchronize Now). U dijalogu boksu Synchronize Database <dbname>, omoguiti polje za potvrdu da bi ciljana replika postala novi dizajn master. Iza scene, Access baza podataka prenosi DesignMasterID osobinu na ReplicaID osobinu ciljne replike. Sledei DAO koda pokazuje primer koji radi u Microsoft Access 97 i Microsoft Access 95. Izvor za ovaj kod je Microsoft Jet Database Engine Programmers Guide.
Sub SetNewDesignMaster(stroldDM, strNewDM) Dim dbs As Database Dim newdmdb As Database ' Open current Design Master in exclusive mode. Set dbs = OpenDatabase(stroldDM, True) ' Open database that will become the new Design Master. Set newdmdb = OpenDatabase(strNewDM) dbs.DesignMasterID = newdmdb.ReplicaID dbs.Synchronize strNewDM, dbRepImpExpChanges dbs.Close newdmdb.Close End Sub

46. Mogu li imati vie od jednog Dizajn mastera? Ovo je retko dobra ideja, osim moda za prenos DM statusa na drugu repliku za potrebe programera. Promene u dizajnu mogu raditi samo na jednoj lokaciji. Ako se ukae potreba za prenosom statusa Dizajn master na drugu repliku, pogledajte stavku 45, " Kako mogu da izvrim prenos statusa Dizajn master na drugu repliku?". Neki ljudi su pokuali da koriste replikacije sa ogranienim oblikom kontrole verzija. Iako to ne pamti istorijske informacije, dozvoljava da ograniite promene na jednog programera u jednom trenutku. in checking out jednostavno prenosi dizajn master status na repliku. Ova tehnika, meutim, nije dobra ideja osim ako sinhronizujete vrlo esto, jer moete doi u stanje gde su neke replike zbunjene o tome ko Dizajn master i kako primeniti izmene eme koje je drugi Dizajna majstor napravio. 47. Kako mogu da saznam koja replika je Dizajn master? Ako je ReplicaID jednak DesignMasterID, onda je baze podataka ije je ime prolo kao argument ove funkcije Dizajn master, kao to je prikazano u sledeem kodu: - 17 -

Public Function IsDesignMaster(strDBName) As Boolean Dim dbs As Database ' Initialize return code to False IsDesignMaster = False ' Open Database passed as argument Set dbs = OpenDatabase(strDBName) If Len(dbs.ReplicaID & "") > 0 Then If dbs.DesignMasterID = dbs.ReplicaID Then IsDesignMaster = True End If End If End Function

48. Zato ne bi trebalo da koristim replikaciju za aplikacije za obradu transakcija? Transakcije su uglavnom definisane u bazi podataka kao jedinica rada. Klasian primer bankarske aplikacije prebaciti $100.00 sa rauna tednje na tekui raun. Banka bi samo elela da transakcija uspe ako je iznos bio prebaen sa tednje i deponovan na tekui raun. Sa programske take gledita, tabela tednje klijenata zahteva poseban SQL UPDATE izraz. Zamislite uas klijenta ako je $100.00 skinuto sa tednje, a nije prebaeno na tekui raun! Ova transakcija bi trebalo da radi na osnovi sve ili nita. Drugim reima ispravke ove dve odvojene tabele treba da dovre u potpunosti ili nikako. U bankarskom okruenju, obino postoji jedna centralna baza podataka na osnovu kojih se sve transakcije (kao to su auriranje/brisanje) obrauju, osigurava doslednost i integritet podataka. Microsoft Office Access replikacije nisu dizajnirane da se koriste sa transakcijama, jer replikacija nije sistem baziran na transakcijama. Pojedinane transakcije rade na bilo kojoj replici kao transakcija za tu repliku. Samo e se rezultat transakcije kopirati drugim replikama. Srce problema je odravanje transakcionih konzistentnosti meu replikama. Kao primer za ilustraciju problema doslednosti replikacije, uzmite u obzir ove dve transakcije koje se obavljaju nad istim klijentom u dve razliite replike.
Poetno stanje tednja Tekui raun Krajnje stanje Replica A $100 ($20) $80 Replica B $100 ($20) $80

Imali bismo konflikt zapisa krajnjeg stanja na osnovu rezultata transakcije. Izvetaj svake replike ima ispravan balans, generisan u razliitim transakcijama. Ni tednja u replici A, ni tekui raun u replici B ne bi generisali konflikt zapisa jer su ispravke vrena na razliitim tabelama. Ako ste u potrazi za apsolutnim konzistentnosti transakcija, razmislite o korienju proizvoda kao to je SQL Server, koja nudi pravi listing transakcija, bolji opcije oporavka u sluaju kraha, rollback sposobnosti, bolje rukovanje potencijalnim situacijama zastoja i superioran za viekorisniki rad. - 18 -

49. Kako da podesim replikaciju putem Interneta? To je sloen proces, koji ima mnogo koraka. Postoji uputstvo na Microsoft web lokaciji koje detaljno objanjava proces. Jo jedan izvor informacija je Access 97 Developer's Handbook od Litwin, Getz, i Gilbert. 50. Mogu li uz menader replikacija da zakaem sinhronizaciju preko Interneta? Ne. Ova funkcija nije podrana za Internet sinhronizacije. Meutim, moete da izvrite sinhronizaciju preko Interneta koristei VBA/DAO (vidi sledee pitanje). 51. Kako da sinhronizujem preko Interneta koristei Visual Basic za Aplikacije kod? Metod sinhronizacije koristi sledeu sintaksu:
<database object>.Synchronize pathname, [exchange]

Prilikom sinhronizacije replike preko lokalne mree, morate navesti lokalnu putanju mree replike koju elite da sinhronizujete kao putanju argumenta. Prilikom sinhronizacije replike preko Interneta, morate navesti Uniform Resource Locator (URL) adresu Internet servera kao putanju argumenta, umesto lokalne putanje. Pored toga, morate da definiete dbRepSincInternet konstantu za razmenu argumenata. Kada obezbedite URL adresu Internet serveru, va kod ne mora da obezbedi punu putanju do replika na serveru. Na primer, ako va server na Internetu pod nazivom MyServer sadri repliku pod nazivom Northwind.mdb u deljenom folderu Scripts, trebalo bi da koristite sledeu sintaksu:
Sub SyncReplicas() Dim db As Database Set db = CurrentDb() db.Synchronize "http://MyServer", dbRepSyncInternet + dbRepImpExpChanges End Sub

52. Instalirao sam Internet Explorer 4.0 i vie ne mogu da replikujem moju Microsoft Office Access 95 aplikaciju. Ovo je poznati bag u programu Microsoft Access 95. Ako pokuate da replicirate Microsoft Access bazu podataka, dobiete sledeu poruku o greci: Microsoft Access cannot complete this operation because it can't find or initialize the dynamic-link library Msjtrclr. Oigledno, Internet Explorer 4.0 izloeni OLE problem koji se isporuuje uz Microsoft Jet Database Engine 3.0 i Briefcase menader. Nema zakrpe u trenutku pisanja ovog izvetaja. Trenutna reenja su da unapredi aplikacija u Microsoft Access 97, za upotrebu DAO da stvori skup replika i sinhronizuje, ili da koristite Briefcase replikaciju. 53. Moj Run With Owners Permissions (RWOP) upit u mojoj obezbeenoj aplikaciji nee da se replicira preko Interneta. Ovo je poznati bug - nema zakrpe. RWOP upiti mogu biti uspeno replikovani kroz direktnu razmenu; samo indirektne ili Internet razmene ne sinhronizuju RWOP upite na obezbeenoj bazi - 19 -

podataka. Reenje nije da se pokua da se sinhronizuju replike dizajna sa upitom sa Run dozvolom postavljen na vlasnika. Umesto toga, uvozi ih u svaku repliku. 54. Kako da konvertujem Microsoft Access 95 skup replika u Microsoft Access 97? 1. Sinhronizujte sve lanove u skupu replika i kompaktujte sve baze podataka. 2. Konvertujte dizajn master repliku za Microsoft Office Access 97. 3. Ponovo sinhronizujte sve ostale lanove u skupu replika. Sve replike e biti automatski nadograene na Microsoft Access 97. 55. Ako moram da koristim menader replikacija i indirektno sinhronizujem replike da li moram kupiti ODE kopiju za svakog korisnika? Ne, licenca za ODA vam omoguava da slobodno distribuiraju sve potrebne komponente replikacije.

2. Dodatni osvrti i izvori


Poglavlje 13, Majstor replikacije, Access 97 Developers Handbook, Sybex, Litvin, Getz i Gilbert. 1997. Poglavlje 7, Replikacije baza podataka Microsoft Jet Database Engine Programmer's Guide, Microsoft Press, Haught i Ferguson. 1995. Access/VB/Office Advisor, objavljuje meseno Advisor Publications.

http://www.advisor.com. SmartAccess bilten, meseno izdanje Pinnacle Publishing. http://www.pinpub.com. Nekoliko lanaka u posebno bave sa nekim naprednim temama: Dealing with Replication Conflicts, maj 1996 (Kaplan i Shanklin). Partial Replication with Jet 3.5, decembar 1996 (Kaplan i Shanklin). http://www.microsoft.com ima kompletnu listu lanaka. Pored toga, postoji novi web sajt o replikacijama, koji se nalazi na adresi: http://support.microsoft.com/support/access/content/repl/replication.asp The Replication White Paper se moe nai na: http://support.microsoft.com/download/support/mslfiles/REPLIC35.EXE ili http://www.microsoft.com/AccessDev/Articles/repjet2.htm

- 20 -

3. Sadraj
1. Replikacije baza u MS Access Upotreba, prednosti i zamke replikacije baze podataka . 1 1.1. 1.2. 1.3. 1. 2. 3. 4. Microsoft Office Access replikacije ............................................................................ 2 Konflikti sinhronizacije ............................................................................................... 3 esto postavljana pitanja o Microsoft Access Replication ..................................... 4 ta je GUID? ............................................................................................................... 4 Mogu li da koristim GUID kao primarni klju? .......................................................... 4 Zato je replikacija promenila sve moja AutoNumber polja u Random Increment? .. 4 Mogu li da koristim polje sa GUID u kriterijume za DLookup? Kao parametar u

upitima? Za pretrage? .............................................................................................................. 5 5. Zato se ponekad udni brojevi pojavljuju u mojoj padajuoj listi i kombo

boksovima?.............................................................................................................................. 5 6. 7. 8. 9. 10. 11. 12. Na koja pitanja oko dizajna treba da obratim panju pri radu sa replikacijom? ......... 5 Zato su neki od objekata dobili novo ime? ................................................................ 6 Kako mogu da sinhronizujem u jednom pravcu? ........................................................ 6 Mogu li da koristim lozinke baze podataka sa replikacijom? ..................................... 7 Kako da primenim sistem bezbednosti sa replikom? ................................................ 7 Kako da osveite povezane tabele u repliciranoj bazi podataka? ............................. 8 Kako da repliciram aplikaciju koja ima implementiranu podelu podatka i koda

MDB-a?8 13. 14. 15. 16. 17. 18. 19. 20. Kako da kompaktujem repliciranu bazu podataka? .................................................. 8 Kako da popravim oteen Dizajn master? ............................................................... 9 ta je menader replikacija? ...................................................................................... 9 Moja RAS veza za sinhronizaciju je spora, kako da ubrzam proces sinhronizacije? 9 ta je indirektna sinhronizaciju i kako da napravim da radi? ................................... 9 Mogu li da koristim DAO za izvravanje indirektne sinhronizacije? ..................... 11 Kako da napravim deliminu repliku? .................................................................... 11 arobnjak delimine replike samo mi omoguava da definiem filter delimine

replike na jednu tabelu. Kako da napravim dodatne filtere replika tabela? .......................... 11 - 21 -

21.

Mogu li da napravim replikaciju sa Microsoft SQL Serverom i Microsoft Access? 11

22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.

Zato je mom izvetaju replike istekao rok? Kako mogu da ga popravim? ............ 12 Mogu li da kreiram MDE za upotrebu sa replikacijama? ....................................... 12 Mogu li da uvozim/izvoz podatke iz replicirane baze podataka? ........................... 12 Zato se pojavljuje konflikt kada sinhronizujem svoje replike? ............................. 12 Kako da izbegnem (ili barem smanjim) konflikt podataka? ................................... 12 Kako Microsoft Office Access reava konflikte sinhronizacije? ............................ 13 Kako da spreim greke replikacije podataka? ....................................................... 13 Kada sepojavi greka podataka, kako mogu da je se oslobodim? ........................... 14 Da li postoji nain da kreiram svoj menader sukoba replikacija? ......................... 14 Da li e replikacija radi sa Banian Vines i LANtastic? ..................................... 14 Saveti za reavanje problema za Novell mree ....................................................... 14 Kako da se reim greke replikacije za repliku koja vie ne postoji? ..................... 14 Zato se neke od mojih promene u dizajnu ne propagiraju na replike? .................. 14 Imam este probleme sa korupcijom baze podataka. ta da radim? ....................... 14 Kako da uklonim mrtvu repliku? ......................................................................... 15 Dobijam poruku o greci, MyData.mdb nije indeks u ovoj tabeli Pogledaj u

zbirku indeksa TableDef objekta da odredite ispravna imena indeksa. .............................. 15 38. 39. 40. 41. 42. 43. 44. 45. 46. Da li da koristim Briefcase menader za rukovanje replikacijama? ....................... 15 Mogu li da koristim replikaciju sa Visual Source Safe? ......................................... 15 Kako da uklonim replikacije? ................................................................................. 15 Kako da primenim mera napretka za prikaz statusa sinhronizacije? ..................... 16 Da li da koristim alete za backup za replike? .......................................................... 16 Mogu li da kreiram repliku putem e-maila, umesto preko mree ili dial-up veze? 17 Kako da oporavim izgubljen ili oteen dizajn master? .......................................... 17 Kako mogu da izvrim prenos statusa Dizajn master na drugu repliku? ................ 17 Mogu li imati vie od jednog Dizajn mastera? ........................................................ 17 - 22 -

47. 48. 49. 50. 51. 52.

Kako mogu da saznam koja replika je Dizajn master? ........................................... 17 Zato ne bi trebalo da koristim replikaciju za aplikacije za obradu transakcija? .... 18 Kako da podesim replikaciju putem Interneta? ....................................................... 19 Mogu li uz menader replikacija da zakaem sinhronizaciju preko Interneta? ...... 19 Kako da sinhronizujem preko Interneta koristei Visual Basic za Aplikacije kod?19 Instalirao sam Internet Explorer 4.0 i vie ne mogu da replikujem moju Microsoft

Office Access 95 aplikaciju................................................................................................... 19 53. Moj Run With Owners Permissions (RWOP) upit u mojoj obezbeenoj aplikaciji

nee da se replicira preko Interneta. ...................................................................................... 19 54. 55. Kako da konvertujem Microsoft Access 95 skup replika u Microsoft Access 97? . 20 Ako moram da koristim menader replikacija i indirektno sinhronizujem replike da

li moram kupiti ODE kopiju za svakog korisnika? ............................................................... 20 2. 3. Dodatni osvrti i izvori ..................................................................................................... 20 Sadraj ............................................................................................................................ 21

- 23 -

You might also like