Kann eine vollständige Laufwerkssicherung anstelle einer MSSQL-Datenbanksicherung verwendet werden?

7

Ich habe einen MSSQL Express-Server, der auf einer VM ausgeführt wird. Der von mir verwendete Hosting-Anbieter bietet die Möglichkeit, Laufwerks-Snapshots zu erstellen. Der Server läuft ständig und wird während der Laufwerkssicherung nicht gestoppt. Backup hat keine speziellen Funktionen in Bezug auf MSSQL. Besteht das Risiko, dass die Datenbank möglicherweise nicht wiederhergestellt wird, wenn ich meine Datendateien auf einem solchen Laufwerk behalte und im Falle einer Notfallwiederherstellung Snapshots verwende?

Justinas Simanavicius
quelle
2
Haben Sie zuerst alle E / A-Puffer geleert und angehalten?
Michael Kutz
3
@ Vérace Angesichts der Tatsache, dass der Server ausgeführt wird, gehe ich davon aus, dass es nicht sicher ist, sich auf Laufwerkssicherungen zu verlassen, und stattdessen sollten reguläre DB-Sicherungen verwendet werden.
Justinas Simanavicius
Ein Laufwerks-Snapshot hat im Grunde das gleiche Konsistenzmodell wie eine Crash-Wiederherstellung, und Datenspeichersoftware sollte in der Lage sein, sich von Abstürzen zu erholen. Möglicherweise ist eine Wiederherstellung nach einem Absturz erforderlich, es kann jedoch (ohne Fehler) zu dieser Snapshot-Zeit wiederhergestellt werden.
eckes

Antworten:

11

Backup hat keine speziellen Funktionen in Bezug auf MSSQL.

In der Regel werden Server-Sicherungsprogramme über den Windows Volume Shadow Copy Service (VSS) mit SQL Server koordiniert, um sicherzustellen, dass SQL Server die Datenbankdateien in einen konsistenten Zustand versetzt, bevor Volume-Snapshots erstellt werden. Mindestens Sicherungsprogramme sollten Sicherungen erstellen, die pro Volume konsistent sind.

Selbst in einer Unternehmensumgebung, in der vertrauenswürdige Fachleute Server-Backups mit einer Konfiguration durchführen, die Sie überprüfen können, sind nur sehr wenige Datenbankadministratoren tatsächlich auf Server-Backups angewiesen. Denken Sie daran, dass Backups allein irrelevant sind. Wiederherstellungen sind das, was Sie wirklich interessiert.

Wie führen Sie eine Wiederherstellung durch, wenn Sie sich auf Server-Backups verlassen? Nicht einfach, das ist sicher.

Nehmen Sie also Backups. Laden Sie sie dann regelmäßig von Ihrem Hoster herunter oder laden Sie sie auf einen Cloud-Speicheranbieter hoch, z.

  • Melden Sie sich für ein Azure-Konto an
  • Stellen Sie ein Speicherkonto bereit (LRS + Cool Standardstufe)
  • Verwenden Sie die SQL Server-Funktion " Backup to URL" , um Datenbanksicherungen direkt auf Ihr Speicherkonto zu übertragen.
David Browne - Microsoft
quelle
3

Während Sie auf jeden Fall die Punkte beachten sollten, die David Browne hervorhebt, habe ich den Laufwerks-Snapshot- Ansatz für Sicherungen verwendet und kleine SQL-Datenbanken erfolgreich wiederhergestellt. Aber sehen Sie sich die Vorbehalte am Ende meiner Antwort an - ich wäre sehr vorsichtig, wenn ich dies in einer großen Datenbank versuchen würde.

Mit den meisten Sicherungssoftware dieses Typs können Sie die Sicherung als virtuelles Laufwerk bereitstellen. Nach dem Mounten können Sie die MDF-Datei einfach zurückkopieren. Sie können entweder einfach den SQL Server-Dienst beenden, die Originaldatei (en) ersetzen und dann neu starten oder die MDF-Datei als neue Datenbank anhängen und ausgewählte Daten daraus zurückkopieren.

Aber:

Ich habe dies bisher nur für kleine Datenbanken verwendet, die auf einfache Protokollierung eingestellt sind. In diesem Zusammenhang würde klein die Größe bedeuten, die SQLExpress unterstützt, sodass dies für Ihr System gilt. Wenn ich diese Art der Sicherung verwende, verwende ich die einfache Protokollierung, da die von uns verwendete Sicherungssoftware alle 15 Minuten einen Schnappschuss erstellt, sodass ich eine ziemlich gute Granularität habe, ohne dass eine vollständige Protokollierung erforderlich ist.

Ich verwende diesen Ansatz hauptsächlich für kleine SQL-Datenbanken, die von Apps verwendet werden. Viele Endbenutzer-Apps verwenden heutzutage SQLExpress als Datenspeicher, genau wie vor einigen Jahren viele Apps Access MDB-Dateien verwendet haben. Unter diesen Umständen neige ich dazu, die Datenbank so anzuzeigen, wie ich jede andere Datendatei anzeigen würde. Sie sagen nicht, wofür Ihre Datenbank verwendet wird, daher kann ich Ihnen nicht raten, wie gut dies für Sie funktionieren würde. Es gelten die üblichen Hinweise für Sicherungen: Testen Sie Ihre Sicherungen regelmäßig, um sicherzustellen, dass Sie sie wiederherstellen können.

John Rennie
quelle
Wir haben Snapshotting erfolgreich als Sicherungs- und DR-Methode mit einfachem Failover für mehrere Multi-Terabyte-Datenbanken (nicht SQL Server) verwendet. Wenn Sie sich jetzt von diesem Modell entfernen, aber solange Sie genug Kit und eine große Pipe zwischen den beiden Sätzen von Festplatten-Arrays haben, ist dies eine praktikable Lösung, obwohl sie schwer einzurichten ist.
Ben
2

Ich stimme allen oben von David Browne erwähnten Punkten zu und möchte hier einen weiteren relevanten Punkt hinzufügen. Da Sie kein Wiederherstellungsmodell der Datenbank angegeben haben, gehe ich davon aus, dass es sich um den vollständigen Wiederherstellungsmodus handelt. Dies bedeutet, dass mit jeder Transaktionsprotokollgröße weiter wächst, bis sie die gesamte Festplatte belegt (es sei denn, Sie haben die Größe des automatischen Protokollinkrements begrenzt).

Sobald Sie eine Protokollsicherung durchgeführt haben, geschieht Folgendes :

Mit einer Transaktionsprotokollsicherung können Sie den aktiven Teil des Transaktionsprotokolls sichern. Nachdem Sie eine "vollständige" oder "differenzielle" Sicherung erstellt haben, enthält die Transaktionsprotokollsicherung alle Transaktionen, die nach Abschluss dieser anderen Sicherungen erstellt wurden. Nach der Sicherung des Transaktionsprotokolls kann der Speicherplatz im Transaktionsprotokoll für andere Prozesse wiederverwendet werden. Wenn keine Transaktionsprotokollsicherung durchgeführt wird, wächst das Transaktionsprotokoll weiter.

Wenn Sie einen Snapshot der Festplatte erstellen, wird das Protokoll im SQL Server niemals gelöscht. Darüber hinaus verfügen Sie über die Funktion der komprimierten Sicherung, die hilfreich sein kann, um die Größe der Sicherung wirklich klein zu halten. Im Katastrophenfall können Sie mithilfe der vollständigen, differenziellen und Protokollsicherung eine Wiederherstellung zu einem bestimmten Zeitpunkt erreichen.

Eine weitere Sache, die Sie hier hinzufügen sollten: Im Allgemeinen speichern DBAs die Sicherung auf einem anderen Speicher und nicht auf demselben Speicher, auf dem sich Daten oder Protokolldateien befinden. Falls Ihre Daten- oder Protokolldatei abstürzt, sind Sie dennoch sicher, da auf einem anderen Speicher Sicherungen verfügbar sind.

Ich hoffe oben hilft.

Learning_DBAdmin
quelle