Novinky v SQL Server 2014
- Posted by Marek Chmel
- On 14.7.2014
- In SQL Server
- 0
Prvního dubna 2014 Microsoft oficiálně vydal novou verzi databázového serveru SQL Server 2014. Připadá mi, že to není tak dlouho, co jsme popisovali novinky verze 2012 a už je zde verze nová. Dokonce necelý měsíc po oficiálním vydání už je dostupný i první cummulative update pro tuto verzi.
Jak je zvykem každá nová verze přináší několik zásadních novinek, které posouvají možnosti SQL Serveru dále. V některých oblastech se jedná o zcela nové koncepty, jako je InMemory OLTP nebo buffer pool extension. V jiných jsou to spíše příjemné a užitečné rozšíření již existujících součástí, například větší možnosti služby Resource Governor. Dnes si ukážeme, jak mnohé z těchto funkcí využít pro zvýšení výkonu, spolehlivosti a bezpečnosti SQL Serveru.
Vlastní role pro zabezpečení
A začneme rovnou u bezpečnosti. V nové verzi byla rozšířena možnost práce s rolemi na úrovni serveru. Od verze 2012 je možné vytvářet role vlastní, a u nové verze je přidáno několik oprávnění, které lze nastavit. Například tak, aby databázový administátor nemohl číst citlivé informace z databáze.
Touto sekvencí dotazů jsme nejprve vytvořili nový SQL login. Následně byla vytvořena nová role duplikující roli sysadmin, do které byl přidán login. A této roli jsme omezili možnosti pro čtení dat z databází, ale zároveň má tato role možnost například databáze zálohovat, nebo vytvářen nové loginy atd. Společně s auditem, kdy alespoň audit na úrovni serveru je dostupný již v Standard edici, je možné vyladit zabezpečení serveru opravdu tak, abychom dosáhli „least priviledge“ principu.
Zálohování do Windows Azure
Zálohování databází je běžnou součástí správy databázového serveru. V nové verzi SQL Serveru 2014 je možné zálohovat databáze nejen na disky, ale i do úložiště Windows Azure a využít tak „cloud storage“ pro uložení záloh databází.
Možnost zálohovat do Windows Azure je dostupná i pro nižší verze SQL Serveru. Výhodou takových záloh jsou nízké náklady na cloud úložiště a jednoduchá konfigurace. Navíc tyto zálohy mohou být i geograficky distribuovány a je tak zajištěna vysoká spolehlivost úložiště pro zálohy.
Nejen u Azure, ale celkově v nastavení zálohování může být použito šifrování pro zvýšení bezpečnosti záloh. Pro šifrování je potřeba mít vytvořen certifikát, podobně jako pro transparentní šifrování databáze. Bez serverového certifikátu nebude možné databázi obnovit, je proto nutné zálohovat i správně tento certifikát. Výhodou proti TDE je využití šifrování jen na úrovni zálohy, bez šifrování databáze na disku.
Integrace s Windows Azure
Cloudové služby mohou být využity i pro samotný provoz databází, ne pouze pro jejich zálohování. Integrace mezi SQL serverem a Windows Azure je poměrně značná a přímo samotné Management Studio nabízí hned dvě možnosti, jak existující databázi přenést do Windows Azure. První možností je přenést databázi do virtuálního serveru, který běží ve Windows Azure, a druhou je vytvoření Azure SQL Database, ke které se připojíme jako ke každému jinému SQL serveru. Pro obě nasazení do Azure jsou k dispozici krátcí průvodci, ve kterých je nutné vyplnit pouze informace nutné k přípojení do Windows Azure.
Integrace na Windows Azure je však mnohem silnější, v aktuální verzi můžeme Azure použít i jako úložiště pro samotné datové a log soubory databází. Pro takové využití Azure úložiště je potřeba rychlé a spolehlivé připojení k internetu. Nabízí se tedy možnost využít Azure storage například jako sekundární datový soubor pro archivní data. Samotná konfigurace má několik „ale“, není možné do Azure uložit například filestream data, u takovýchto souborů není možné v Azure zapnout georeplikace atd.
Buffer Pool Extension
Zcela nová funkce pro zvýšení výkonu serveru, která je dostupná pouze u edicí Standard a Enterprise, je buffer pool extension. Buffer pool slouží jako primární zdroj pro paměťovou alokaci v rámci serveru. Datové a index stránky jsou načítány do buffer pool při zpracování dotazů. Jsou-li tyto stránky změněny v paměti, musí být následně opět uloženy zpět na disk. V případě nedostatku paměti na serveru a také při operaci CHECKPOINT jsou tyto změněné stránky odstraněny na disk a následně, jakmile jsou potřeba pro zpracování jsou opětovně načteny do paměti. Tyto krátké, avšak frekventované, IO operace vysoce zatěžují disk náhodným přístupem k datům.
Buffer pool extension umožňuje rozšířit buffer pool o SSD disk, a získat tím větší úložiště pro paměťové stránky. Buffer manager pracuje s tímto rozšířeným poolem v konceptu cache s více úrovněmi. L1 cache je uložena v operační paměti a L2 cache právě na SSD disku. Buffer manager ukládá do L2 cache pouze tzv. clean pages, tedy paměťové stránky, které nebyly změněny. Změněné stránky (dirty pages) zůstavají uloženy pouze v paměti.
Velikost buffer extension může dosahovat až 32násobku hodnoty max_server_memory. Microsoft doporučuje poměr mezi max_server_memory a buffer pool extension mezi 1:4 až 1:8. Buffer extension má i své performance counters, kterými je možné sledovat zatížení a využití tohoto přídavného úložiště.
AlwaysOn
AlwaysOn byla do sady technologií pro vysokou dostupnost dodána až v předposlední verzi SQL Serveru 2012, a to pouze v Enterprise edici. AlwaysOn je svým způsobem kombinací mezi Database Mirroringem a Log Shippingem. AlwaysOn je možné nasadit v několika kombinacích, stejně jako u Mirroringu máme k dispozici synchronní a asynchronní režim, a podobně jako v Log Shippingu je možné databáze replikovat na více serverů. Jednou z velkých výhod těchto replik je jejich dostupnost pro čtení, která je dokonce doplněna o tzv. read-only routing. U nové verze SQL Serveru je hlavním rozšířením AlwaysOn počet replik, který se nyní zvedl na 8 a 2 z toho mohou být synchronní. I u AlwaysOn je možné využít integrace s Windows Azure a repliky mohou být uloženy i na Azure úložišti, což nám dává možnosti konfigurovat zajímavé hybridní scénáře. U sekundárních replik je nyní možné tyto readonly repliky používat i v případě, kdy primární replika není dostupná.
Resource Governor pro IO
Resource governor není zcela nová služba, u SQL serveru je k dispozici již značnou dobu. Původně bylo možné pomocí governoru omezit pamět a procesorový výkon dostupný pro jednotlivé relace připojené k serveru. Nově je možné omezit i zatížení diskového systému pomocí MAX_IOPS_PER_VOLUME, je tedy možné kontrolovat fyzické IO operace pro daný resource pool.
Závěrem
Nová verze SQL serveru přináší zajímavé novinky pro výkon, bezpečnost a také integraci na Windows Azure. V následujícíh dílech si představíme některé z dalších novikek jako je InMemory OLTP nebo práci s novými indexy.
0 comments on Novinky v SQL Server 2014