
Ich muss einen Linux-Server von einem dedizierten Server auf einen anderen verschieben.
Generell ist mein Plan folgender:
- Nachtzeit – httpd und MySQL ausschalten. RSYNC über SSH.
- Tageszeit – http und MySQL einschalten.
- Nachts httpd und MySQL ausschalten. RSYNC über SSH.
- Nachtzeit. httpd und MySQL auf beiden Servern einschalten. DNS-Einträge ändern.
- Tageszeit. Überwachung des Serverstatus.
Daher würde ich hauptsächlich zum Synchronisieren von MySQL und httpd rsync verwenden (kein mysqldump).
Klingt gut? Gibt es Einschränkungen?
Antwort1
Ich schlage zwei Lösungen vor. Persönlich bevorzuge ich die Methode des logischen Klonens, da sie mit weniger Ausfallzeiten durchgeführt werden kann und die Datenbankreplikation eine vielseitige Funktion ist, die aus anderen Gründen erworben werden kann. Die Methode des exakten Klonens, die Ihrer vorgeschlagenen Methode ähnelt, ist jedoch ein generischer Brute-Force-Ansatz zur Migration beliebiger Server.
Genauer Klon
- Reduzieren Sie die TTL Ihrer DNS-Einträge, um sich das Leben zu erleichtern.
- rsync-Quelle zum Ziel. Sie müssen nicht einmal die Dienste auf der Quelle herunterfahren; etwaige Inkonsistenzen werden in den Schritten (4) und (7) behoben.
- Optional können Sie einige Tests auf dem neuen Server durchführen. Finden Sie heraus, welche Konfigurationsänderungen Sie auf dem Zielserver vornehmen müssen, damit alles funktioniert. Möglicherweise möchten Sie den Zielcomputer sogar neu starten, um sicherzustellen, dass alles reibungslos funktioniert.
- Sie können die rsync-Quelle erneut mit dem Ziel verbinden, um den "Schaden" am neuen Server, den Sie in (3) eingeführt haben, rückgängig zu machen, weitere Unterschiede festzustellen und ein Gefühl dafür zu bekommen, wie viel Zeit die Ausführung eines inkrementellen rsync benötigt (was ein Indikator dafür ist, mit welcher Ausfallzeit zu rechnen ist).
- Beenden Sie alle Dienste auf beiden Rechnern. Stellen Sie sicher, dass die Dienste auf dem Quellrechner ausgeschaltet bleiben. Sie möchten kein „Split Brain“ mit unterschiedlichen Daten auf dem alten und dem neuen Rechner.
- Nehmen Sie Änderungen an Ihren DNS-Einträgen vor. Sie können für die neuen Einträge eine normale TTL verwenden, vorausgesetzt, Sie planen kein Rollback.
- rsync-Quelle erneut zum Ziel.
- Nehmen Sie auf der Zielmaschine alle erforderlichen Konfigurationsänderungen vor, wie in Schritt (3) ermittelt.
- Starten Sie die Dienste auf dem Zielcomputer.
Logischer Klon
Informieren Sie sich über die EinrichtungMySQL-Replikation. Wenn Sie die binäre Protokollierung auf Ihrem MySQL-Server noch nicht aktiviert haben, müssen Sie Ihre Datenbank kurz zurücksetzen, um sie zu aktivieren. In jedem Fall empfehle ich dringend, die binäre Protokollierung trotzdem zu aktivieren, da dies praktisch ist, um zukünftige Vorgänge wie MySQL-Upgrades mit nahezu null Ausfallzeiten durchzuführen.
Wenn SieZirkuläre Replikation, Sie können möglicherweise sogar den alten und den neuen Webserver gleichzeitig ausführen, wenn MySQL der einzige Datenspeicher Ihrer Anwendung ist.