Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Oracle Streams jako efektywna metoda replikacji baz danych Autor: Waldemar Sałaga Podstawowe pojęcia Replikacja danych to proces powielania informacji pomiędzy różnymi serwerami baz danych Mechanizmy powielania stosowane w bazach danych Oracle: Łączniki bazodanowe (Database Links) Migawki (Snapshots) Narzędzia Export/Import Perspektywy materializowane (Materialized Views) … Oracle Streams Co to jest Oracle Streams? Metoda stosowana począwszy od wersji 9i systemu zarządzania bazą danych Oracle Uniwersalna technologia zdarzeniowej replikacji danych pomiędzy wieloma bazami danych Oracle Pozwala na współdzielenie informacji pomiędzy bazami danych Co to jest Oracle Streams? Umożliwia m.in. budowę środowisk replikacyjnych o typologii jeden-do-jednego, jeden-do-wielu, wieledo-jednego, wiele-do-wielu, środowisk klasy SingleMaster i Multimaster, itp. Umożliwia automatyczne filtrowanie i transformowanie replikowanych operacji w każdym punkcie architektury systemu Wprowadza nową funkcjonalnośc, która jest o wiele bardziej elastyczna od stosowanych dotychczas mechanizmów replikacji oraz wykrywania i zarządzania zdarzeniami Zastosowanie Oracle Streams Replikacja Wymiana komunikatów Ładowanie hurtowni danych Migracja baz danych Powiadamianie o zdarzeniach i zarządzanie nimi Redukcja obciążenia sieci komputerowych Wspieranie mechanizmów zapobiegania awarii systemu Architektura Oracle Streams Technologie wspomagające Oracle Stream Dziennik powtórzeń (Redo Log) Obiekty LCR Row Logical Change Records (Row LCR) DDL Logical Change Records (DDL LCR) Struktury kolejkowe Oracle AQ (FIFO Oracle Advanced Queueing) Komponenty Oracle Streams Komponenty Oracle Streams Capture – pozwala na detekcję zmian dokonanych przez użytkowników poprzez operacje DDL i DML w źródłowej bazie danych Staging (Propagate) -pozwalający na składowanie i przekazywanie informacji o dokonanych zmianach w ramach jednej lub wielu baz danych Consumption (Apply) – wykonanie (aplikowanie) rozpoznanych operacji DDL i DML w systemie docelowym Prowadzi analizę plików dziennika powtórzeń w celu ekstrakcji opisów zmian DML i DDL dokonywanych przez użytkowników bazy danych Na podstawie analizy generuje obiekty Row LCR i DDL LCR Obiekty te umieszcza we wskazanej strukturze kolejkowej Może być wykorzystywany w dwóch konfiguracjach: detekcji lokalnej (Local Capture) i detekcji zdalnej (Downstream Capture) Odczytuje obiekty LCR z kolejki w systemie źródłowym i zapisuje je do kolejki w systemie docelowym Przesyłane obiekty są usuwane z kolejki w systemie źródłowym Proces ten funkcjonuje jako zadanie wsadowe po stronie systemu źródłowego Pobiera obiekty LCR ze struktury kolejkowej i wykonuje opisane w nich operacje Automatycznie wykrywa błędy Wadliwe transakcje (jej obiekty LCR) przepisuje do wyróżnionej struktury kolejkowej nazwanej kolejką błędów (Error Queue) Może podjąć próbę ponownego wykonania błędnych transakcji lub usunąć je z kolejki błędów Schemat replikacji danych Reguły filtrujące (Rules) Stosowane do implementacji selektywnej replikacji danych Są to wyrażenia logiczne, operujące na atrybutach obiektów LCR Są grupowane w tzw. zbiory reguł filtrujących (Rule Sets) Zbiory reguł filtrujących mogą być przez procesy Capture, Staging i Apply traktowane jako tzw. zbiory pozytywne (Positive Rule Sets) lub zbiory negatywne (Negative Rule Sets) Podsumowanie Oracle Streams jest interesującą technologią implementacji rozproszonej replikacji danych wykorzystującą model zdarzeniowy Polega na wykorzystaniu (konfiguracji i aktywacji) trzech komponentów systemowych – procesów Capture, Staging i Apply Jest stosowana m. in. do realizacji zadań ETL w hurtowniach danych, zabezpieczenia danych przed utratą w wyniku awarii, audytu użytkowników, itp.