Administrace Oracle
Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou zachyceny a uloženy lokálně před posláním a aplikováním na každou vzdálenou lokaci.
Replikace využívá distribuované databázové technologie pro sdílení dat mezi více lokalitami, ale replikované databáze a distribuované databáze jsou různé. V distribuované databázi, data jsou k dispozici na více místech, je konkrétní tabulka jen na jednom místě.
Například tabulka Zaměstnanci se nachází pouze v databázi ny.example.com, která je součástí distribuovaného databázového systému, který také obsahuje databáze hk.example.com a la.example.com. Replikace znamená, že stejná data jsou k dispozici z různých míst. U příkladu: Tabulka Zaměstnanci je k dispozici na
ny.example.com, hk.example.com i na la.example.com.
Replikace poskytuje rychlý lokální přístup ke sdíleným datům, protože vyrovnává aktivitu na více místech. Někteří uživatelé mají přístup k jednomu serveru, zatímco ostatní k jiným serverům, čímž se vyrovná zatížení všech serverů. Dále mohou uživatelé přistupovat k datům, která mají nejnižší cenu přístupu.
Materialized view je úplnou, nebo částečnou kopií cílové tabulky z jediného okamžiku. Materialized views umožňují uživatelům pracovat na podmnožině databáze, zatímco jsou odpojeni od centrálního databázového serveru. Později, když je spojení navázáno, mohou uživatelé synchronizovat svoje materialized views na požádání (on demand). Při synchronizaci materialized views se centrální databáze aktualizuje podle provedených změn a uživatelé obdrží změny, které se staly v době jejich odpojení.
Objekt replikace je databázový objekt existující na více serverech v distribuovaném databázovém systému. Replikovat se dá:
▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪
Tables Indexes Views and Object Views Packages and Package Bodies Procedures and Functions User-Defined Types and Type Bodies Triggers Synonyms Indextypes User-Defined Operators
V replikačním prostředí Oracle spravuje replikace objektů pomocí replikačních skupin. Replikační skupina je kolekce replikačních objektů. Při organizování objektů relační databáze do replikačních skupin je jednodušší spravovat více objektů najednou. Například se replikační skupiny používají na objekty nutné k podpoře konkrétní databázové aplikace. Objekty ve skupině mohou pocházet z několika databázových schémat a schéma může zahrnovat objekty, které jsou členy různých skupin. Replikovaný objekt může být členem pouze jedné skupiny.
Replikační skupiny můžou existovat na více replikačních místech. Replikační prostředí podporuje dva základní typy míst: ▪ master sites ▪ materialized view site
Jedno místo může mít oboje. Master site pro jednu replikační skupinu a materialiazed view site pro jinou replikační skupinu. Ale replikační místo nemůže mít oboje pro jednu
replikační skupinu.
udržuje úplnou kopii všech objektů v replikační skupině replikační skupina na master site je označována jako master group Všechny master site komunikují přímo mezi sebou, aby zkopírovaly změny dat nebo schémat.
obsahuje všechny nebo podmnožinu dat tabulky v master group replikační skupina je označována jako materialized view group Materialized view sites obsahují image, nebo materialized view, z tabulky dat z nějakého času. Obvykle se materialized view pravidelně synchronizuje se svým master site. Materialized views můžeme uspořádávat do skupin, a celá tato skupina provede refresh ve stejný čas, aby data byla konzistentní.
Oracle podporuje následující typy replikačních prostředí: ▪ Multimaster replication Multimaster replication Asynchronous replication
▪ Materialized view replication ▪ Multimaster and Materialized view hybrid configurations
▪ také nazývané peer-to-peer nebo n-way replication
umožňuje více místům spravovat skupiny replikačních databázových objektů každé místo v multimaster replication je master site a komunikuje s ostatními master sites aplikace mohou aktualizovat všechny replikované tabulky na všech místech
Informace o manipulaci s daty v tabulce jsou uloženy ve frontě odložených transakcí na master site, kde ke změně došlo. Tyto změny se nazývají odložené transakce. Odložené transakce jsou šířeny do ostatních zúčastněných master sites v pravidelných intervalech. Může dojít ke konfliktům, protože na stejném řádku by mohla být hodnota aktualizována na dvou různých místech v téměř stejnou dobu. Ale můžeme použít metody k vyřešení konfliktů, pokud k nim došlo.
3 master sites spravující skupiny replikovaných databázových objektů. Navzájem komunikují prostřednictvím databáze odkazů.
obsahuje úplnou nebo částečnou kopii cíle z nějakého času Výhody: ▪ povolení lokálního přístupu, který zlepšuje dobu odezvy a dostupnost ▪ snižování zátěže z master site nebo master materialized site, protože uživatelé se dotazují na lokální materialized view ▪ zvýšení bezpečnosti dat tím, že umožním replikovat jen vybrané podmnožiny cílových dat
materialized view může být ▪ read-only ▪ updatable ▪ writeable
tyto typy materialized view přinášejí další výhody k těm již zmíněným
Dovolují pouze číst data z tabulky. Další výhody: ▪ eliminuje možnost konfliktů, protože data nemohou být aktualizována ▪ podporuje komplexní materialized views příklady složitějších materialized views jsou ty, které obsahují množinové operace, nebo klauzuli „connect by“
Př.: CREATE MATERIALIZED VIEW hr.employees AS SELECT * FROM
[email protected];
Klient se může zeptat jen na čtení z materialized view. Materialized view aktualizuje změny v master tehdy, až se provede refresh
dovoluje vkládání, aktualizaci a mazání řádků z cílové tabulky vlastnosti: ▪ mohou být postupně (a rychle) refrešované ▪ aktualizace se se provádějí kaskádově na všech ostatních replikačních místech
výhody: ▪ dovoluje uživatelům dotazy a aktualizace na lokálních datech i při odpojení od master site nebo od master materialized site ▪ vyžaduje méně zdrojů než multimaster replication, a přitom podporuje aktualizaci dat. ▪ snižuje důraz na síťové zdroje, protože změny se zde dají replikovat až na požádání, zatímco multimaster rozšíří změny v pravidelných intervalech
Př.: CREATE MATERIALIZED VIEW hr.departments FOR UPDATE AS SELECT * FROM
[email protected];
Klient se může dotazovat a aktualizovat na materialized view. Může také měnit data na master. Při refresh si master a materialized view vyměňují změny.
Uživatelé mohou provádět změny na materialized view, ale tyto změny nebudou předávány na master, ale při refresh budou zahozeny.
aby materialized view byl konzistentní s master tabulkou nebo master materialized view, musí se pravidelně volat refresh Oracle má tři metody refresh: ▪ Fast refresh použije log k aktualizaci řádek změněných od posledního volání refresh
▪ Complete refresh aktualizuje vše
▪ Force refresh provede Fast refresh, pokud je to možné, jinak Complete refresh
může mít libovolný počet master sites a více materialized view sites pro každého master klíčové rozdíly mezi materialized view a replikovanými master tabulkami jsou: ▪ replikované master tabulky musí obsahovat data za celou dobu replikace ▪ Multimaster replication umožňuje replikovat po každé transakci. Materialized view replikuje po více transakcích. ▪ Pokud dojde ke konfliktu, pak detekce a řešení probíhá na master site nebo na master materialized view site
Zde jsou dva master sites, kteří udržují replikační skupiny. Master sites jsou mezi sebou propojeni.
Materialized view sites jsou zde propojeni k jedné master site.
Existuje mnoho nástrojů, které pomáhají administrátorovi a monitorují replikační prostředí. Replikační manager Oraclu poskytuje grafické uživatelské rozhraní pro správu prostředí, zatímco API replikačního managementu poskytuje programový interface pro tvorbu skriptů pro administraci replikací. Navíc informace o replikačním prostředí dává replikační katalog.
Každá master site a materialized view site v replikačním prostředí má replikační katalog. Jde o množinu datových slovníků a pohledů, které udržují administrativní informace o replikovaných objektech a replikačních skupinách daného místa. Každý server účastnící se replikací může provádět replikace objektů v replikačních skupinách s využitím informací ve svém replikačním katalogu.
Administrátorské požadavky jsou volání procedur nebo funkcí API replikačního managementu. Např. při použití replikačního manageru k vytvoření nové “master” skupiny volá manager DBMS_REPCAT.CREATE_MASTER_REPGROUP proceduru. Standardní instalace Oracle obsahuje přes 10 balíků API replikačního prostředí. Každý obsahuje několik procedur nebo funkcí. Pro spuštění mnoha z nich je nutné splnit nějaké požadavky. Např.:
▪ některé jsou vhodné jen pro spouštění jen na master site v multimaster prostředí ▪ před provedením některých administrativních funkcí s master group je nutno přerušit replikační činnost ▪ hodně záleží i na pořadí, v jakém jsou funkce a procedury volány
Replikační manager Oraclu používá API replikačního managementu pro zajištění většiny svých funkcí. Využívání replikačního managera je vhodnější než přímé volání funkcí a procedur API, protože manager: ▪ poskytuje grafické prostředí ▪ automaticky seřadí volání funkcí a procedur do správného pořadí ▪ zobrazuje návratové hodnoty funkcí a chybové soubory
V asynchronním multimaster a updatable materialized view replikačním prostředí mohou nastat replikační konflikty, když např. dvě transakce spouštěné na různých místech modifikují stejný řádek v přibližně stejném čase. Když takový konflikt nastane, je potřeba nějaký mechanismus zajišťující, že konflikt bude vyřešen v souladu s uživatelem danými pravidly a že data se změní korektně na všech místech. Replikace Oraclu nabízí několik metod na řešení konfliktů. Pokud nastane nějaká situace, kterou vestavěné mechanismy Oraclu nemohou vyřešit, uživatel má možnost vytvořit a použít svou vlastní rutinu.