Rozproszone I obiektowe systemy baz danych Dr inż. Robert Wójcik



Pobieranie 0,87 Mb.
Strona1/4
Data03.03.2018
Rozmiar0,87 Mb.
  1   2   3   4


Rozproszone i obiektowe systemy baz danych
Dr inż. Robert Wójcik

Wykład 6. Metody rozpraszania i sterowania

przepływem danych

6.1. Fragmentacja i alokacja danych


6.2. Replikacja danych
6.3. Rodzaje replikacji w wybranych systemach baz danych
6.4. Standardowa replikacja migawkowa w Oracle
6.5. Replikacja zaawansowana w Oracle
6.6. Strumienie Oracle
6.7. Transakcje rozproszone
6.8. Zapytania rozproszone

W rozproszonych systemach baz danych pojawia się problem podziału danych pomiędzy węzły, tak aby efektywność systemu była zadowalająca.


Stosowane są następujące techniki podziału:


  • Fragmentacja i alokacja danych,




  • Replikacja danych.

Wymienione techniki są implementowane w postaci różnych konfiguracji sprzętowych i programowych (np. fragmentacja pozioma, pionowa, replikacja migawkowa, transakcyjna, i inne).


Celem rozproszenia danych jest lepsze odwzorowanie struktur organizacji, dla której system został zaprojektowany oraz zwiększenie kontroli nad danymi w miejscu ich wprowadzania i użytkowania. Ponadto, rozproszenie zwiększa odporność systemu na awarie, a więc i poziom dostępności systemu.
Są jednak i wady rozproszenia danych:
- katalog systemowy bazy danych musi zawierać dodatkowe informacje o

rozmieszczeniu fragmentów bazy oraz o sposobie replikacji;


- komplikuje się sposób sterowania współbieżnością oraz mechanizmy

aktualizacji danych;


- komplikuje się testowanie oraz wykrywanie i usuwanie skutków awarii.

6.1. Fragmentacja i alokacja danych
Fragmentacja
W przypadku dużych, często używanych tabel można zmniejszyć współzawodnictwo procesów o dostęp do danych rozmieszczając je w kilku odrębnych fragmentach znajdujących się na różnych nośnikach danych. W przypadku awarii dysku z jednym fragmentem danych można korzystać z pozostałych fragmentów.
Fragmentacja umożliwia wydzielenie częściej używanych danych do osobnego fragmentu (tabeli). Taki podział danych pozwala skrócić czas odpowiedzi systemu – zwiększyć jego wydajność, dzięki równoległemu wykonywaniu operacji na różnych fragmentach tabeli.
Fragmentacja danych powinna być przeźroczysta dla użytkowników i aplikacji bazodanowych.
Alokacja
W rozproszonym systemie baz danych dane mogą być umieszczone w dowolnym jego węźle.
Problem alokacji sprowadza się do takiego rozmieszczenia danych (tabel, fragmentów), aby efektywność działania systemu w sensie zadanego kryterium oceny była optymalna.
Wykład_02 ze strony: http://wazniak.mimuw.edu.pl/index.php - systemy

rozproszone, zaawansowane systemy baz danych.



6.2. Replikacja danych
Replikacja obiektów bazy danych, tj.
- danych zawartych w tabelach,

- instrukcji SQL,

- innych elementów schematu bazy danych (perspektywy, procedury, typy

definiowane, wyzwalacze, itp.),


to proces ich powielania w więcej niż jednym miejscu.


  • Podstawowy mechanizm replikacji dotyczy powielania danych zapisanych w tabelach, co może służyć do tworzenia lokalnych kopii danych w celu zwiększenia bezpieczeństwa i odporności systemu na awarie, a także umożliwienia dostępu do wybranego fragmentu bazy danych w zdalnej lokalizacji.

Replikacja danych dotyczy tylko części bazy danych. Jest ona zazwyczaj implementowana w postaci „migawki danych”, która stanowi kopię danych, które pochodzą z wybranych fragmentów tabel źródłowych.




  • W bardziej zaawansowanych systemach replikacji oprócz tabel mogą być powielane również instrukcje (DDL i DML), a także inne obiekty schematu bazy danych (np. perspektywy, procedury i funkcje, typy zdefiniowane przez użytkownika). Obiekty te są następnie implementowane w zdalnych bazach danych, tak aby w węzłach tych znajdowały się identyczne zbiory danych oraz identyczne schematy. W szczególności, operacje DDL oraz DML (insert, update, delete), jakie zostaną wykonane w węzłach źródłowych są przesyłane i aplikowane w węzłach replikowanych.

Możliwe jest tworzenie zaawansowanych systemów replikacji, w których zmiany dokonane w jednym węźle są propagowane do:


- wszystkich węzłów podrzędnych: replikacja typu master-slave;
- wszystkich pozostałych węzłów: replikacja multimaster.
W zależności od systemu bazodanowego (MySQL, PostgreSQL, MS SQL, Oracle) mogą być replikowane różne typy obiektów bazy danych. Należą do nich:


  • tabele,

  • indeksy,

  • perspektywy i migawki,

  • procedury i funkcje,

  • wyzwalacze,

  • synonimy,

  • typy zdefiniowane przez użytkowników,

  • typy indeksowe,

  • operatory zdefiniowane przez użytkownika,

  • i inne zależne od systemu.



Sposób propagacji zmian
Zmiany dokonane w węzłach systemu replikacji mogą być propagowane w sposób:


  • synchroniczny, tj. natychmiast po wykonaniu operacji;

  • asynchroniczny, tj. odświeżenie zawartości węzłów następuje, co pewien określony czas.

W przypadku replikacji asynchronicznej może dochodzić do sytuacji, w których lokalne zaaplikowanie operacji z węzła zdalnego nie jest możliwe, gdyż mogłoby to spowodować utratę spójności lokalnego schematu węzła, lub nie istnieją dane w węźle, których dotyczy zdalna operacja (np. zostały one usunięte przez inną, lokalną transakcję). Sytuacje takie prowadzą do występowania konfliktów replikacji, które pojawiają się wówczas, gdy lokalne operacje użytkowników w węzłach replikacji dotyczą tych samych obiektów bazy danych (np. wstawianie danych do tabel, usuwanie tabel lub wierszy). Operacje te po zaaplikowaniu w węzłach zdalnych mogą powodować utratę zgodności replik, tj. utratę spójności.


Możliwe sytuacje konfliktowe:


  • konflikt aktualizacji; transakcje pochodzące z różnych węzłów środowiska, dokonują zmian tego samego rekordu w replikach, ustawiając inne wartości atrybutów;



  • konflikt unikalności; replikacja rekordu powoduje naruszenie unikalności klucza podstawowego lub klucza unikalnego (obcego) w węzłach docelowych; np. wstawienie do tej samej tablicy różnych rekordów o tym samym id);




  • konflikt usunięcia; jedna transakcja usuwa rekordy z replikowanej tabeli, podczas gdy w tym samym momencie są one modyfikowane lub usuwane przez transakcję z innego węzła.

W przypadku replikacji synchronicznej nie dochodzi do konfliktów, gdyż sama operacja przesyłania zmian do węzłów zdalnych jest częścią lokalnej transakcji, która te zmiany wprowadza. Problemem jest natomiast niedostępność węzła zdalnego. Wówczas następuje zawieszenie wszystkich lokalnych operacji w pozostałych węzłach środowiska replikacji.


Stosowanie replikacji:




  • zmniejsza ryzyko utraty danych;

  • zapewnia ciągłość pracy w przypadku wystąpienia awarii jednego z serwerów dostępne są alternatywne źródła danych – zwiększenie niezawodności i dostępności systemu;

  • pozwala na odciążenie łączy w przypadku oddalonych od siebie węzłów sieci;

  • pozwala na rozłożenie obciążenia systemu bazodanowego, wynikającego z pracy użytkowników, pomiędzy poszczególne węzły środowiska replikacji.

Replikacja umożliwia realizację mechanizmu przetwarzania danych tolerującego uszkodzenia. Na przykład, w układzie dwóch serwerów, w którym dane z serwera nadrzędnego są replikowane do serwera podrzędnego, awaria serwera nadrzędnego spowoduje przejęcie operacji czytania danych przez serwer podrzędny.




Struktura systemu po awarii serwera nadrzędnego

Za pomocą mechanizmu replikacji można tworzyć w Internecie serwery lustrzane, które są zlokalizowane po stronie odległych klientów.


Rozproszone bazy danych mają również pewne wady, wynikające z rozproszenia i replikacji danych. W szczególności:


- katalog systemowy bazy danych musi zawierać dodatkowe informacje o

rozmieszczeniu fragmentów bazy oraz sposobie replikacji;


- komplikuje się sterowanie współbieżnością wykonywania operacji;
- pojawia się problem z aktualizacją replik; w idealnym przypadku

aktualizacja powinna następować równocześnie;


- komplikuje się testowanie bazy danych oraz wykrywanie i likwidacja awarii.


  1   2   3   4


©operacji.org 2017
wyślij wiadomość

    Strona główna