Ich benutze MySQL
Wie oft sichern Sie Ihre Datenbank?
Wie sichern Sie normalerweise Ihre Datenbank?
Exportieren Sie alle Daten in SQL oder CVS-Format und speichern Sie es in einem Ordner?
Wenn Sie MySQL-Sicherungen ohne Ausfallzeiten ordnungsgemäß durchführen möchten, sollten Sie die Datenbank auf einen Ersatzserver replizieren. Es muss nicht sehr leistungsfähig sein, sondern nur die Schreiblast Ihrer Master-Datenbank bewältigen. Sie sollten diesen Server nicht in der Produktion verwenden. Wenn die Replikation nie mithalten kann, benötigen Sie einen leistungsstärkeren Server. Sie können dies überprüfen, indem Sie die Protokolldatei und die Position aus der Ausgabe von vergleichen
> SHOW MASTER STATUS\G
auf den Meister und
> SHOW SLAVE STATUS\G
auf dem Sklaven. Ich denke, MySQL5 wird die Verzögerung von zeigen SHOW SLAVE STATUS
.
Wenn Sie froh sind, dass Ihr Sklave Schritt hält, können Sie Ihre Backups durchführen, indem Sie dies tun
SLAVE STOP;
auf dem Slavemysqldump --opt
auf dem Slave-Server.SLAVE START;
auf dem SlaveWenn Sie dies tun, haben Sie eine konsistente Sicherung Ihrer Datenbanken. Diese Methode verhindert, dass unterschiedliche Datenbanken oder noch schlimmer, unterschiedliche Tabellen in derselben Datenbank nicht synchron sind, und verhindert Ausfallzeiten, indem Tabellen für Schreibvorgänge gesperrt werden, während Sie die Sicherung durchführen.
Ein netter Vorteil dieses Setups ist, dass Sie über eine Kopie Ihrer Datenbank verfügen, mit der Sie lange, teure Abfragen ausführen können, die Ihren Live-Service nicht beeinträchtigen.
Einige zufällige Tipps:
mysqldump --opt
Sie diese Option , da dies normalerweise der schnellste Weg ist, um das resultierende SQL zu importieren
Ich verwende ein Skript, mit
mysqldump
dem die Daten / das Schema für jede Datenbank in eine Datei extrahiert werden. Die Daten werden durch die normale Netbackup-Sicherung auf Band gesichert. Sie können natürlich weitere Schnickschnack hinzufügen, aber dies führt zu einem einfachen Dump.quelle
Normalerweise werden Datenbanken einmal am Tag gesichert, wenn sie gestoppt werden müssen, und dann werden Sicherungen zur Konsolidierung in einen Speicherbereich übertragen und dann auf Band übertragen.
Datenbanksicherungen werden die meiste Zeit mit den nativen Tools durchgeführt, die mit dem Datenbankmodul bereitgestellt werden.
Im Falle eines Hardwarefehlers dürfen keine Backups mit den Daten auf den Servern gespeichert werden.
Es wird empfohlen, nach Möglichkeit aktuelle Replikate Ihrer Datenbankserver zu haben, besser einen Failover-Makanismus für Produktionsdatenbanken.
Für Software können Sie sich zum Beispiel Bacula oder Zmanda ansehen
quelle
Unser Standard-Setup ist ein HA-Cluster mit zwei Datenbanken, die in die andere repliziert werden und schreibgeschützt sind.
Wir führen einmal am Tag eine vollständige Sicherung durch und haben dann die Richtlinie pro Kunde, alte Sicherungen auszusortieren. Im Allgemeinen führen wir 4 letzte tägliche Sicherungen (um das Wochenende zu überleben;), 4 letzte Sonntage und 4 letzte erste Sonntage in einem Monat. Danach gehen ein oder zwei Deponien pro Jahr ins Archiv, um für immer aufbewahrt zu werden.
Wir bewahren die Replikationsprotokolle auch so lange auf, wie wir es uns leisten können, Speicherplatz zu sparen. Sie sind auch als Debugging-Tool sehr nützlich, da sie genau aufzeichnen, wer was und wann geändert hat.
Theoretisch benötigen Sie lediglich eine vollständige Sicherung und alle Replikationsprotokolle, um eine Wiederherstellung zu einem bestimmten Zeitpunkt durchführen zu können. Häufigere vollständige Sicherungen beschleunigen jedoch die Wiederherstellung.
Ein guter Trick bei der Sicherung ist die Verwendung von Innodb-Tabellen und des Parameters --single-transaction für den MySQL-Dump. Auf diese Weise blockiert die Sicherung die Datenbank nicht, während sie ausgeführt wird.
quelle
Ich benutze Perconas Xtrabackup . Es ist eine nicht blockierbare Backup-Lösung für InnoDB / XtraDB
quelle
Der gesamte Zweck der Sicherung besteht darin, die Wiederherstellung durchführen zu können.
Ich würde einen CSV-Dump nicht als Backup-Lösung empfehlen. Alles, was es Ihnen gibt, sind die Rohdaten. Daneben gibt es noch viel mehr, insbesondere bei einer Datenbank. Tabellenbeschreibungen, Ansichten, gespeicherte Prozesse, Sie nennen es. Wenn Sie diese nicht haben, können Sie sie nicht erfolgreich zurückerhalten. Es gibt auch die RDBMS-Anwendung und -Konfiguration zu berücksichtigen. Möglicherweise ist eine große Anzahl von Patches installiert, die Sie auch in Ihrer Wiederherstellungsumgebung installieren müssen, um das gleiche Niveau zu erreichen. Möglicherweise führen Sie eine spezielle Konfiguration aus, die von den Anforderungen Ihrer Anwendungen abhängt. Möglicherweise sind sogar bestimmte Betriebssystemeinstellungen erforderlich, damit Ihre Datenbank optimal ausgeführt werden kann. All dies muss auch zurückbekommen werden. Wenn Sie nicht über eine Backup-Lösung verfügen, die dies kann, kommt es zu weiteren Verzögerungen bei der Wiederherstellung.
Für Datenbanksicherungen (und Sicherungen im Allgemeinen) würde ich immer die Verwendung einer "echten" Sicherungssoftware bevorzugen, die all dies bewältigen kann.
quelle
Zuletzt habe ich MySQL-Server in EC2 verwaltet. Wir haben EBS-Snapshots für einen 15-minütigen Cron-Job erstellt, 3-5 Snapshots wurden aufbewahrt.
Wenn wir 'traditionelle' MySQL-Server erstellt haben, haben wir täglich über MySQl-ZRM gesichert. Bei den Sicherungen handelt es sich im Wesentlichen um mysqldumps, die je nach Kundenwunsch auf Band, SAN usw. gesendet werden.
Beide Methoden können durchgeführt werden, ohne die Datenbank anzuhalten.
quelle
Für MySQL verwende ich automysqlbackup ( http://sourceforge.net/projects/automysqlbackup/ ), da meine Sicherungssoftware (Backup Exec) keine Snapshots auf Linux-Systemen unterstützt.
Es funktioniert in Ordnung, aber ich werde diesen Thread auf Vorschläge überwachen :)
quelle
Wir führen zweimal täglich Sicherungen durch und führen alle 10-15 Minuten Protokollsicherungen durch.
Der Vorteil dieser Methode besteht darin, dass Sie von einer der zweimal täglichen Sicherungen wiederherstellen und dann die Protokolldateien bis spätestens 15 Minuten anwenden können. Auf diese Weise minimieren Sie die Datenmenge, die Sie verlieren können.
Wie oft Sie Ihre Daten sichern, liegt jedoch bei Ihnen. Wie viele Daten können Sie gerne verlieren? Wenn Sie es sich leisten können, Daten im Wert von einem Tag zu verlieren, sichern Sie einmal am Tag. Daten ändern sich nie? Dann brauchen Sie nur noch eine Kopie!
quelle