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