Grundsätzlich haben wir eine große MySQL-Datenbank und möchten eine Replikation auf einen Slave durchführen (Master-Slave-Setup). Habt ihr eine Schritt-für-Schritt-Anleitung, wie man dies mit minimalen Ausfallzeiten in der Datenbank macht? Das Sichern der Datenbank und das Übertragen des Backups auf den Slave-Server (auch über ein privates Netzwerk) dauert ungefähr 40 Minuten. Ziemlich lange Ausfallzeiten.
quelle
Um eine Replikation zu starten, benötigen Sie eine konsistente Kopie Ihrer Datenbank auf dem Slave
Sind Ihre Tische mit Myisam oder Innodb gesichert? Problem herauszufinden
und schauen Sie sich die Spalte 'Engine' an
Wenn alle Tabellen innodb sind, können Sie mit mysqldump --single-transaction keine Ausfallzeiten einrichten und diese in den Slave importieren
Wenn es sich bei den Tabellen um Myisam handelt, muss es zu Ausfallzeiten kommen, da Sie die Tabellen zum Schreiben sperren müssen, während sie kopiert werden. mysqlhotcopy ist das Tool, das Ihnen dabei hilft.
Wenn Sie LVM (Logical Volume Manager) verwenden, können Sie alternativ die Datenbank stoppen, in wenigen Sekunden einen LVM-Snapshot erstellen und die Datenbank erneut starten. Anschließend können Sie aus dem Snapshot eine konsistente Kopie erstellen.
quelle
Um den Slave einzurichten, müssen Sie einen Datenschnappschuss erstellen und die Position des binären Protokolls aufzeichnen. Das Sichern der Datenbank sollte keine Ausfallzeiten verursachen, obwohl dies zu einer verminderten Leistung führt. Sie sichern die Datenbank jedoch trotzdem bereits, oder? Möglicherweise muss das Backup einige Tabellen sperren, und dies kann zu Sperrungen in Ihrer Anwendung führen. Sie müssen sich unbedingt ansehen, wie es dafür implementiert ist.
Können Sie einen Schnappschuss der Festplatte machen? Dies würde die Ausfallzeit erheblich reduzieren, wenn Sie ein Hotback durchführen können.
quelle