Wartungsfenster und Wiederherstellung für eine große Datenbank

Wartungsfenster und Wiederherstellung für eine große Datenbank

Eines unserer Teams entwickelt eine Datenbank, die ziemlich groß sein wird (~500 GB) und von da an wachsen wird (ich weiß, dass 500 GB vielen von Ihnen wenig erscheinen mögen, aber es wird eine der größeren Datenbanken in unserem Shop sein). Eines der Probleme, mit denen sie sich herumschlagen, ist das Sichern und Wiederherstellen der Datenbank. Im Grunde wird die Datenbank mehrere „Daten“-Tabellen und eine Tabelle zum Speichern von Bildern/Dokumenten haben. Wir müssen Folgendes erreichen:

  • Sie können zu Debugging- und Testzwecken schnell nur die Datentabellen (ohne Bilder) auf unserem Testserver sichern und wiederherstellen.
  • Stellen Sie im Falle eines katastrophalen Datenbankfehlers nur die Datentabellen wieder her, um den Großteil der Anwendung so schnell wie möglich wieder zum Laufen zu bringen. Stellen Sie anschließend, wenn möglich, die Bildertabelle wieder her.
  • Sichern Sie die Datenbank innerhalb des zugewiesenen nächtlichen Zeitfensters (ein paar Stunden). Meine Fragen sind:

Ist es möglich, die ersten beiden Ziele zu erreichen und gleichzeitig die Bilder in derselben Datenbank zu speichern? Wenn ja, würden wir Dateigruppen, Dateistreams oder etwas anderes verwenden? Wie sichern andere Shops ihre Datenbanken in einem angemessenen Zeitfenster und behalten dabei die hohe Verfügbarkeit bei? Replizieren Sie auf einen zweiten Server und sichern Sie von dort aus?

Antwort1

Ganz einfach: Planen Sie keine Wiederherstellung.

Stellen Sie im Falle eines katastrophalen Datenbankfehlers nur die Datentabellen wieder her, um den Großteil der Anwendung so schnell wie möglich zum Laufen zu bringen.

Wirklich? Ihre Definition einer Katastrophe entspricht nicht meiner und der des Rests der Welt.

Im Falle eines Datenabsturzes möchten Sie so schnell wie möglich wieder einsatzbereit sein, aber aufgrund eines Brandes kann dies einen Wiederaufbau des Rechenzentrums erforderlich machen. DAS ist eine Katastrophe.

Planen Sie bei Serverausfällen usw. keine Backups ein. Verwenden Sie Replikation und den Versand von Protokolldateien, um einen zweiten Server (auf einem separaten SAN) heiß zu halten und innerhalb eines definierten kurzen Zeitrahmens zu übernehmen. Ich kenne Unternehmen, die alle 10 Minuten Protokolldateien versenden.

So ziemlich Ihre einzige Chance. Machen Sie aus einer Katastrophe etwas WIRKLICHES Desaster, kein Raid-/SAN-Fehler. Etwas, bei dem Ihre Frage nicht lautet: „Wie schnell kann ich wiederherstellen?“, sondern „Wie schnell bekomme ich neue Hardware?“

Wiederherstellungen für Entwickler usw. sind weniger zeitkritisch.

verwandte Informationen