Synchronizacja danych wspólnych

Transkrypt

Synchronizacja danych wspólnych
Synchronizacja danych
wspólnych
2007-09-0706 nr
Synchronizacja danych wspólnych
Strona 2 z 7
SPIS TREŚCI
1
Synchronizacja danych wspólnych ................................................................................. 3
1.1
OPIS PROCESU SYNCHRONIZACJI (REPLIKACJI) DANYCH WSPÓLNYCH ....................................... 3
1.1.1
ZAŁOŻENIA ........................................................................................................................... 3
1.1.2
KONFIGURACJA PROCESU ...................................................................................................... 3
2.1
W YMAGANIA I OSTRZEŻENIA ................................................................................................... 3
2.2
SKŁADNIA POLECEŃ DLA PROGRAMU „REPLICATOR” ................................................................. 4
2.3
STRUKTURA PLIKU KONFIGURACJI – PLIKU XML ...................................................................... 5
Obieg: poufny
2007-09-0706 nr
Synchronizacja danych wspólnych
1
Synchronizacja danych wspólnych
1.1
Opis procesu synchronizacji (replikacji) danych wspólnych
1.1.1
Założenia
Strona 3 z 7
Mechanizm synchronizacji jest przeznaczony do pracy ciągłej /batchowej/ ondemand (raczej
często małe porcje danych niż rzadko duże porcje). Mechanizm replikacji jest rozszerzalny i otwarty
na rozwiązania dedykowane poprzez możliwość subskrybowania do procesu replikacji :


1.1.2
handlerów obsługi replikacji dla klas obiektów
par baz danych Symfonia.Common przeznaczonych do synchronizacji
Konfiguracja procesu
Proces synchronizacji to seria synchronizacji par baz danych (w wersji 2008). Konfiguracja
przechowywana jest w globalnej konfiguracji systemu. Konfiguracja ustalana jest za pośrednictwem
aplikacji replicator.exe i pliku xml o określonej strukturze.
Replikacja odbywa się BEZ respektowania (poza prawem do replikacji) uprawnień aplikacyjnych w
poszczególnych serwisach i bazach Symfonia.Common. Podsystem uprawnień wykrywa, że jest w
procesie replikacji i udziela zgody dla wszelkiej aktywności - stąd ograniczenie że tylko osoba z
uprawnieniami administratora na serwerze może uruchamiać narzędzie replikacyjne. Aplikacja
replicator.exe będzie instalowała się z częścią serwerową Symfonia.Common i domyślnie będzie
dostępna TYLKO dla grupy Administrators na komputerze wskazanym jako serwer
Symfonia.Common.
Dane/Klasy obiektów biznesowych przewidziane do synchronizacji w wersji 2008:
Kontrahenci
Pracownicy
Słowniki
Podana kolejność replikacji/synchronizacji nie jest przypadkowa. Jest wymuszana przez proces
replikacji dla każdej pary baz automatycznie na podstawie zależności pomiędzy serwisami ustalanej w
momencie inicjalizacji serwisów (kto kogo i kiedy inicjuje) niezależnie od kolejności podanej w
konfiguracji.
2
Narzędzie do wykonywania replikacji – replicator.exe
2.1
Wymagania i ostrzeżenia
Narzędzie do wykonywania replikacji baz danych używających obiektów wspólnych
systemów Symfonia Forte to konsolowa aplikacja o nazwie „replicator.exe”.
Do poprawnego wykonania (uruchomienia) narzędzia wymagane jest jego uruchomienie z
poświadczeniami Administracyjnymi w systemie Microsoft Windows.
Uwaga:
Pliki konfiguracyjne mogą zawierać hasła i loginy użytkowników bazodanowych i
aplikacyjnych, w związku z tym powinny być niedostępne dla ogółu użytkowników - administrator po
Obieg: poufny
2007-09-0706 nr
Synchronizacja danych wspólnych
Strona 4 z 7
sporządzeniu ich i zapisaniu w konfiguracji globalnej powinien usunąć pliki (xml) zawierające hasła
użytkowników.
2.2
Składnia poleceń dla programu „replicator”
Składnia poleceń dla narzędzia replikacji jest następująca:
replicator
[-p[:plik_konfiguracji [-ne | -ens] ]] |
[-r -master:serwer.baza [-ml:masterlogin -mp:masterpwd]
-slave:serwer.baza [-sl:slavelogin - sp:slavepwd] ] |
[-m:guid [-top | -bottom | -up | -down]] |
[-l] | [-c] | [-d] | [-?]
? (help)
- Opis parametrów
r (register)
Rejestracja replikacji między bazami master i slave. Do poprawnej rejestracji
nowej replikacji potrzebne jest podanie parametrów "-master" i "-slave". Inne parametry widoczne w
składni są opcjonalne.Baza źródłowa (master) i docelowa (slave) nie mogą być tymi fizycznie samymi
bazami.
-master:serwer.baza wskazanie serwera i bazy służących jako nadrzędne
(źródłowe)
-slave:serwer.baza
wskazanie serwera i bazy służacych jako podrzędne
(docelowe)
-ml:masterlogin
login użytkownika aplikacyjnego do bazy master.
domyślnie: TemporaryAULogin
-mp:masterpwd
hasło dla użytkownika aplikacyjnego do bazy master.
domyślnie: hasło dla użytkownika TemporaryAULogin
-sl:slavelogin
login użytkownika aplikacyjnego do bazy master.
domyślnie: TemporaryAULogin
-sp:slavepwd
hasło dla użytkownika aplikacyjnego do bazy master.
domyślnie: hasło dla użytkownika TemporaryAULogin
-r -master:serwer1.baza1 -slave:serwer2.baza2
-r -master:serwer1.baza1 -slave:serwer2.baza2 -ml:admin -mp:xx -sl:admin sp:xx
l (list)
- Lista zarejestrowanych baz do replikacji
replicator -l
replicator -list
d (delete)
- Wyrejestrowanie baz z listy do replikacji
replicator -d guid
replicator -delete guid
gdzie:
guid - unikalny identyfikator zarejestrowanej pary do usunięcia w postaci:
00000000-0000-0000-0000-000000000000
lub
00000000000000000000000000000000
p (replication) - Wykonanie replikacji. Jeżeli nie zostanie podany drugi parametr określający nazwę
pliku
konfiguracyjnego zawierającego parametry, zostaną użyte parametry zapisane w
konfiguracji
replikatora.
Obieg: poufny
2007-09-0706 nr
Synchronizacja danych wspólnych
Strona 5 z 7
replicator -p
replicator -replication
replicator -p:myconf.xml
ne (non
execute)
- Tylko jeżeli użyto opcji "-p:plik". Powoduje wczytanie konfiguracji replikacji z pliku
i zapamiętanie bez wykonania replikacji w tym uruchomieniu. Wyklucza się z parametrem
"-ens".
replicator -p:myconf.xml -ne
ens (execute non
save)
Tylko jeżeli użyto opcji "-p:plik". Powoduje wykonanie replikacji w/g parametrów
wskazanych
w pliku ale nie zapamiętuje ich w konfiguracji. Wyklucza się z parametrem "-ne".
replicator -p:myconf.xml -ens
c (clear)
- Usunięcie wszystkich opcji replikacji zapisanych w konfiguracji.
replicator -c
replicator -clear
m (move)
- Przesuwa replikację wskazaną poprzez "guid" w/g wskazanego parametru:
-top
na początek listy replikacji
-bottom na koniec listy replikacji
-up
pozycję wyżej (wcześniej)
-down pozycję niżej (poźniej)
Użycie parametru "-m" bez wyspecyfikowania pozycji, przesuwa wskazaną replikację na
początek (odpowiada użyciu parametru "-top").
replicator -m:00000000-0000-0000-0000-000000000000 -bottom
replicator -move:00000000-0000-0000-0000-000000000000
2.3
Struktura pliku konfiguracji – pliku XML
Parę tworzą baza Master i baza Slave nazwane tak głównie dla odróżnienia. Każda para zawiera listę
klas obiektów do replikowania ze wskazaną funkcją obsługującą. Tak też jest uruchamiany proces
replikacji/synchronizacji danych Symfonia.Common.
W sezonie 2008 są 3 metody rozwiązywania konfliktów między bazami:
1. Master zawsze wygrywa
2. Slave zawsze wygrywa
3. Nowsza dana zawsze wygrywa
Na to nakłada się sposób traktowania skasowanych rekordów:
1. Skasowany traktowany jak nieistniejący
2. Skasowany traktowany jak zmieniony (propagacja kasowania)
Ww 2 parametry są ustawialne dla każdej pary baz danych Symfonia.
Dla każdej pary baz można wybrać dane/klasy obiektów, które mają być synchronizowane. To które
Instancje obiektów są synchronizowane jest funkcjonalnością odpowiednich serwisów.
<?xml version="1.0" encoding="utf-8" ?>
Obieg: poufny
2007-09-0706 nr
Synchronizacja danych wspólnych
<!-- teskt zawarty w tej linijce to komentarz. nie ma wpływu na proces replikacji.
<!-- sluzy do oznaczenia uwag i notatek. -->
Strona 6 z 7
-->
<replicator version = "1.35.0.0">
<!-- ustawienia globalne - sa wspolne dla wszystkich zdefiniowanych procesow replikacji-->
<!-- podsekcje z tej sekcji sa uzywane w przypadku braku odpowiednich sekcji w -->
<!-- konkretnych replikacjach, natomiast w przypadku ich istnienia sa ignorowane (nie
uywane) -->
<global>
<!-- sposob traktowania elementow powtarzajcych sie w bazie 'master' i 'slave'. mozliwe
wartosci (z opisami):
"NewerWins" - Nowszy zostaje, skasowany traktowany jak zmieniony (domylnie)
"MasterWins" - Dane z mastera wazniejsze
"SlaveWins" - Dane ze slavea wazniejsze
-->
<conflictpolicy>MasterWins</conflictpolicy>
</global>
<!-- pierwszy proces replikacji, parametry 'name', 'timeout' sa opcjonalne (tutaj, dla
przykladu) -->
<replication name = "Replikacja bazy A -> B" timeout = "-1" >
<!-- konfiguracja bazy master w tej replikacji -->
<master>
<server>DROSQL\BC</server>
<database>_4darek</database>
<appuser name = "UzytkownikAplikacyjny" password = "TajneHaslo" />
</master>
<!-- konfiguracja bazy slave w tej replikacji. parametry analogicznie jak w bazie 'master'
powyzej -->
<slave>
<server>DROSQL\BC</server>
<database>_5darek</database>
<appuser name = " UzytkownikAplikacyjny " password = " TajneHaslo" />
</slave>
<!-- sposób traktowania elementów skasowanych miedzy bazami master-slave:
"DeletedAsChanged" - propagacja (elementy traktowane jako zmienione)
"DeletedAsNotExist" - elementy skasowane traktowane jak nieistniejące
-->
Obieg: poufny
2007-09-0706 nr
Synchronizacja danych wspólnych
Strona 7 z 7
<deletepolicy>DeletedAsChanged</deletepolicy>
<!-- teraz następują poszczególne replikacje obiektów wspólnych -->
<exec name = "Replikacja kontrahentów" codebase = "Symfonia.Common.Subjects"
handler =
"FContractors.Replicate" />
<exec name = "Replikacja pracowników" codebase = "Symfonia.Common.Subjects" handler =
"FEmployees.Replicate" />
<exec name = "Replikacja słownikow" codebase = "Symfonia.Common.StructTree"
handler =
"FDicts.Replicate" />
<!-- koniec pojedynczego procesu replikacji -->
</replication>
<!-- ewentualne kolejne procesy replikacji... -->
<!-- koniec wszystkich procesow replikacji -->
</replicator>
Obieg: poufny

Podobne dokumenty