R2 versus administrátor

Vždy, když vyjde nová verze MS SQL Serveru, mám radost a zároveň trochu obavy. Radost plyne ze všech funkcí a možností, které mi jako databázovému administrátorovi usnadní a zkvalitní práci, nicméně implementace a následná správa nových funkcionalit mi na straně druhé přináší další zátěž.

Zákazníci bývají povětšinou přísní a chtějí nasadit vše, co se jim nabízí. Vlastně se jim ani nedivím, protože já bych požadoval využití nové verze na 110%. Minimálně. Povahou jsem ale občas trochu líný, tak vždy bilancuji, zda mě v budoucnu čekají spíše pracovní přesčasy nebo vytoužené prémie.

SQL Server 2008 R2

Data-Tier Application(DAC) - nejen pro programátory

Nedávno jsem dostal od .NET vývojářů požadavek, abych nasadil soubor s příponou .dacpac na jednu konkrétní testovací databázi. S pravdou ven, neměl jsem ani potuchy, co po mě vlastně chtějí. Jít za nimi a zeptat se, to se mi opravdu nechtělo, zvláště při představě jejich jízlivých poznámek a úšklebků. A stejně jsem v hloubi duše věděl, že jde jen o přátelskou profesní zkoušku.

DAC je v krátkosti nový koncept, jak nasadit a následně povyšovat verze databází uživatelských aplikací pohodlně z jednoho místa. Jedná se vlastně o kontejner, ve kterém jsou zachyceny informace o serverových objektech i celém databázovém schématu včetně tabulek, pohledů, vložených procedur, ale i loginech a uživatelích.

Práce s takovýmto balíčkem je pak velice snadná. Nejprve je třeba konkrétní databázi zaregistrovat. Operaci provedete jednoduše z Management Studia, kde v databázových ‘tasks’ přibyla položka ‘Register as Data-tier application…’. Seznam takto zaregistrovaných databází naleznete v záložce Management/Data-tier applications. Zde už potom stačí označit zaregistrovanou databázi a kliknout v kontextovém menu na ‘Upgrade Data-tier Application’ (obr. 1).

Data-tier aplication – nasazení .dacpac balíčku
obr. 1: Data-tier aplication – nasazení .dacpac balíčku.

Velmi krátký průvodce vás požádá o soubor s příponou .dacpac a tím máte práci v podstatě hotovou. A co se vlastně stalo? Pečlivě jsem si inkriminovanou databázi před vlastním importem prohlédl, zazálohoval a po aplikaci balíčku prověřil změny. V mém případě došlo ke změně struktury některých tabulek a vložených procedur dle představ vývojářů, kteří takto přívětivě povýšili databázový model své aplikace na novou verzi.

.dacpac ale velmi snadno využijete i vy, databázoví administrátoři. Jistě jste již někdy prováděli migraci databáze z jednoho serveru na druhý. Můžete použít třeba metodu backup/restore, ale pak vám ještě zbývá celá řada prací, například s nepřenesenými loginy a obdobně. Nyní si můžete na zdrojové databázi vygenerovat .dacpac balíček (kontextové menu databáze / tasks / Extract Data-tier application) a následně jej dle výše uvedeného receptu aplikovat na obnovenou databázi. Snadno zjistíte, že se přeneslo vše potřebné.

Rád ještě doplním, že velikost balíčku je poměrně malá, protože neobsahuje vlastní data, snadno jej odešlete třeba e-mailem. Velice mě také potěšila skutečnost, že balíček se dá z obyčejného průzkumníku rozbalit. Lehce potom otevřete xml a t-sql soubory, které jsou čitelné. Nejedná se tedy o žádný blackbox, jednoduše tak zjistíte, co se bude při nasazení balíčku dít.

Bilance této technologie je tedy jednoznačná, usnadnila se mi komunikace a věčné dohadování s vývojáři a získal jsem nový nástroj pro operace, které jsem dosud musel provádět mnohem složitěji.

Utility Control Point (UCP)

Velkou část práce databázového administrátora zabírá pravidelné sledování stavu databázového stroje. Pokud máte na starosti jeden stroj, kde běží jedna až dvě uživatelské databáze, je poměrně snadné udržet si celkový přehled o stavu celého systému. Jestliže ale máte na starosti více serverů či instancí a přehršel různých databází, stane se z pravidelného sledování nepěkná rutina. Na každou instanci se musíte přihlásit, proklikat se všemi databázemi, zjištěné údaje si někam poznamenat a situaci vyhodnotit. Už jsem kolikrát šéfovi říkal, že bych potřeboval sekretářku na plný úvazek. Většina administrátorů si časem tento proces pochopitelně zjednodušuje psaním různých scriptů, tvorbou naplánovaných jobů, plnění vlastních mini warehousů, nad kterými potom dávají dohromady celou škálu reportů. Toto všechno samozřejmě je možné, ale řešení tohoto typu opět přináší celou řadu úskalí a administrátor se musí starat, aby vůbec jeho skvělý systém v systému fungoval. Řešení jmenovaných problémů přináší novinka v MS SQL 2008 R2 s názvem Utility Explorer, ve které se nachází Utility Control Point.

Utility Explorer je dostupný z Management studia. Pokud nevidíte jeho záložku vedle Object Exploreru, doporučuji ji zapnout z menu View. Prvním krokem je třeba UCP vytvořit. Na úvodní záložce nelze minout hned první odkaz. Pro založení UCP potřebujete v prvé řadě již běžící instanci SQL Serveru, kde si UCP založí svou databázi, za druhé potom přihlašovací účet pro UCP a za třetí běžící službu SQL Server Agent.

Jakmile máte UCP vytvořen, můžete poklikat na kořen vytvořeného Utility Control Pointu v Utility Exploreru a zobrazí se vám přehledová informační tabule (obr. 2), kde uvidíte, jak si na tom vaše instance stojí z hlediska místa na discích nebo utilizace procesoru. Pokud z počátku uvidíte v grafech jen samé „No data available“, nezoufejte, UCP ukládá samply každých 15 minut. Na svá první naměřená data si musíte chvíli počkat.

Utility Control Point – záložka celkového přehledu
obr. 2: Utility Control Point – záložka celkového přehledu

Za kořenem UCP se nacházejí tři záložky:

1.„Data-tier application“. Ano, správně, o této nové funkcionalitě jsme hovořili o pár odstavců výše. V této záložce máte možnost sledovat všechny vaše registrované databáze. U každé databáze si můžete nastavit svou vlastní politiku, případně ponechat politiku globální. Tak kupříkladu můžete nastavit, že pokud vaše databáze zatěžuje procesor na více jak 80%, Utility Controll point nahlásí, že je CPU serveru přetíženo. Nebo naopak, pokud bude zatížení nižší jak 20%, je server nevyužit, kontrolujete tedy oba extrémy. V přehledu záložky Data-tier application potom vidíte zelené fajfky, pokud je vše ve vámi stanovených mezích. Pokud nikoliv, ihned vidíte, u které databáze a v čem nastal problém.

2. „Managed Instances“. Tato záložka se dívá na jednotlivé přiřazené instance. Při prvním přihlášení uvidíte pouze jednu instanci SQL Serveru a to právě tu, na kterou jste umístili UCP. Přidání nové instance se provádí z kontextového menu této záložky volbou ‘Enroll Instance‘. Zadáte jméno dostupné instance a uživatelský účet. Proběhne vlastní „Enroll“ a instance je zařazena do sledování. Obdobně jako u Data-tier application můžete sledovat jednotlivé instance, jak vytěžují server nebo kupříkladu jak se plní soubory jednotlivých databází (obr. 3). Vše je vidět v grafu, což je třeba u velikosti transakčního logu určitě nejjednodušší nástroj, který vám zobrazí objem transakčního logu v čase.

Utility Control Point – přehled sledovaných instancí
obr. 3: Utility Control Point – přehled sledovaných instancí

Opět můžete nastavit jednotlivé politiky měřených veličin horní i dolní mezí. Velice oceňuji zobrazení zatížení celého serveru v porovnání se zatížením konkrétní instance.

Cílem nastavení politik je potom právě přehledové okno, kde ve vteřině zjistíte, jestli je utilizace serverů v pořádku či nikoliv.

3.“Utility Administration“. V záložce pro administraci (obr. 4) najdete vše potřebné k nastavení globálních politik, zabezpečení a nastavení UCP warehouse databáze. Velkým přínosem je nastavení doby, po jakou musí daná politika překročit hranici, aby byla vyhodnocena jako extrém. Jasně je to patrné třeba u zatížení CPU, kdy jednorázová špičková vytíženost v řádech vteřin nic neznamená, ale hodinové zatížení už ano. U nastavení UCP warehouse databáze si zvolíte, jak dlouho chcete historická data uchovávat.

Utility Control Point – globální politiky sledovaných instancí
obr. 4: Utility Control Point – globální politiky sledovaných instancí

Z předešlého je patrné, že UCP je výborný nástroj, který slouží k přehledu stavu většího množství instancí MS SQL Serverů, i když doporučuji tento nástroj použít už u jedné instance s větším množstvím databází. Osobně bych do UCP zařadil větší množství sledovaných veličin tak, abych mohl provádět kompletní sledování SQL serverů přímo z UCP. UCP může být dobrým rozhodovacím mechanizmem při nasazení Hyper-V a využití Live Migration (další z novinek R2). Určitě jej oceníte při sledování vytíženosti serverů a následném rozhodování o koupi nového hardware - tentokrát ale budete moci váš úsudek manažerům podložit i pěkným reportem a všichni dobře vědí, jak manažeři mají rádi grafy. Dalších využití UCP je celá řada.

Celková bilance je tedy opět velmi pozitivní, přínos UCP je větší nežli nároky na správu a údržbu, a tak to mám rád.

eR dvojka nabízí i další novinky pro databázové administrátory. Dovolte mi v krátkosti jmenovat alespoň několik dalších.

Unicode Compression – Technologie komprese dat dostala nový rozměr o kompresi nad sloupci typu nchar(n) nebo nvarchar(n). Úspěšnost snížení velikosti dat závisí především na jazykové lokalizaci. Objem dat textu v angličtině může algoritmus snížit až o 50 %, což je teoretická mez, v praxi to bude trochu méně, ale výsledek je velmi znatelný. U českého jazyka jsem si vyzkoušel, že se dá v průměru dosáhnout zhruba 30 % úspory místa.

SQL Sysprep – Zrychlete instalaci databázového serveru jako celku a využijte možnost předinstalace „binárek„ s vlastní konfigurací SQL kdykoliv později. 256 jader není problém – Potřebujete mít z vašeho databázového serveru raketoplán? Nebojte se a osaďte svůj hardware až 256 jádry, R2 si s nimi poradí.

Express umí 10Gb – Majitele nejzákladnější verze MS SQL 2008 R2 Express Edition jistě velmi potěší navýšení limitu databáze ze 4 na 10 Gb.

V krátkosti jsem Vám představil několik novinek produktu MS SQL 2008 R2 z pohledu databázového administrátora. Změn a nových funkcionalit poskytuje nová verze pochopitelně mnohem více, ale myslím, že si můžete udělat zhruba obrázek, kam směřuje další vývoj tohoto produktu.

Michal Hozák, Infinity a.s.

Článek vyšel v magazínu Connect! červenec-srpen 2010, str. 44-45 http://www.infinity.cz/Stranka/napsali-o-nas