| Termin | Definicja |
|---|---|
| Replikacja schematu | Replikacja schematu obejmuje synchronizację struktury obiektów, niezależnie od przenoszonych danych. Na czym polega replikacja schematuReplikacja schematu oznacza odwzorowanie struktury bazy danych w innym środowisku bez konieczności kopiowania wszystkich rekordów. Synchronizowane mogą być między innymi definicje tabel, kolumn, typów danych, kluczy głównych, kluczy obcych, indeksów, ograniczeń integralności, widoków, procedur oraz wybranych funkcji. Sam proces dotyczy więc metadanych opisujących sposób organizacji danych, a nie ich bieżącej zawartości. Przykładowo, w bazie źródłowej można utworzyć tabelę Jakie elementy obejmuje synchronizacjaZakres replikacji zależy od używanego silnika bazy danych i wybranego narzędzia. Typowy proces analizuje definicje obiektów zapisane w katalogu systemowym, a następnie porównuje je ze strukturą bazy docelowej. Na tej podstawie może wygenerować instrukcje DDL, takie jak Przy odtwarzaniu schematu trzeba uwzględnić kolejność zależności. Tabela wskazywana przez klucz obcy powinna istnieć przed utworzeniem tabeli odwołującej się do niej. Podobnie widok zależny od tabel musi zostać utworzony po tych tabelach, a indeks może wymagać wcześniejszego utworzenia odpowiedniej kolumny. W większych schematach synchronizowane są także sekwencje, typy użytkownika, wyzwalacze, procedury składowane i uprawnienia, o ile dane narzędzie potrafi je eksportować oraz odtwarzać. Replikacja schematu a replikacja danychReplikacja schematu nie jest tym samym co replikacja danych. Replikacja danych przekazuje rekordy lub zmiany rekordów, na przykład operacje wstawiania, aktualizacji i usuwania. Replikacja schematu przekazuje natomiast informacje o budowie bazy. Utworzenie pustych tabel na serwerze docelowym nie powoduje automatycznego pojawienia się w nich danych, a skopiowanie rekordów do tabel o niezgodnej strukturze może zakończyć się błędem albo nieprawidłowym odwzorowaniem wartości. W praktyce oba procesy mogą być wykonywane razem, lecz powinny być kontrolowane oddzielnie. Najpierw porównuje się wersję schematu, typy kolumn, ograniczenia i zależności, a dopiero później uruchamia transfer danych. Istotne jest również rozróżnienie synchronizacji jednorazowej od ciągłej. Jednorazowy eksport tworzy określony stan struktury w danym momencie. Ciągłe śledzenie zmian wymaga mechanizmu wykrywającego modyfikacje definicji, na przykład zmianę typu kolumny, dodanie indeksu lub usunięcie ograniczenia. Kontrola zgodności i typowe problemyPrzed zastosowaniem zmian warto wykonać porównanie schematów oraz zapisać plan migracji. Należy sprawdzić, czy baza docelowa używa zgodnych typów danych, ustawień kodowania, reguł sortowania i obsługiwanych funkcji. Różnice pomiędzy silnikami mogą uniemożliwić bezpośrednie odtworzenie definicji, nawet gdy obiekty mają takie same nazwy. Problemem bywają także kolumny wymagane, wartości domyślne, automatyczne numerowanie identyfikatorów oraz ograniczenia, które nie pozwalają utworzyć obiektu w niepełnym stanie. Po replikacji należy zweryfikować wynik nie tylko przez sprawdzenie obecności tabel. Kontrola powinna objąć liczbę i typy kolumn, klucze główne, klucze obce, indeksy, widoki, wyzwalacze oraz uprawnienia. Warto również uruchomić testowe zapytania aplikacji i sprawdzić planowane operacje zapisu. Jeżeli zmiany schematu są wdrażane etapami, bezpiecznym rozwiązaniem jest przechowywanie ich w wersjonowanych skryptach migracyjnych. Pozwala to odtworzyć kolejność modyfikacji, ustalić moment powstania rozbieżności i ograniczyć zjawisko dryfu schematu, czyli stopniowego oddalania się struktury środowisk od wspólnego wzorca. |