Die Migration von ScaleGrid for Redis™*-Daten von einem Server auf einen anderen ist eine häufige Anforderung, die wir von unseren Kunden hören. Zwei der Hauptgründe, die wir hören, sind häufig auf die Migration von Hardware oder die Notwendigkeit zurückzuführen, Daten zwischen Servern aufzuteilen.
Normalerweise möchten Sie mit minimalen Ausfallzeiten migrieren und dabei die standardmäßigen Redis-Tools verwenden. In diesem Blogbeitrag führen wir Sie mit dem Open-Source-Tool Redis-Shake durch den Prozess. Redis-Shake wurde vom NoSQL-Team in der Alibaba-Cloud-Datenbankabteilung entwickelt und gewartet und ermöglicht Ihnen die einfache Migration von Redis-Daten zwischen Redis-Clustern. Während dieses Handbuch eher auf ScaleGrid for Redis™*-Bereitstellungen ausgerichtet ist, kann dieses Handbuch mit einigen geringfügigen Änderungen auch für andere Arten von Redis-Bereitstellungen verwendet werden.
Lassen Sie uns ohne weiteres mit dem Migrationsleitfaden beginnen!
Voraussetzungen
Sie benötigen einen Linux- oder Windows-Computer, um die Migration durchzuführen. (Bei Bedarf kann dies entweder die Quell- oder die Zielmaschine sein).
Eine wichtige Sache, die Sie sicherstellen sollten, bevor Sie fortfahren, ist, dass Redis-Shake derzeit keine SSL-fähigen Cluster unterstützt. Bitte stellen Sie sicher, dass sowohl der Quell- als auch der Zielcluster nicht SSL-fähig sind.
Firewall-Regel
Stellen Sie sicher, dass Sie eine Firewall-Regel erstellt haben, damit Ihr Linux-/Windows-Rechner eine Verbindung sowohl zu Ihrem Quell- als auch zu Ihrem Zielcluster herstellen kann. Unter diesem Link finden Sie weitere Informationen darüber, wie Sie dies auf ScaleGrid einrichten.
Redis-Shake herunterladen
Laden Sie Redis-Shake herunter und dekomprimieren Sie es auf dem Linux/Windows-Rechner, nachdem Sie die neueste/stabile Version über diesen Link ausgewählt haben. Sie können auch die folgenden Befehle unten verwenden, um die aktuellste Version (v2.1.1) herunterzuladen.
wget https://github.com/alibaba/RedisShake/releases/download/release-v2.1.1-20210903/release-v2.1.1-20210903.tar.gz tar -xvzf release-v2.1.1-20210903.tar.gz cd release-v2.1.1-20210903/
Als Nächstes zeigen wir Ihnen zwei verschiedene Anwendungsfälle für Redis-Shake.
- Migration von Daten von einem Standalone und Master-Slave
- Migration von Daten im Cluster-Modus
Migration von Daten – Standalone und Master-Slave
In diesem Abschnitt zeigen wir Ihnen, wie Sie Ihre Daten in diesen verschiedenen Konfigurationen migrieren:
- Einzelplatz zu Einzelplatz
- Master-Slave zu Master-Slave
- Standalone zu Master-Slave (und umgekehrt)
1. Sammeln Sie Informationen
Notieren Sie sich die folgenden Informationen auf der Registerkarte "Übersicht" auf der Cluster-Detailseite sowohl für Ihren Quell- als auch für Ihren Zielcluster:
- Hostname :Die Verbindungszeichenfolge hat das Format [Hostname:Port]. Es sollte etwa so aussehen:EX-redms-00-redis-master.example.domain.io
- (Bei einem Master-Slave-Cluster verbinden wir uns mit dem Master).
- Port :6379
- Passwort :Sie finden Ihr Passwort und können es über die Konsole unter „Anmeldedaten“ zurücksetzen
2. Konfigurationsdatei bearbeiten
Öffnen Sie Ihre „redis-shake.conf“-Datei im Hauptordner und bearbeiten Sie die folgenden Variablen:
source.type =eigenständig
source.address =
source.password_raw =
target.type =eigenständig
target.address =
target.password_raw =
3. Daten synchronisieren
Führen Sie den folgenden Befehl aus, um Daten zwischen dem Quell- und dem Zielcluster zu synchronisieren:
$ ./redis-shake -type sync -conf redis-shake.conf
4. Auf Protokolle warten
Warten Sie, bis Sie die folgenden Informationen in den Protokollen sehen:
sync rdb fertig.
Dies bedeutet, dass die vollständige Synchronisierung abgeschlossen ist und die inkrementelle Synchronisierung beginnt.
5. Stoppen Sie die inkrementelle Synchronisierung
Wenn +writeBytes=0
längere Zeit gesehen wird, bedeutet das, dass keine neuen Daten inkrementiert werden. Sie können die inkrementelle Synchronisierung stoppen, indem Sie Strg+C drücken . Es sollte etwa so aussehen:
sync:+forwardCommands=0 +filterCommands=0 +writeBytes=0
6. Passen Sie die Anzahl der Schlüssel an
Folgen Sie nun diesem Link zu unserem Hilfedokument, das Ihnen dabei hilft, mit redis-cli eine Verbindung zu beiden Clustern herzustellen und dann die Anzahl der Schlüssel zwischen Ihren Clustern mithilfe des info keyspace
Und das war's! Sie haben jetzt mit Redis-Shake erfolgreich Daten von einem Cluster zu einem anderen migriert. Wenn Sie Cluster im Cluster-Modus haben, sollten Sie sich unseren nächsten Abschnitt in diesem Leitfaden ansehen, um zu sehen, was Sie tun müssen, wenn Sie diese Art von Cluster ausführen.
Migration von Daten – Cluster-Modus
In diesem Abschnitt zeigen wir Ihnen, wie Sie Daten von einer Redis-Bereitstellung im Clustermodus zu einem anderen Cluster migrieren.
1. Sammeln Sie Informationen
Notieren Sie sich die folgenden Informationen auf der Registerkarte "Übersicht" auf der Cluster-Detailseite sowohl für Ihren Quell- als auch für Ihren Zielcluster:
- Hostname :Die Verbindungszeichenfolge hat das Format [hostname1:port], [hostname2:port], [hostname3:port]. Es sollte etwa so aussehen:EX-redms-03-redis-master.example.domain.io, EX-redms-06-redis-master.example.domain.io, EX-redms-09-redis- master.beispiel.domain.io
- Port :6379
- Passwort :Sie finden Ihr Passwort und können es über die Konsole unter „Anmeldedaten“ zurücksetzen
2. Konfigurationsdatei bearbeiten
Öffnen Sie Ihre „redis-shake.conf“-Datei im Hauptordner und bearbeiten Sie die folgenden Variablen:
source.type =Cluster
source.address =
source.password_raw =
target.type =eigenständig
target.address =
target.password_raw =
3. Daten synchronisieren
Führen Sie den folgenden Befehl aus, um Daten zwischen dem Quell- und dem Zielcluster zu synchronisieren:
$ ./redis-shake -type sync -conf redis-shake.conf
4. Auf Protokolle warten
Warten Sie, bis Sie die folgenden Informationen in den Protokollen sehen:
sync rdb fertig.
Dies bedeutet, dass die vollständige Synchronisierung abgeschlossen ist und die inkrementelle Synchronisierung beginnt.
5. Stoppen Sie die inkrementelle Synchronisierung
Wenn +writeBytes=0
längere Zeit gesehen wird, bedeutet das, dass keine neuen Daten inkrementiert werden. Sie können die inkrementelle Synchronisierung stoppen, indem Sie Strg+C drücken . Es sollte etwa so aussehen:
sync:+forwardCommands=0 +filterCommands=0 +writeBytes=0
6. Passen Sie die Anzahl der Schlüssel an
Folgen Sie nun diesem Link zu unserem Hilfedokument, das Ihnen dabei hilft, mit redis-cli eine Verbindung zu beiden Clustern herzustellen und dann die Anzahl der Schlüssel zwischen Ihren Clustern mithilfe des info keyspace
Und das war's! Sie haben jetzt mithilfe von Redis-Shake erfolgreich Daten von einem Cluster im Cluster-Modus zu einem anderen migriert. Weitere Informationen zu Redis-Shake und seinen Funktionen finden Sie auf der GitHub-Seite, um mehr zu erfahren und die neueste Version zu erhalten.
|
*Redis ist eine Marke von Redis Labs Ltd. Alle Rechte daran sind Redis Labs Ltd vorbehalten. Jegliche Verwendung durch ScaleGrid dient nur zu Referenzzwecken und weist nicht auf Sponsoring oder Billigung hin oder Zugehörigkeit zwischen Redis und ScaleGrid.