Avatar billede mortenf Nybegynder
19. december 2003 - 10:33 Der er 3 kommentarer og
1 løsning

Replikering af DB'er

Jeg har to databaser, hvor tabeller, skemaer osv er ens. De to databaser er lokaliseret i Danmark og USA, hvor data i fremtiden skal være tilgængelige for begge grupper. Yderligere skal begge grupper have adgang til at opdatere alle data (oprettet både i DK og US). De to DB'er skal for brugerne opfattes som én DB, så data fra de to DB'er kan integreres og arbejdes på samtidig.

På stående fod kan jeg ikke give sige noget om DB's størrelse udover at der er ca 4GB datafiler og 2GB system filer. DB's har været i luften i tre år og forventes at vokse MINDRE i fremtiden.

Planen er at implementere en regelmæssig/daglig synkronisering/replikering af de to DB'er.
Pt. har de samme tabeller i de to DB sammenfaldende række/primær nøgle ID'er.


1) Hvordan sættes replikeringen op? Gerne overordnet beskrevet og vedlæg gerne links til websites eller bøger.

2) Er det et problem, at der er fælles ID'er i "samme" tabeller i de to DB'er? Eller kan man blot give/rename ID'erne (ex. DK ID'er får extension DK, og US  ext. US) eller er der en smart løsning?

3) Er replikering trivielt eller kræver det en hard-core Oracle DBA?

/Gosse
Avatar billede trer Nybegynder
19. december 2003 - 10:51 #1
Generelt:

Replikering er flere ting - hvor svært det er, afhænger af hvad brugerne skal have mulighed for. Men replikering generelt kræver ret megen indsigt og dataforståelse for at kunne løse konflikter.

Skal data flyttes mellem systemerne millisekunder efter data er opdateret (eller i samme transaktion) - så kræver det ret meget, specielt hvis data skal kunne krydsredigeres - hvis du blot skal have data over med dages/timers/minutters intervaller, så er det en anden snak.

Der findes "simple" værktøjer til den sidste slags "replikeringsløsninger" - bl.a.  DataStage, PowerMart, PowerCenter etc - eller du kan skrive et selv fra bunden i PL/SQL.

ad 1) Det kommer an på hvad slags...
ad 2) Ja - renaming er nødvendigt hvis du vil samle data i tabellerne.
ad 3) Kan kræve hardcore DBA, kræver altid dataforståelse.
Avatar billede mortenf Nybegynder
19. december 2003 - 11:38 #2
Tak for svaret - det var positivt.

Replikering skal foregå én gang dagligt (formentligt tidlig morgen i DK), hvor alle data(ændringer) replikeres.

Skal DB/server være offline for at kunne replikere data eller kan det gøres online?

/Gosse
Avatar billede trer Nybegynder
19. december 2003 - 11:47 #3
Alt skal være online - det din replikeringsløsning skal, er jo reelt set at finde alle ikke overførte rækker og overføre dem samt finde alle tidligere overførte rækker som siden er blevet opdateret og så opdatere dem plus finde evt slettede rækker og så slette dem (farlig operation - en fejl her vil kunne slette samtlige data i baserne)

Den lille historie skal så foregå begge veje.

Jeg mener at Oracel 9i har en MERGE kommando - en blanding af INSERT og UPDATE som må kunne bruges hvis man skriver replikeringsløsningen selv.
Avatar billede mortenf Nybegynder
05. januar 2004 - 12:56 #4
Tak for svarene/linkene
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester