Integrita dat v Azure SQL Database

Týká se:Azure SQL Database

Microsoft je zodpovědný za správu integrity dat v Azure SQL Database. Zatímco existují tradiční techniky pro DBA pro monitorování integrity dat a obnovu po poškození databáze v SQL Server, tým Microsoft SQL vyvinul nové techniky, které některé třídy poškození řeší automaticky a bez ztráty dat. Služba využívá tyto techniky, aby se vyhnula ztrátě dat a výpadkům v případech, kdy je to možné.

Tento článek popisuje některé z těchto technik, jak fungují a jak ovlivňují zákazníky, kteří se zajímají, jaké kroky by měli podniknout k ochraně svých dat v Azure SQL Database.

Jak Microsoft spravuje integritu dat

Ochrana integrity dat v Azure SQL Database zahrnuje kombinaci technik a vyvíjejících se metod:

  • Rozsáhlé monitorování chyb integrity dat. SQL Database Engine vysílá upozornění na všechny chyby a neřešené výjimky, které naznačují obavy o integritu dat. Inženýrský tým tyto upozornění zpracovává a vyšetřuje.

  • Detekce "ztraceného zápisu" v systému I/O. Databázový engine má další funkce pro detekci nejčastější příčiny pozorovaných fyzických poškození: I/O systém "ztracených zápisů". Tato funkce sleduje zápisy stránek a jejich přidružené LSN (logaritmické sekvenční čísla). Následné čtení datové stránky z disku je porovnáno s očekávaným LSN stránky. Pokud je v LSN nesoulad mezi tím, co je na disku a co se očekává, stránka je zastaralá, což vede k okamžitému upozornění inženýrskému týmu.

  • Automatická oprava stránek. Některé servisní vrstvy poskytují repliky databází pro účely kontinuity podnikání. Služba pak využívá automatickou opravu stránek, což je podobné technologii používané ve skupinách dostupnosti. V případě, že replika nemůže stránku přečíst kvůli problémům s integritou dat, služba získá novou kopii stránky z jiné repliky a nahrazuje nečitelnou stránku bez ztráty dat nebo výpadku zákazníka.

  • Integrita dat v klidu i během přenosu. Všechny databáze ve službě jsou nastaveny tak, aby stránky ověřovaly pomocí CHECKSUM nastavení, které vypočítá kontrolní součet pro celou stránku a uloží jej do hlavičky stránky pro ověření během čtení. Transport Layer Security (TLS) se také používá pro veškerou komunikaci kromě základních kontrolních součtů na úrovni transportu poskytovaných TCP/IP.

  • Zálohování a obnovování kontrol integrity. Azure SQL Database provádí ověřování stránek jak během záloh spravovaných službou, tak při každé obnovovací operaci. Jakýkoli zjištěný problém vede k okamžitému upozornění inženýrskému týmu.

Jak Microsoft řeší incidenty týkající se integrity dat

Microsoft přistupuje k případům nesprávných výsledků nebo korupce s nejvyšší závažností. Společnost poskytuje podporu 24×7 ze všech Azure inženýrských týmů. Při řešení incidentů integrity je cílem minimalizovat nedostupnost a minimalizovat ztrátu dat.

Problémy s integritou systémových dat

Microsoft opravuje problémy, které neovlivňují dostupnost dat zákazníků nebo databáze, aniž by je o tom informoval. Příklady zahrnují problémy, které může automatická oprava stránek řešit, nebo poškození interních databázových metadat či telemetrie, které neovlivňuje zákaznická data nebo výsledky dotazů.

Problémy s integritou zákaznických dat

Když Microsoft zjistí problém s nesprávnými výsledky nebo poškozením zákaznických dat, Microsoft podnikne následující kroky:

  1. Snaží se co nejdříve kontaktovat zákazníka po potvrzeném zjištění, v souladu se zákony o ochraně soukromí.
  2. Pokud je kontakt navázán, spolupracuje přímo se zákazníkem na vysvětlení rozsahu poškození, nastínění možností obnovy a umožnění zákazníkovi vybrat si možnost, která nejlépe vyhovuje jeho aplikaci a scénáři.
  3. Kde je to možné, pomáhá zákazníkovi pochopit rozsah dopadu na jeho aplikaci, například identifikovat, zda poškození dat způsobilo, že aplikace nečekaně změnila jiná data.

Microsoft opravuje poškození dat pomocí různých metod a kroků ve spolupráci se zákazníky. Nesnaží se o opravu, která by mohla vést ke ztrátě dat bez souhlasu zákazníka. Zákazníci nemohou provádět DBCC CHECKDB opravné možnosti v Azure SQL Database, protože nelze dát databázi do SINGLE_USER režimu. Tým Microsoft SQL však může podniknout opravné kroky, včetně, ale nejen:

  • Znovu sestavte index. Například přetvořit neclusterovaný index, kde základní tabulka není také poškozená.
  • Použijte DBCC CHECKDB tak REPAIR_REBUILD , aby oprava neměla možnost ztráty dat.
  • Spusťte DBCC CHECKDB s REPAIR_ALLOW_DATA_LOSS v případech, kdy opravy mohou způsobit ztrátu dat.
  • V situacích, kdy DBCC CHECKDB nelze použít k opravě problému s integritou dat, mohou inženýři použít obnovení k určitému časovému okamžiku před vznikem problému s integritou dat, po němž následuje ruční znovuprovedení příslušných transakcí z protokolu transakcí. Příkladem této techniky je, když je transakční log poškozen způsobem, který zabraňuje automatickému přehrávání všech transakcí, ale bez poškození zákaznických dat.

Inženýrský tým provádí podrobné analýzy problémů, které vedou k nesprávným výsledkům nebo poškození dat. Tým pečlivě sleduje související opravné položky vzniklé kvůli problému. Tyto následné analýzy vedly k mnoha významným vylepšením, včetně funkce pro „ztracené zápisy“ popsané dříve.

Zákaznické kontroly integrity

Ochrana integrity dat spravovaná Microsoft poskytuje včasné odhalení nových problémů s integritou dat a opravuje je, kdykoli je to možné. Kontroly integrity iniciované zákazníkem pomocí DBCC CHECKDB poskytují dodatečnou vrstvu ochrany, protože DBCC CHECKDB představuje komplexní mechanismus detekce narušení integrity celé databáze. DBCC CHECKDBdoplňuje funkce ochrany integrity dat spravované Microsoft.

Tato šířka a hloubka detekce vyžaduje značný čas a dodatečné výpočetní a I/O zdroje během DBCC CHECKDB provádění. V důsledku toho může DBCC CHECKDB ovlivnit vaše úlohy kvůli soupeření o prostředky.

Kromě monitorování a ochrany, kterou služba poskytuje, můžete provozovat DBCC CHECKDB v libovolné frekvenci a čase, čímž vyvažujete dodatečnou ochranu integrity dat s vyšší spotřebou zdrojů.

DBCC CHECKDBnení dostupný v Azure SQL Database Hyperscale. Alternativně použijte the DBCC CHECKTABLE ('<TableName>') WITH TABLOCK pro jednotlivé tabulky v databázi.

Zpětná vazba od zákazníků a vyvíjející se metodiky

Tým inženýrů Azure SQL pravidelně přezkoumává a zlepšuje schopnosti služby v oblasti detekce problémů s integritou dat. Ačkoliv jsou chyby v integritě dat vzácné, pokud narazíte na chybu před obdržením oznámení od podpory Azure, podejte žádost o podporu.

Pokud máte zpětnou vazbu ohledně strategie integrity dat Microsoft, inženýrský tým by vás rád slyšel. Pro kontaktování inženýrského týmu s připomínkami nebo komentáři k tomuto tématu viz https://aka.ms/sqlfeedback. Vaše zpětná vazba pomáhá Microsoftu zlepšit stávající a vyvinout nové možnosti ochrany integrity dat.