Eine Datensicherung, bei einem klassischen SQL Server, sollte heutzutage keine große Herausforderung mehr darstellen.
Wie man dies allerdings unter SQL Azure realisieren kann, werde ich in diesem Blog Post vorstellen.
Maßnahmen im Microsoft Rechenzentrum
Im Gegensatz zu den SQL Servern im eigenen Rechenzentrum, muss man sich bei SQL Azure um Nichts kümmern:
-
Übliche Aufgaben, wie z.B. das Sichern des Serverbetriebssystems oder der Systemdatenbanken wird von Microsoft bereits durchgeführt.
Um genau zu sein, ist auch bei SQL Azure das Serverbetriebssystem eine VM und wird direkt von Basis-Image erzeugt. - Auch gegen mögliche Ausfälle der Hardware, hat Microsoft, mit der nötigen Redundanz, vorgesorgt.
- Jede SQL Azure Datenbank wird außerdem 3-fach repliziert – Eine Primäre und 2 Sekundäre Replikas. (Deshalb muss auch jede Tabelle einen Clustered Index enthalten…)
- Jede Transaktion wird nur dann bestätigt, wenn jede Replika die Daten erhalten hat.
- Bei einem Hardwareausfall der Primären Replika, wird automatisch auf eine der Sekundären Replikas umgeschaltet.
- Die Backups der Datenbanken werden im 5-Minuten Takt erstellt und mindestens 14 Tage aufbewahrt.
Falls dennoch SQL Azure einmal nicht zur Verfügung stehen sollte, gibt es Geld zurück.
Allerdings gibt es hierbei eine Ausnahme im SQL Azure Service Level Agreement (SLA).
Es wird keine Haftung für Ausfälle übernommen, die nicht im Einflussbereich von Microsoft liegen, wie z.B. Naturkatastrophen oder Krieg (Höhere Gewalt).
Eigene Möglichkeiten zur Datensicherung
Trotz all dieser Sicherungsmaßnahmen von Microsoft, möchte man die Möglichkeit haben, seine eigenen Datensicherungen durchführen zu können.
Hierzu gibt es verschiedene Möglichkeiten:
Die Datenbankkopie
Mit dem Service Update 4 für SQL Azure, wurde ein T-SQL Befehl hinzugefügt, um Datenbanken, die sich im selben Rechenzentrum befinden, zu kopieren.
Hierzu muss man sich zuerst mit der master Datenbank des Zielservers verbinden.
Anschließend kann der asynchrone Kopiervorgang, mittels "CREATE DATABASE … AS COPY OF …"-Befehl, gestartet werden.
Beispiel (Quelldatenbank befindet sich auf demselben Server):
CREATE DATABASE Zieldatenbank AS COPY OF Quelldatenbank
Beispiel (Quelldatenbank befindet sich auf einem Server im selben Rechenzentrum):
CREATE DATABASE Zieldatenbank AS COPY OF Quellserver.Quelldatenbank
Um die Datenbank von einem anderen Quellserver kopieren zu können, muss der verwendete Benutzer (inkl. Passwort) auf beiden Servern vorhanden sein, sowie die db_owner Rechte auf dem Quellserver und die dbmanager Rechte auf dem Zielserver inne haben.
Zur Überwachung des Kopiervorgangs, kann die sys.dm_database_copies DMV abgefragt werden:
Export in den Windows Azure Storage
Eine weitere Möglichkeit eine Datensicherung durchzuführen, ist das BACPAC Dateiformat, das mit dem SQL Server 2012 (Codename "Denali") kommen soll.
Diese Funktionalität steht bereits heute, als CTP, in SQL Azure zur Verfügung und kann über folgende Menüpunkte des Management Portals benutzt werden:
Bei einem Klick auf den Export-Button öffnet sich folgender Dialog:
Hier muss ein Benutzer des SQL Azure Servers, sowie ein Speicherort für die BACPAC-Datei (im Windows Azure Storage) angegeben werden.
Export-Auftragsbestätigung:
Anschließend kann ein Dialog, zur Überwachung des Datensicherungsvorgangs, mit dem Status Knopf erreicht werden:
Der Import einer BACPAC-Datei läuft hierbei ähnlich ab.
SQL Azure Migration Wizard
Auch der SQL Azure Migration Wizard kann zur Datensicherung genutzt werden.
Hierbei wählt man die Option "Analyze / Migrate – SQL Database" aus:
Anschließend müssen der Server Type auf "SQL Azure" umgestellt, sowie die Verbindungsdaten angegeben werden:
Daraufhin stehen alle verfügbaren SQL Azure Datenbanken zur Auswahl:
Zur Datensicherung, sollten im nächsten Wizardschritt alle Datenbankobjekte ausgewählt werden:
Nach einer kleinen Zusammenfassung …
… werden die Datenbankobjekte geskriptet, sowie die Daten (via BCP) extrahiert:
Zu Guter Letzt müssen die Verbindungdaten des Zielservers, …
… sowie die Zieldatenbank ausgewählt werden:
Red Gate – SQL Azure Backup
Abschließend möchte ich noch das kostenlose SQL Azure Backup Tool von Red Gate vorstellen.
Mit diesem Tool lassen sich sowohl die Datenbank direkt auf einen SQL Server übertragen, sowie der Export zu einem Windows Azure Storage Account durchführen.
Zu Beginn liefert SQL Azure Backup eine Übersicht, über die möglichen Windows Azure Plattform Kosten, die bei dessen Verwendung entstehen könnten.
Anschließend lassen sich die Verbindungsdaten für Quelle und Ziel eingeben:
Nachdem man auf den “Next” Pfeil geklickt hat, kann die Datensicherung gestartet werden:
Weitere Informationen unter:
|