Bewährte Methoden für die Sicherung von MySQL-Servern:
MySQL-Replikation
Richten Sie die Replikation in MySQL ein. Sie müssen Master- und Slave-Server einrichten. Alle Schreib- / Lesezugriffe auf die DB können auf Ihren Slave-Server gehen. Der Vorteil von Replication ist, dass Sie ein Backup von Ihrem Slave-Server erstellen können, ohne den Master-Server zu unterbrechen. Ihre Anwendung wird weiterhin ohne Ausfallzeiten auf dem Master arbeiten.
Verwenden von MySQL Dump
Wenn Ihre Datenmenge klein ist (mir ist klar, dass "klein" ein relativer Begriff ist), dann wird mysqldump wahrscheinlich großartig funktionieren. Es ist einfach, online und sehr flexibel. Nur ein paar Dinge, die mysqldump tun kann: Sichern Sie alles oder nur bestimmte Datenbanken oder Tabellen. Sichern Sie nur die DDL. Optimieren Sie den Dump für eine schnellere Wiederherstellung.
Die wichtigsten Optionen hängen jedoch mit der Konsistenz Ihrer Sicherung zusammen. Meine bevorzugten Optionen sind: --single-transaction: Diese Option bietet eine konsistente Sicherung, wenn (und nur wenn) die Tabellen die InnoDB-Speicher-Engine verwenden. Wenn Sie keine schreibgeschützten MyISAM-Tabellen haben, verwenden Sie diese Option nicht, wenn Sie sie sichern. --master-data = 2: Diese Option stellt sicher, dass Ihr Dump konsistent ist (indem Sie eine Sperre für alle Tabellen durchführen, sofern Sie nicht die Option --single-transaction hinzugefügt haben). Die Option --master-data zeichnet auch die Position des Binärprotokolls in der resultierenden Speicherauszugsdatei auf (= 2 bewirkt, dass diese Zeile ein Kommentar in der Speicherauszugsdatei ist).
Abschließender Hinweis zu mysqldump: Beachten Sie, dass die Wiederherstellungszeit möglicherweise erheblich länger ist als die Sicherungszeit. Es hängt von mehreren Faktoren ab, zum Beispiel wie viele Indizes Sie haben.
LVM-Snapshot
Für diejenigen, die größere Datenmengen haben, ist eine physische Sicherung der richtige Weg. Während Sie eine Kaltstartsicherung durchführen könnten (dh den MySQL-Dienst herunterfahren, das Datenverzeichnis kopieren, den Dienst neu starten), möchten viele Benutzer keine Ausfallzeiten. Meine Lieblingslösung sind Schnappschüsse. Dies kann heiß sein (für InnoDB) oder eine kurze Sperre erfordern (für MyISAM). Vergessen Sie nicht, alle Ihre Daten anzugeben (einschließlich ib_logfiles). Lenz bietet dazu ein nützliches Hilfsprogramm: http://www.lenzg.net/mylvmbackup/
Verwenden von MySQL Enterprise Backup
Vorteile der Verwendung von MySQL Enterprise Backup:
- "Hot" -Sicherungen von InnoDB-Tabellen erfolgen vollständig online, ohne dass die Sicherung nur bestimmter Tabellen oder Tablespaces blockiert wird
- Sichern Sie nur die Daten, die sich seit einer vorherigen Sicherung geändert haben
- Komprimiertes Backup - Spart bis zu 90% Speicherplatz und vieles mehr.
Referenz:
http://www.mysql.com/products/enterprise/backup/features.html
http://www.mysql.com/products/enterprise/backup.html
--single-transaction
aber vergiss nicht hinzuzufügen--events --routines
und ich benutze--triggers
es immer auch, obwohl es standardmäßig aktiviert ist, da es in my.cnf deaktiviert werden kann. Ich würde sagen, es ist so ziemlich immer gut, diese als Standard zu verwenden, unabhängig davon, ob Sie diese Objekttypen derzeit in Ihrer Datenbank haben oder nicht.