Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Uruchomienie onlinowej replikacja Oracle -> PostgreSQL w 10 minut

Uruchomienie onlinowej replikacja Oracle -> PostgreSQL w 10 minut

W pierwszej części prezentacji pokażemy, jak w ekstremalnie krótkim czasie skonfigurować i uruchomić replikację z Oracle do PostgreSQL zaczynając zupełnie od zera.

W drugiej części prezentacji pokażemy jak replikacja działa "pod spodem" co się dzieje w replikacji od momentu wykonania zmiany w Oracle do momentu zapisu zmiany w PostgreSQL.

Przemek Biskup, DBPLUS
dbplus.pl

Tweet

More Decks by Warsaw PostgreSQL Users Group

Other Decks in Technology

Transcript

  1. Replikacja logiczna i fizyczna? 11 October, 2019 Replikacja Oracle ->

    PostgreSQL 2 Zastosowania replikacji danych? 1. Oddzielenie procesu zasilania danych od baz produkcyjnych 2. Oddzielenie pracy analityków od baz produkcyjnych 3. Konsolidacja danych 4. Upgrade baz danych z minimalną niedostępnością bazy produkcyjnej 5. Migracja danych do/z Cloud
  2. Architektura ogólna 11 October, 2019 Replikacja Oracle -> PostgreSQL 3

    Target database: ▪ Oracle ▪ MS SQL ▪ PostgreSQL Dbplus Data Replikator instalowany jest na serwerze aplikacji jako serwis Windows, łączy się on do bazy źródłowej i pobiera informację o zmianach na podstawie logów bazy danych. Wszystkie informacje o zmianach przesyłane są do bazy docelowej przez serwis Windows na serwerze aplikacji. Na potrzeby replikacji nie są wykonywane żadne bezpośrednie połączenia pomiędzy bazą danych źródłową a docelową. Windows serwer Source database: ▪ Oracle ▪ MS SQL
  3. Architektura Oracle 11 October, 2019 Replikacja Oracle -> PostgreSQL 4

    ARCHIVE LOG DBPLUS Data Replicator READER Odczyt informacji o zmianach w źródłowej bazie danych TRANSACTION MANAGER Konstruowanie transakcji. FILTER Stosowanie reguł replikacji. APPLIER Wykonywanie zmian na bazie docelowej. Local disk Target database Log Miner Source database Informacje o zmianach wykonanych na źródłowej bazie danych odczytywane są z plików REDO i ARCH. Application Server
  4. Applier równoległość 11 October, 2019 Replikacja Oracle -> PostgreSQL 6

    Schemat A Schemat B Grupa Tabel 1 A.TAB1 B.TAB2 A.TABX Grupa Tabel 2 C.TAB3 A.TAB2 A.TAB3 Sprawdż statystyki Analiza Analiza Sprawdż constraint Schema level parallelism Table level parallelism
  5. Applier optymalizacje 11 October, 2019 Replikacja Oracle -> PostgreSQL 7

    update customer set firstname = 'John' , lastname = 'McDonalds' where cust_id = 12345 update customer set firstname = :P0 , lastname = :P1 where cust_id = :P2 Insert into customer values(1,’John’,’McDonalds’… Insert into customer values(2,’Colonel’,’Chicken’… … Insert into customer values(10000,’Fredy’,’Cruger’.. Insert into customer values(:A0,:A1,:A2.. Zamiana literałów na zmienne Operacje BULK
  6. Applier optymalizacje 11 October, 2019 Replikacja Oracle -> PostgreSQL 8

    Zamiana kolejności zapytań Update tab1 set col1 = ’val1’ and col2 = ’val2’ where col3 = ’val3’ Insert into tab3 values (val1,val2… Update tab1 set col1 = ’val1’ and col2 = ’val2’ where col3 = ’val3’ Update tab1 set col1 = ’val1’ where col3 = ’val3’ Update tab1 set col1 = ’val1’ and col2 = ’val2’ where col3 = ’val3’ Insert into tab4 values (val1,val2… Delete tab1 where col1 = ’val1’ Update tab1 set col1 = ’val1’ and col2 = ’val2’ where col3 = ’val3’ Update tab1 set col1 = ’val1’ and col2 = ’val2’ where col3 = ’val3’ Update tab1 set col1 = ’val1’ and col2 = ’val2’ where col3 = ’val3’ Update tab1 set col1 = ’val1’ where col3 = ’val3’ Delete tab1 where col1 = ’val1’ Insert into tab3 values (val1,val2… Insert into tab4 values (val1,val2…
  7. Wymagania – baza źródłowa 11 October, 2019 Replikacja Oracle ->

    PostgreSQL 9 Baza Oracle: Włączony tryb archivelog oraz supplemential logging, można go włączyć następującymi poleceniami: ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS; Replikacji tabel wymaga PRIMARY KEY / UNIQUE KEY lub: ▪ Wskazania listy kolumn, gwarantujących unikalność rekordu. ▪ Dodanie własnej kolumny która będzie wypełniana sekwencją przez trigger before insert. Pakiet dbms_stats zainstalowany i dostępny dla użytkownika procesu replikacji. Dla przykładu, poniższa instrukcja dodaje kolumnę department_id oraz kolumnę manager_id w tabeli hr.departmentst do bezwarunkowej grupy logu o nazwie log_group_dep_pk: ALTER TABLE hr.departments ADD SUPPLEMENTAL LOG GROUP log_group_dep_pk (department_id, manager_id) ALWAYS;
  8. Wymagania - serwer Windows 11 October, 2019 Replikacja Oracle ->

    PostgreSQL 10 Wymagania minimalne na potrzeby testów replikacji gdy ilość replikowanych danych nie przekracza 100GB (rozumianych jako wielkość przyrostu logów bazy danych na 1 dzień): System operacyjny min. Windows Server 2008 lub nowszy (na potrzeby środowisk testowych system operacyjny może być również system min. windows 7 proffesional lub nowszy). Pozostałe wymagania: ▪ procesor: 1 CPU Intel® Core™ i5 ▪ RAM: od 16 GB ▪ dysk: około 50 GB wolnego miejsca (dysk SSD) ▪ MS Framework 4.5 Obsługiwane przeglądarki: ▪ Internet Explorer (od wersji 9) ▪ Google Chrome ▪ Mozilla FireFox ▪ Opera Dla dużych replikacji gdzie wielkość replikowanych danych wynosi ponad 1 TB zmian na dzień (rozumianych jako przyrost logu bazy danych na 1 dzień) konfiguracja serwera powinna wyglądać następująco: ▪ procesor: min. 1 CPU Intel® Core™ i5 – cztero rdzeniowy lub więcej ▪ RAM: od 16 do 64 GB ▪ dysk: około 200 GB (dysk SSD) ▪ MS Framework 4.5
  9. Ograniczenia Oracle 11 October, 2019 Replikacja Oracle -> PostgreSQL 11

    Źródłowa baza danych: Oracle od wersji 10.2 w wersji zarówno Standard jak i Enterprise. Niewspierane typy danych: ▪ ROWID ▪ UROWID ▪ REF ▪ BFILE ▪ ORDDICOM ▪ ANYDATA ▪ ANYDATASET ▪ ANYTYPE ▪ MLSLABEL ▪ URITYPE ▪ SDO_GEORASTER ▪ VARRAY (kolekcje) Wspierane od: Oracle 11.2.0.3 i wyższej ▪ XMLTYPE Oracle w wersji 12 i wyższej ▪ ADT ▪ SDO_GEOMETRY ▪ SDO_TOPO_GEOMETRY Replikowanie danych tabel z włączoną opcją NOLOGGING nie będzie możliwe, jeśli na tabeli będą wykonywane operacje typu BULK. Replikacji nie podlegają schematy systemowe.
  10. Licencjonowanie ▪ Per CPU/Core bazy źródłowej ▪ W wypadku większych

    instalacji, licencja typu Open – nielimitowana ilość replikacji w ramach podmiotu 11 October, 2019 Enter presentation title here 12 Kontakt [email protected] Lub [email protected] Dziękuje za uwagę ☺