Piotr Z.

Piotr Z. programista

Temat: Synchronizacja wybranych tabel

Witam,

problem jest następujący:

Na dwóch różnych serwerach SQL są takie same bazy danych. Są to 2 oddziały tej samej firmy.

W jaki sposób dokonać synchronizacji wybranej tabeli np. PRODUKTY ?

Chodzi o to by wzajemnie był synchronizowany asortyment w tych dwóch bazach w sposób automatyczny.
Robert Woźniak

Robert Woźniak Digital Advisor &
Founder

Temat: Synchronizacja wybranych tabel

Pomoże replikacja.

Model
http://technet.microsoft.com/en-us/library/ms152567%28...

Rodzaje replikacji:
http://technet.microsoft.com/en-us/library/ms152531%28...

Jest jeszcze kwestia wersji SQL Servera.
Piotr Z.

Piotr Z. programista

Temat: Synchronizacja wybranych tabel

Wersja to Microsoft SQL Server 2008 (SP1) - Standard Edition (64-bit).

No właśnie wiem, że można zaatakować temat replikacją bazy danych.

Chodzi tu o synchronizację maksymalnie 10 tabel, gdzie baza ma ich około 400.

Może istnieje inny sposób ?Piotr Z. edytował(a) ten post dnia 08.11.12 o godzinie 20:53
Robert Woźniak

Robert Woźniak Digital Advisor &
Founder

Temat: Synchronizacja wybranych tabel

>> Standard Edition nie ma replikacji. Potrzeba Enterprise Edition :( <<

Wycofuje, standard Edition posiada replikację. :) Co potwierdza Pan Paweł:
http://msdn.microsoft.com/en-us/library/cc645993%28v=s...

W zasadzie Standard posiada wszystkie podstawowe funkcjonalności SQLa.Robert Woźniak edytował(a) ten post dnia 11.11.12 o godzinie 10:48
Robert Woźniak

Robert Woźniak Digital Advisor &
Founder

Temat: Synchronizacja wybranych tabel

Hmm są jeszcze mechanizmy CDC i CDD. Nie wiem jak wygląda to w Standard Edition ale podejrzewam, że też tego nie ma. W MS SQLu masz CDC i CT czyli Change Tracking:
http://msdn.microsoft.com/en-us/library/bb933875.aspx

Możesz zrobić trigera jak małe tabele oraz odkładać dane do jakiejś tabeli MIRROR i tam Jobem synchronizować. Czyli piszesz coś samemu. Oczywiście zestaw sobie LinkServer do drugiej instancji.Robert Woźniak edytował(a) ten post dnia 09.11.12 o godzinie 09:00
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Synchronizacja wybranych tabel

Do synchronizacji jednej tabeli proponuję zastosować triggery zamiast wytaczać działa w postaci replikacji :)

Przy dwustronnej synchronizacji tabel za pomocą triggerów musisz uważać na to, aby się nie zapętliły.

Trzeba wówczas dodać zabezpieczenie w triggerze:


--Prevents Second Nested Call
IF @@NESTLEVEL>1 RETURN
Paweł B.

Paweł B. architekt baz danych
/ SQL Developer /BI
Developer

Temat: Synchronizacja wybranych tabel

2008 Standard Edition ma replikację, nie ma CDC!
http://msdn.microsoft.com/en-us/library/cc645993%28v=s...

Jeśli to tylko 10 tabel słownikowych to zamiast triggerów zaproponował bym LinkedServer i jedną prockę synchronizującą.
Piotr Z.

Piotr Z. programista

Temat: Synchronizacja wybranych tabel

Rozwiązanie z LinkedServer i Jobem z procedurą synchronizującą jest chyba najlepszym rozwizaniem tego problemu.

Za wszystkie sugestie bardzo dziękuję.

Następna dyskusja:

Synchronizacja kopii zapaso...




Wyślij zaproszenie do