Seriál o replikaci na SQL Serveru 2012 – I. díl

Prvním dílem začíná další seriál o technologiích dostupných v SQL Serveru, tentokráte se zaměřením na replikace.

Existují tři základní druhy replikací, a všechny mají stejný cíl. Tímto cílem je duplikace dat. Nejčastěji vytváříme další kopii dat pro reporting, zálohu, ale může být využíta i pro tzv. scale-out scénář pro zvýšení výkonu. Kopie dat může být vytvořena ve stejné databázi, na stejném serveru nebo klidně ve vzdáleném datacentru. Kopie dat mohou být synchronizovány v daných intervalech, nebo udržovány v neustálé synchronizaci. Máme možnost zvolit a konfigurovat replikaci jako jednosměrnou, z jednoho serveru na druhý, nebo i obousměrnou pro přenos a synchronizaci z obou serverů.

Druhy replikací

Každý druh replikace, který je dostupný, se hodí pro odlišné scénáře. Mezi hlavní kritéria pro volbu jednotlivých možností patří frekvence změn, množství změn, velikost publikace, zdroj změny dat, ale také například latence mezi jednotlivými servery a dostupná konektivita atd.

Snapshot replikace

Snapshot replikace funguje samostaně, ale je také základem pro další dva druhy replikací a to transakční a merge replikaci, které ze snapshotu vycházejí. Při snapshot replikaci musí snapshot agent podle rozvrhu vždy vytvořit kopii replikovaných objektů (jednotlivé databázové objekty jako tabulky, pohledy atd) a tyto uložit do snapshot adresáře, do kterého mají přístup další účastníci replikace. Každý snapshot vzniká vždy na novo, je tedy náročný na systémové prostředky – čas, úložiště, procesor.

Transakční replikace

Před samotným využitím transakční replikace je nutné synchronizovat datový zdroj (objekty, schéma a dataset) s cílovým serverem pomocí prvotního snapshotu. Jakmile snapshot agent vytvoří první snapshot je nutné jej pomocí distribučního agenta přenést na synchronizované servery. Následně jsou přenášeny všechny na subscriber server všechny změny, které jsou provedené na zdrojovém serveru.

Merge replikace

Stejně jako transakční replikace i merge replikace začíná úvodním snapshotem. Následně mohou být data měněna jak na publisher, tak na subscriber serveru. Publisher server je server, který nabízí data (publikaci) pro replikace. Subscriber je server, který tuto publikaci konzumuje a na který jsou data replikována. Tuto dvojici serverů ještě doplňuje distributor, což je server, který se stará o distribuci publikací z publisher serveru na subcriber servery. Protože u merge replikace je možné data měnit jak na publisher tak na subscriber serveru a tyto změny navzájem mezi oběma rolemi replikovat, dochází zde k problémům. Je nutné vyřešit tzv. konflikt, kdy změna např. jednoho řádku v tabulce může zároveň nastat jak na straně publisher serveru, tak na straně subscriber serveru. Pro tyto případy je merge replikace vybavena mechanismy na řešení konfiktů.

Co nabídne Enterprise edice

Co se jednotlivých možností týče z licenčního hlediska, tak všechny tři druhy replikací jsou běžně dostupné v rámci edicí Standard, Business Intelligence a Enterprise. U nižších edicí je zpravidla možné konfigurovat server jako subscriber roli. Výjimku tvoří 2 funkce, které jsou dostupné pouze u edice Enterprise a to Oracle publishing, které dovoluje replikovat data z Oracle serverů. Do budoucna se dále s touto funkcionalitou však nepočítá. Pro jakékoli synchronizace v rámci nehomogenního prostředí je doporučováno SSIS řešení. Druhou funkcí dostupnou pouze u Enterprise edice je tzv. Peer to Peer transakční replikace. Jedná se o řešení nabízející vysokou škálovatelnost a vysokou dostupnost, zejména u přístupu k datům pro čtení. Data jsou synchronizována mezi několika servery a díky tomu je možné jednotlivé požadavky klientů rozdělit mezi několik nodů a tím dosáhnout vyššího výkonu aplikace.

Snapshot Replikace

Snapshot replikace může fungovat zcela samostatně, ale je také základem pro další druhy replikací. Při tvorbě snapshotu dochází ke kopii databázových objektů, dle nastavení publikace. Pokud chceme vytvořit publikaci pro replikaci, musíme v management studiu použív volbu New Publication. SQL umí vytvořit i publikaci pro Oracle servery, je tedy možné data synchronizovat i napříč platformami.

Klepněte pro větší obrázek

Po zvolení položky New publication je nutné vybrat databázi, ze které budeme replikovat data a jednotlivé objekty (tabulky, pohledy, funkce, procedury atd). U tabulek je následně možné provést vertikální a horizontální filtering, můžeme si tedy zvolit publikované sloupce a řádky, které bude možné replikovat na další servery. Po nastavení parametrů pro zabezpečení je publikace hotová a snapshot replikace připravená.

Klepněte pro větší obrázek

U vytvořené publikace je k dispozici celá škála konfiguračních parametrů, od nastavení expirace snapshotu, přes zabezpečení, možnosti uložit snapshot na FTP server a mnoho jiných.

Klepněte pro větší obrázek

Důležitou volbou, která byla v průběhu konfigurace replikace k dispozici je volba tzv. distribučního serveru. Tato konfigurace je i dostupná přímo přes management studio.

Klepněte pro větší obrázek

Distribuční server hraje klíčovou roli při přenosu dat. Na distribučním serveru jsou uložena data, která jsou připravena pro jednotlivé subscriber servery. Jedna z úloh v SQL Agentovi, která je odpovědná za vytváření snapshotů je ukládá přímo na distribuční server. Pro malé scénáře je publishing a distribuční server jeden a ten stejný, ale pro komplexní konfigurace je možné tyto role od sebe navzájem oddělit a tím také lépe hlídat zátěž na jednotlivých serverech (rolích v replikaci). Na distribučním serveru je v SQL Agentovi připravená další plánovaná úloha, která má za úkol přenést data z distribučního serveru na všechny subscriber servery. Subscriber server role je cílový server, na který replikujeme data.

Při konfiguraci subscriber serveru potřebujeme zvolit publikaci na publikačním serveru, kterou chceme na tento server replikovat.

Klepněte pro větší obrázek

Tato publikace obsahuje námi vybrané objekty z publisher serveru, tedy tabulky, pohledy, procedury, funkce, indexované pohledy atd. Jakmile vybereme cílovou databázi (máme možnost vytvořit novou přímo z konfigurace subscription)a nastavíme zabezpečení replikace, máme skoro hotovo. Snapshot replikace je plánována na zvolený interval. Všechny změny budou tedy promítnuty do cílové databáze až po uplynutí intervalu, který si zvolíme. Protože snapshot replikace zpravidla dosahuje větších velikostí je vhodné ji plánovat na takovou denní dobu, kdy jsou naše servery co nejméně zatíženy, a také kdy konektivita mezi našimi servery je dostatečná na rychlý přenost těchto dat. Každý další snapshot vždy přenáší celou publikaci (tedy zvolené objekty v databázi) nezávisle na faktu, jestli byla data od poslední tvorby snapshotu změněna, či nikoli.

Závěrem

Cílem prvního dílu bylo představit základní pojmy z oblasti replikací a popsat rozdíly mezi třemi dostupnými druhy replikací. Protože snapshot replikace je základem všech dalších replikací, ukázali jsme si základní nastavení a možnosti vytvoření publikace, subscription a možnosti distribution serveru. V dalších dílech tohoto seriálu si společně detailně představíme zbývající replikace, včetně jejich dalších nastavení.

Autor: Marek Chmel, MVP

Články ze série Microsoft TechNet nevytváří redakce Živě.cz, ale partneři programu Microsoft TechNet. Jsou publikovány v rámci mediálního partnerství Živě.cz a společnosti Microsoft.

Témata článku: Microsoft, Jimi, Ono, Server, Subscriber

Určitě si přečtěte

Operační systém běžným počítačům nedal Bill Gates, ale Gary Kildall

Operační systém běžným počítačům nedal Bill Gates, ale Gary Kildall

** Gary Kildall pochopil, že levné výpočetní čipy mohou posloužit jako univerzální počítače pro všechny ** Připravil pro ně proto první operační systém ** Později mu systém vyfoukl Microsoft a nazval ho MS DOS

23.  4.  2017 | Pavel Tronner | 56

Umělá inteligence je sice v plenkách, už teď ale přestáváme rozumět, jak vlastně funguje. To je problém

Umělá inteligence je sice v plenkách, už teď ale přestáváme rozumět, jak vlastně funguje. To je problém

** Už je to tady, lidé přestávají chápat počítače ** Systémy neuronových sítí začínají pracovat tak, že ani jejich tvůrci přesně neví, co se uvnitř děje ** Do budoucna to může být závažný problém

24.  4.  2017 | Jakub Čížek | 112

Před 35 lety měl premiéru legendární počítač ZX Spectrum. Připomeňte si „Gumáka“

Před 35 lety měl premiéru legendární počítač ZX Spectrum. Připomeňte si „Gumáka“

** Slavný osmibitový počítač Sinclair ZX Spectrum byl uveden právě před 35 lety ** Připomeňte si tento průkopnický počítač v tematických článcích ** Podívejte se, jak funguje dnes

23.  4.  2017 | Pavel Tronner | 13

Správný počítač má alespoň dva monitory. Anebo je to jinak?

Správný počítač má alespoň dva monitory. Anebo je to jinak?

** David si nedokáže představit práci bez dvou a více monitorů ** Kubovi naopak stačí jeden a ve více displejích se ztrácí ** Jaký přístup je lepší?

23.  4.  2017 | Jakub Čížek | 59

Brněnské soudy daly stop Uberu. Je to dobře, nebo krok zpět?

Brněnské soudy daly stop Uberu. Je to dobře, nebo krok zpět?

** Před několika měsíci začal Uber nabízet své služby i v Brně ** Nyní ale narazil, soudům se to totiž nelíbí ** Má sdílená ekonomika dostat zelenou?

22.  4.  2017 | Jakub Čížek | 28


Aktuální číslo časopisu Computer

Supertéma: moderní cestování

Kdy opravdu přijdou nové baterie?

Velké testy: 6 herních notebooků a 8 volantů

Recenze: AMD Ryzen řady 5