Avatar billede kjona Nybegynder
25. oktober 2001 - 12:19 Der er 8 kommentarer

Distributed transaction replication?

Er det muligt at lave en distributed transaction i MS SQL 2000, og hvordan gør man? Problemet er at de ændringer i databasen der sker på publisheren, kun skal gemmes hvis de også kan gemmes i subscriberne, dvs. hvis transaktionen går godt.
Avatar billede torbenkoch Nybegynder
25. oktober 2001 - 21:12 #1
Tja, der er jo muligheden for at bruge transactional replication. Denne form for replikering garanterer (i vid udstrækning), at de ændringer, der er foretaget på publisher også vil blive foretaget på subscriber. Imidlertid vil der altid være et eller andet delay, som for det meste dog vil være minimalt.

Hvis denne form for delay er uhensigtsmæssig, skal man over i et eller andet med at bruge two-phase commit, hvilket er væsentligt mere besværligt. Det vil jeg ikke uddybe mere, med mindre du ønsker det...!
Avatar billede kjona Nybegynder
25. oktober 2001 - 23:01 #2
Ja jeg kender godt transactional replication, som i øvrigt allerede bruger two-phase commit, det er ikke det der er problemet. I MS SQL server 6.5 og 7.0 finder man noget der hedder distributed transaction, hvilket kun replikerer i de subscribers der er knyttet til publisheren, hvis der er forbindelse til ALLE subscribers, ellers laves der roll-back på de andre. Jeg ved at det kan lade sig gøre i MS SQL 2000, men hvordan?
Avatar billede torbenkoch Nybegynder
26. oktober 2001 - 07:56 #3
Øhm, jeg tror du bytter lidt rundt på nogle ting her. Transactional replication bruger netop ikke two-phase commit. Two-phase commit kræver, at der er 100% forbindelse mellem de involverede servere, det gør transactional replication ikke!

Distributed transactions, som jeg tænker på dem (prøv selv at slå det op i books online), bruger netop two-phase commit til at sikre, at alle involverede servere committer det samme. Men det ikke som sådan noget med replikering at gøre. I replikerings-sammenhæng er transactional replication det nærmeste man kommer dette.
Avatar billede torbenkoch Nybegynder
28. oktober 2001 - 17:25 #4
Kom til at tænke på: Måske tænker du på Immediate Updating Subscribers?

Her replikerer man på vanlig vis med f.eks. Transactional Replication fra Publisher til Subscriber, men det er muligt at opdatere data direkte på Subscriber, som så \"replikeres\" til Publisher ved hjælp af two-phase commit.

Og det hed vist nok noget andet på SQL 6.5 og 7. Men på 2000 hedder det Immediate Updating Subscribers. Slå op under \"immediate updating\" i Books Online.
Avatar billede kjona Nybegynder
28. oktober 2001 - 23:05 #5
Du har ret, det jeg kiggede på var transactional med updateable subscribers. Jeg har så fundet ud af at det bare er almindelig transactional jeg skal bruge, dvs. en skeduleret opdatering. Da jeg kun skal opdatere een gang i døgnet, ka jeg vel lige så godt bare sætte en tid på en transactional mest for at mindske størrelsen af de data der skal sendes, eller er det bedre at bruge merge?
Avatar billede torbenkoch Nybegynder
29. oktober 2001 - 09:18 #6
Hvilken retning tænker du på her? Fra Publisher til Subscriber eller den anden vej??

Hvis det er fra Publisher til Subscriber skal du bare lave en transactional som er skeduleret.

Fra Subscriber til Publisher skal du bruge merge. Immediate updating opdaterer jo med det samme, så det skal du ikke bruge, hvis det kun er en gang i døgnet (der er faktisk noget med at man kan lave en kø i forbindelse med dette, men så begynder det vist at blive langhåret).

Men du skal selvfølgelig lige overveje hvor lang tid Publisher og Subscriber må være \"out of sync\" før du vælger metode og skedulering.

Avatar billede kjona Nybegynder
06. november 2001 - 10:18 #7
-
Avatar billede kjona Nybegynder
06. november 2001 - 10:19 #8
Kan ikke give points torbenkoch, ved ikke hva der sker!!
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