Datensicherung unter SQL Azure

SQL Azure LogoEine 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:

SELECT * FROM sys.dm_database_copies

 

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:

Export / Import BACPAC

Bei einem Klick auf den Export-Button öffnet sich folgender Dialog:

Export Database to Storage Account (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:

Export Database to Storage Account (Bestätigung)

Anschließend kann ein Dialog, zur Überwachung des Datensicherungsvorgangs, mit dem Status Knopf erreicht werden:

Export / Import Status (Anmeldung)

Export / Import Status (Log)

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:

SQL Azure Migration Wizard - Optionen

Anschließend müssen der Server Type auf "SQL Azure" umgestellt, sowie die Verbindungsdaten angegeben werden:

SQL Azure Migration Wizard - Quellserver

Daraufhin stehen alle verfügbaren SQL Azure Datenbanken zur Auswahl:

SQL Azure Migration Wizard - Quelldatenbank

Zur Datensicherung, sollten im nächsten Wizardschritt alle Datenbankobjekte ausgewählt werden:

SQL Azure Migration Wizard - Datenbankobjekte

Nach einer kleinen Zusammenfassung …

SQL Azure Migration Wizard - Zusammenfassung

… werden die Datenbankobjekte geskriptet, sowie die Daten (via BCP) extrahiert:

SQL Azure Migration Wizard - Skripterstellung

Zu Guter Letzt müssen die Verbindungdaten des Zielservers, …

SQL Azure Migration Wizard - Zielserver

… sowie die Zieldatenbank ausgewählt werden:

SQL Azure Migration Wizard - Zieldatenbank

 

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.

SQL Azure Backup - Kostenübersicht

Anschließend lassen sich die Verbindungsdaten für Quelle und Ziel eingeben:

SQL Azure Backup - Verbindungsdaten

Nachdem man auf den “Next” Pfeil geklickt hat, kann die Datensicherung gestartet werden:

SQL Azure Backup - Datensicherung starten

SQL Azure Backup - Datensicherung wird ausgeführt...

SQL Azure Backup - Datensicherung erfolgreich abgeschlossen

 


Download Weitere Informationen unter:

 

Check Also

Time Machine Backups nach Microsoft Azure

Seit einigen Jahren verwende ich eine Apple Time Capsule, um meine Time Machine Backups an einem zentralen Ort speichern zu können. Bislang hatte das für mich auch vollkommen ausgereicht. Seitdem ich jedoch immer mehr unterwegs bin, habe ich nach einer Lösung gesucht, die ich auch von unterwegs nutzen kann. In diesem Blog Post zeige ich deshalb, wie man Time Machine Backups nach Microsoft Azure machen kann.