Replikace Oracle

577 views

Published on

Lehký úvod a taxonomie replikace RDBMS Oracle.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
577
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
41
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Replikace Oracle

  1. 1. Replikace Konflikty Materialized view Základní replikace Multimaster replikaceREPLIKACENDBI013Jan Drozenwww.ms.mff.cuni.cz/~drozenj
  2. 2. Lokální data T SELECT * FROM T
  3. 3. Distribuovaná data SELECT * FROM T T SELECT * FROM T SELECT * FROM T SELECT * FROM T
  4. 4. Distribuovaná data - problém SELECT * FROM T T SELECT * FROM T SELECT * FROM T SELECT * FROM T
  5. 5. Replikace T T T SELECT * FROM T SELECT * FROM T
  6. 6. Replikace• replikace je technika zajišťování dostupnosti dat v distribuovaných databázových systémech.• data jsou fyzicky uložena v systému ve více kopiích (replikách) na více místech (uzlech)• k distribuovaným datům můžeme přistupovat lokálně• při zachování určité míry konzistence
  7. 7. Replikační objekty• co všechno můžeme replikovat: ▫ tabulky ▫ indexy ▫ pohledy ▫ balíky ▫ procedury, funkce ▫ typy ▫ triggery ▫ synonyma ▫ operátory
  8. 8. Jak replikovat• nereplikovat ▫ triviální• export import ▫ utiltity, CREATE TABLE AS SELECT ▫ bez dalších datových přenosů ▫ jednou a dost• Oracle Dataguard ▫ neflexibilní• zařídit replikaci sami ▫ procedurálně pomocí triggerů (PL/SQL) ▫ složité pro obecné situace
  9. 9. Database link• potřebujeme komunikovat se vzdálenou databází• spojení pomocí database linku ▫ jako client-server• CREATE [PUBLIC] DATABASE LINK name CONNECT TO user IDENTIFIED BY pass USING ‘database‘• tnsnames.ora ▫ $ORACLE_HOME/network/ADMIN
  10. 10. Typy replikací• základní ▫ basic replication ▫ jen pro čtení ▫ data proudí jedním směrem• pokročilá ▫ advanced replication ▫ přenos oběma směry ▫ Enterprise
  11. 11. Materializovaný pohled• materialized view• pohled ~ pohled na data ~ předkompilovaný optimalizovaný SQL dotaz• materializovaný pohled ~ pohled, který fyzicky obsahuje data• dříve snapshot• CREATE MATERIALIZED VIEW pohled AS SELECT …
  12. 12. Základní replikace• můžeme replikovat jenom tabulky ▫ a to jako materializované pohledy ▫ read only materialized view• slovník: ▫ zdrojová tabulka: target master table ▫ patří do databáze master definition site ▫ read-only mviews jsou v destination site• replikované mviews musí mít identifikovatelné řádky ▫ primární klíč ▫ ROWID
  13. 13. Výhody replikovaných mviews• nižší nároky na přenos dat• lepší výkon (lokální data)• data subsetting• konzistence
  14. 14. Materialized view log• proč? ▫ chceme mít v mview aktuální data• zaznamenávají změny v datech, které jsou zajímavé pro mview ▫ na úrovni řádků• přísluší master site• CREATE MATERIALIZED VIEW LOG ON tabulka TABLESPACE ts
  15. 15. Aktualizace mview• 3 metody: ▫ FAST  aktualizuje na úrovni řádků  potřebuje MV log ▫ COMPLETE  MV se kompletně vymaže znovu naplní ▫ FORCE  pokud to jde, provede se FAST, jinak COMPLETE• CREATE MATERIALIZED VIEW mv REFRESH FAST NEXT sysdate + 1 AS …
  16. 16. Refresh group• uvažme příklad: ▫ v master site máme tabulky zaměstnanec a plat, které replikujeme do destination site ▫ MV se aktualizují každé 3 minuty ▫ v destination site chce někdo přiřadit platy zaměstnancům (JOIN)  není zaručeno, že se to povede (resp. může vzniknout zaměstnanec bez platu)  protože zaměstnanci můžou být aktuální a platy budou aktuální až za 2 minuty  to protože IO cizího klíče je jen v master site• řešením jsou refresh groups ▫ pohledy v jedné skupině se aktualizují najednou
  17. 17. Příkladdbadmin@semora remoteUser@semora client@everywhereCREATE TABLE remoteTable (id INT PRIMARY KEY,zpravaVARCHAR2(255));CREATE USER remoteUser IDENTIFIED BY remoteUser;GRANT CREATE SESSION TO remoteUser;GRANT CREATE SYNONYM TO remoteUser;GRANT SELECT ON remoteTable TO remoteUser; CREATE SYNONYM remoteTable FOR dbadmin.remoteTable; CREATE PUBLIC DATABASE LINK semoraLink CONNECT TO remoteUser IDENTIFIED BY remoteUser USING semora; CREATE MATERIALIZED VIEW selectFromRemote AS SELECT * FROM remoteTable@semoraLinkINSERT INTO remoteTable VALUES (1,Hello, this is theremote table);COMMIT;
  18. 18. Pokročilá replikace• podporuje ▫ aktualizovatelné (updatable) MV ▫ zapisovatelné (writeable) MV ▫ multi-master replikaci ▫ procedurální replikaci
  19. 19. Replikační skupiny• pokud máme replikovaných objektů více než málo, je obtížné je individuálně spravovat• používají se replikační skupiny (replication groups) ▫ sdružujeme objekty, které spolu logicky souvisí• každý objekt patří do nejvýše jedné replikační skupiny• objekty z replikační skupiny mohou patřit do různých schémat
  20. 20. Updatable materialized views• jedna master tabulka podporuje neomezeně UMV• protože je ! master tabulka, všechny konflikty se řeší v jednom bodě systému• nejsou tolik náročné na zdroje• dají se použít společně s multimaster replikací• CREATE MATERIALIZED VIEW view FOR UPDATE …• a navíc přiřazením do replikační skupiny a registrací replikačního objektu do katalogu
  21. 21. Updatable materialized views
  22. 22. Writeable materialized view• jsou to MV, do kterých je možné zapisovat (DML)• ale změny se nepropagují směrem ven• po refreshi se data ztratí• vytváří se stejně jako updatable MV, ale nepřiřazují se do replikační skupiny
  23. 23. Replikační katalog• každý prvek zapojený do replikace má svůj replikační katalog• sada pohledů a slovníků s informacemi o replikačních objektech a skupinách• používá se při provádění replikace• procedury pro správu ▫ DBMS_REPCAT.CREATE_MASTER_REPGROUP  vytváří novou master group
  24. 24. Multimaster replikace• peer-to-peer• replikují se vždy všechna data• více master-site v systému, které komunikují mezi sebou• informace se aktualizují hned po dokončení transakce ▫ pokud je to možné
  25. 25. Multimaster replikace• implementována procedurálně na úrovni triggerů ▫ generují se ▫ nepoužívají se MV• umožňuje zároveň z dvou míst přistupovat (měnit) jeden záznam ▫ může dojít ke konfliktům  řeší se podle definovaných pravidel
  26. 26. Multimaster komunikace• manipulace s daty neprobíhá přímo• akce se vloží do fronty Local DB Remtoe DB odložených transakcí (deferred transaction queue) Deferred Deferred• odtud se šíří po replikační transaction transaction skupině queue DB link queue• pokud dojde k chybě (např. ztráta připojení), transakce se přesune do fronty chybových transakcí Table Table (deferred error queue) A A• replikace je pozastavena, dokud chyba není opravena INSERT INTO A…
  27. 27. Hybridní systémy• typicky se používá kombinace multi-master a single-master replikací
  28. 28. Konflikty• u asynchronní multimaster replikace může dojít ke konfliktům (kolizím) ▫ můžeme zvolit i synchronní zpracování• řeší se podle pravidel ▫ buď implicitní ▫ nebo uživatelsky definovaná• např. ▫ latest timestamp value ▫ earliest timestamp value ▫ min/max value ▫ …
  29. 29. Reference• Oracle documentation• Jiří Vytasil; Conicov Andrej – Replikace• John Garmany, Robert Freeman - Oracle Replication RAMPANT TECHPRESS, 2003• orafaq.com
  30. 30. KONECDěkuji za pozornost.

×