Nová verze SQL Azure a zálohování databází
Před pár dny byla uvolněna nová verze SQL Azure databáze. Novinek je celá řada, jako například:
- Možnost více LiveID účtu spravujících SQL servery pro subskripci
- Podpora pro nasazení nové verze schématu a extrakci existujícího schématu ve formě Data-Tier Application (.dacpac) přímo z portálu pro správu (dosud pouze z SQL Management Studia)
- Inovované UI pro správu tabulek, pohledů a uložených procedur z portálu
Kompletní přehled novinek najdete zde – část 1 a část 2.
Nejzajímavější novinkou je ale možnost exportu/importu dat do Azure Storage. U té bych se zastavil o něco podrobněji. Databáze v SQL Azure jsou zálohovány proti všem možným druhům selhání, ale dosud chyběla možnost obnovy do určitého časového okamžiku (point-in-time restore). Tato možnost bohužel není ani v nové verzi, ale blýská se na lepší časy. Na výše uvedeném linku najdete následující obrázek pruhu nástrojů:
Pokud zajásáte při pohledu na tlačítko Restore, musím zchladit optimismus. Jedná se pravděpodobně o uniklou obrazovku z připravované příští verze (někdy koncem roku), což je samo o sobě poněkud pikantní. Nicméně k dispozici je možnost exportu a importu databázového schématu i dat do úložiště Azure Storage, zatím v podobě CTP verze. Schéma služby, která tuto funkčnost implementuje, najdete zde.
Výsledek je soubor .bacpac, který lze používat i lokálně a vytvářet tak z vašeho počítače exporty i importy SQL databází běžících v SQL Azure i na vašem SQL serveru – příslušný nástroj je rovněž v CTP verzi popsaný zde.
Pokud jste chtěli zálohovat SQL Azure do úložiště Azure Storage, bylo to dosud možné dvojím způsobem:
- Spustit výše zmíněný nástroj u sebe na počítači a získaný soubor pak uploadovat do Azure Storage (nevýhoda – platba za stažená data odpovídající přibližně velikosti databáze)
- Spuštění téže utility ve Windows Azure a nakopírování výsledku do Azure Storage v rámci serverovny (nevýhoda – nutnost platit hodiny běhu virtuálního počítače provádějícího celou operaci)
Nyní tedy můžete celou operaci spustit bez těchto dodatečných komplikací a nákladů přímo v cloudu. Považuji ovšem za svoji povinnost upozornit na jedno úskalí – nejedná se o transakční zálohu, ale o sadu export operací, tudíž takto získané soubory nemusí být transakčně konzistentní (podobně jako u všech ostatních variant exportu/importu). K tomu lze přistoupit třemi způsoby:
- Naučit se s tím žít – vzhledem k tomu, že je pravděpodobné, že tento export nikdy nepoužijete pro skutečnou obnovu, je šance reálných problémů malá a lze je zpravidla vyřešit menší editací dat
- Zastavit na nezbytnou dobu operace nad databází – buď operaci provádět v noci, kdy je šance uživatelské aktivity minimální, anebo v definovanou dobu veškeré uživatele násilně odpojit
- Používat transakčně konzistentní kopii databáze – tato možnost je jednoznačně nejlepší. Vytvoříte transakčně konzistentní kopii databáze (detaily zde). K této kopii nikdo nepřistupuje a můžete ji exportovat bez obav o transakční konzistenci. Nevýhodou jsou zvýšené náklady – za kopii platíte jako za další databázi, a to minimálně 1 den (tedy cca 0,30 USD/1 GB/1 den)
Doufám, že novou funkčnost oceníte. Do budoucna se snad můžeme těšit na opravdovou transakční obnovu do časového bodu.
Michael