Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:Azure SQL-Datenbank
Microsoft ist verantwortlich für die Verwaltung der Datenintegrität in Azure SQL-Datenbank. Während es traditionelle Techniken gibt, mit denen DBAs die Datenintegrität überwachen und Datenbankkorrumpsionen in SQL Server beheben, entwickelte das SQL-Engineering-Team von Microsoft neue Techniken, die einige Korruptionsklassen automatisch und ohne Datenverlust behandeln. Der Dienst nutzt diese Techniken, um Datenverlust und Ausfallzeiten zu vermeiden, falls dies möglich ist.
Dieser Artikel erläutert einige dieser Techniken, wie sie funktionieren und wie sie Kunden beeinflussen, die sich Sorgen machen, welche Schritte sie unternehmen sollten, um ihre Daten in Azure SQL-Datenbank zu schützen.
Wie Microsoft Datenintegrität verwaltet
Der Schutz der Datenintegrität in Azure SQL-Datenbank erfordert eine Kombination aus Techniken und sich entwickelnden Methoden:
Umfassende Überwachung von Warnmeldungen zu Datenintegritätsfehlern. Die SQL Datenbank-Engine sendet Warnungen für alle Fehler und unbehandelten Ausnahmen, die auf Datenschutzbedenken hindeuten. Das Ingenieursteam bearbeitet und untersucht diese Warnungen.
Erkennung von „Lost Writes“ im I/O-System. Die Datenbank-Engine verfügt über zusätzliche Funktionen zur Erkennung der häufigsten Ursache für beobachtete physische Korruptionsprobleme: "verlorene Schreibvorgänge" des I/O-Systems. Diese Funktion erfasst Seitenschreibvorgänge und die ihnen zugeordneten LSNs (Protokollfolgenummern). Ein anschließendes Auslesen einer Datenseite von der Festplatte wird mit der erwarteten LSN der Seite verglichen. Wenn die LSNs auf dem Datenträger nicht mit den erwarteten übereinstimmen, ist die Seite veraltet, wodurch das Engineering-Team sofort alarmiert wird.
Automatische Seitenreparatur. Einige Service-Tiers bieten Datenbank-Replikate für Geschäftskontinuitätszwecke. Der Dienst nutzt dann automatische Seitenreparatur, die der in Verfügbarkeitsgruppen verwendeten Technologie ähnelt. Falls eine Replik eine Seite aufgrund eines Datenintegritätsproblems nicht lesen kann, ruft der Service eine frische Kopie der Seite von einer anderen Replik ab und ersetzt die unlesbare Seite ohne Datenverlust oder Kundenausfall.
Datenintegrität im Ruhezustand und im Transit. Alle Datenbanken im Dienst sind so konfiguriert, dass sie Seiten mit der
CHECKSUMEinstellung verifizieren, die die Prüfsumme über die gesamte Seite berechnet und im Seitenkopf zur Verifizierung während des Lesens speichert. Transport Layer Security (TLS) wird zusätzlich zu den von TCP/IP bereitgestellten Basis-Transportkontrollsummen auch für alle Kommunikationen verwendet.Sicherungs- und Wiederherstellungsprüfungen der Integrität. Azure SQL-Datenbank führt Seitenverifizierung sowohl während serviceverwalteter Backups als auch während jeder Wiederherstellungsoperation durch. Gefundene Probleme führen zu einer sofortigen Warnung an das Ingenieurteam.
Wie Microsoft mit Datenintegritätsvorfällen umgeht
Microsoft behandelt Vorfälle mit falschen Ergebnissen oder Korruption mit höchster Schwere an. Das Unternehmen bietet 24x7-Support durch sämtliche Azure-Entwicklungsteams. Beim Umgang mit Integritätsvorfällen besteht das Ziel darin, Unverfügbarkeit zu minimieren und den Datenverlust zu minimieren.
Probleme mit der Integrität von Systemdaten
Microsoft behebt Probleme, die keine Auswirkungen auf Kundendaten oder Datenbankverfügbarkeit haben, ohne die Kunden zu informieren. Beispiele sind Probleme, die automatische Seitenreparatur beheben kann, oder Beschädigungen interner Datenbankmetadaten oder Telemetrie, die Kundendaten oder Abfrageergebnisse nicht beeinflussen.
Probleme mit der Integrität von Kundendaten
Wenn Microsoft ein Problem mit falschen Ergebnissen oder Kundendatenkorruption erkennt, ergreift Microsoft folgende Maßnahmen:
- Bemüht sich, den Kunden so schnell wie möglich nach bestätigter Entdeckung zu kontaktieren, im Einklang mit Datenschutzgesetzen.
- Wenn der Kontakt hergestellt wird, arbeitet er direkt mit dem Kunden zusammen, um das Ausmaß der Korruption zu erklären, Wiederherstellungsoptionen zu skizzieren und dem Kunden zu ermöglichen, die Option zu wählen, die am besten zu seiner Anwendung und seinem Szenario passt.
- Wo möglich, hilft es dem Kunden, das Ausmaß der Auswirkungen auf seine Anwendung zu verstehen, zum Beispiel indem festgestellt wird, ob Datenkorruption dazu geführt hat, dass die Anwendung andere Daten auf unerwartete Weise verändert hat.
Microsoft behebt Datenkorruption durch verschiedene Methoden und Schritte, die in Abstimmung mit Kunden ergriffen werden. Es wird keine Reparatur versucht, die ohne Zustimmung des Kunden zu Datenverlust führen kann. Kunden können in Azure SQL-Datenbank keine DBCC CHECKDB Reparaturoptionen nutzen, da eine Datenbank nicht in den Modus SINGLE_USER versetzt werden kann. Das Microsoft SQL-Team kann jedoch Reparaturmaßnahmen ergreifen, darunter, aber nicht beschränkt auf:
- Erstellen Sie den Index neu. Zum Beispiel kann man einen nicht geclusterten Index neu aufbauen, bei dem die Basistabelle nicht ebenfalls beschädigt ist.
- Führen Sie
DBCC CHECKDBmitREPAIR_REBUILDaus, bei dem keine Möglichkeit eines Datenverlusts durch die Reparatur besteht. - Führe
DBCC CHECKDBmitREPAIR_ALLOW_DATA_LOSSaus, wenn Reparaturen zu einem gewissen Datenverlust führen können. - In Szenarien, in denen
DBCC CHECKDBnicht zur Behebung des Datenintegritätsproblems verwendet werden kann, verwenden Ingenieure möglicherweise eine Wiederherstellung zu einem bestimmten Zeitpunkt vor dem Auftreten des Datenintegritätsproblems, gefolgt von einem manuellen erneuten Anwenden relevanter Transaktionen aus dem Transaktionsprotokoll. Ein Beispiel, bei dem diese Technik angewendet wird, ist, wenn das Transaktionsprotokoll so beschädigt ist, dass eine automatische Wiederholung aller Transaktionen verhindert wird, ohne Kundendaten zu beschädigen.
Das Ingenieurteam führt detaillierte Nachuntersuchungen zu Problemen durch, die zu falschen Ergebnissen oder Datenkorruption führen. Das Team verfolgt genau die zugehörigen Reparaturteile, die aufgrund des Problems entstanden sind. Diese Postmortems haben zu vielen wesentlichen Verbesserungen geführt, darunter die zuvor beschriebene „Lost-Writes“-Funktion.
Kundeninitiierte Integritätsprüfungen
Zusätzlich zur bestehenden Überwachung und dem Schutz des Dienstes können Sie auch von Benutzern initiierte Integritätsprüfungen als zusätzliche Schutzschicht durchführen. Zum Beispiel kann man manuell in den Datenbankangeboten ausführen DBCC CHECKDB , in denen dieser Befehl verfügbar ist.
Verwenden Sie in Azure SQL-Datenbank Hyperscale DBCC CHECKTABLE ('<TableName>') WITH TABLOCK.
Kundenfeedback und sich entwickelnde Methoden
Das Azure SQL-Ingenieurteam überprüft und verbessert regelmäßig die Fähigkeiten zur Erkennung von Datenintegritätsproblemen des Services. Obwohl Datenintegritätsfehler selten sind, eröffnen Sie einen Supportfall, wenn bei Ihnen ein Fehler auftritt, bevor Sie von Azure Support benachrichtigt werden.
Wenn Sie Feedback zur Datenintegritätsstrategie von Microsoft haben, würde das Engineering-Team gerne von Ihnen hören. Um das Ingenieurteam mit Feedback oder Kommentaren zu diesem Thema zu kontaktieren, siehe https://aka.ms/sqlfeedback. Ihr Feedback hilft Microsoft, bestehende Funktionen zu verbessern und neue Funktionen zum Schutz der Datenintegrität zu entwickeln.