Migrera ScaleGrid för Redis™*-data från en server till en annan är ett vanligt krav som vi hör från våra kunder. Två av huvudorsakerna vi hör beror ofta på migrering av hårdvara eller behovet av att dela data mellan servrar.
Vanligtvis vill du migrera med minimal driftstopp medan du använder Redis standardverktyg. I det här blogginlägget kommer vi att guida dig genom processen med hjälp av open source-verktyget Redis-Shake. Redis-Shake har utvecklats och underhålls av NoSQL-teamet i Alibaba-Cloud Database-avdelningen och låter dig enkelt migrera Redis-data mellan Redis-kluster. Även om den här guiden är mer inriktad på ScaleGrid for Redis™*-distributioner, kan den här guiden användas för andra typer av Redis-distributioner också med några små modifieringar.
Låt oss komma igång med migreringsguiden utan vidare!
Förutsättningar
Du behöver en Linux- eller Windows-maskin för att utföra migreringen. (Om det behövs kan detta vara antingen källan eller målmaskinerna).
En viktig sak att se till innan du fortsätter är att Redis-Shake inte stöder SSL-aktiverade kluster från och med nu. Se till att både käll- och målklustren inte är SSL-aktiverade.
Brandväggsregel
Se till att du har skapat en brandväggsregel för att tillåta din Linux/Windows-maskin att ansluta till både käll- och målkluster. Se den här länken för mer information om hur du ställer in detta på ScaleGrid.
Ladda ner Redis-Shake
Ladda ner och dekomprimera Redis-Shake på Linux/Windows-maskinen efter att ha valt den senaste/stabila versionen från denna länk. Du kan också använda följande kommandon nedan för att ladda ner den senaste versionen från och med idag (v2.1.1).
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/
Närnäst kommer vi att visa dig två olika användningsfall för Redis-Shake.
- Migrera data från en fristående och masterslav
- Migrerar data i klusterläge
Migrera data – fristående och Master-Slave
I det här avsnittet kommer vi att visa dig hur du migrerar din data i dessa olika inställningar:
- Fristående till fristående
- Master-Slave till Master-Slave
- Fristående till Master-Slave (och vice versa)
1. Samla information
Anteckna följande information från fliken Översikt på sidan med klusterdetaljer från både ditt käll- och målkluster:
- Värdnamn :Anslutningssträngen har formatet [värdnamn:port]. Det borde se ut ungefär så här:EX-redms-00-redis-master.example.domain.io
- (I fallet med ett Master-Slave-kluster ansluter vi till mastern).
- Port :6379
- Lösenord :Du kan hitta ditt lösenord och återställa det från konsolen under Inloggningsuppgifter
2. Redigera konfigurationsfil
Öppna filen "redis-shake.conf" i huvudmappen och redigera följande variabler:
source.type =fristående
source.address =
source.password_raw =
target.type =fristående
target.address =
target.password_raw =
3. Synkronisera data
Kör följande kommando för att synkronisera data mellan käll- och målklustret:
$ ./redis-shake -type sync -conf redis-shake.conf
4. Vänta på loggar
Vänta tills du ser följande information i loggarna:
synk rdb klar.
Detta betyder att den fullständiga synkroniseringen har slutförts och att inkrementell synkronisering börjar.
5. Stoppa inkrementell synkronisering
Om +writeBytes=0
ses under lång tid, då betyder det att ingen ny data ökas. Du kan stoppa den inkrementella synkroniseringen genom att trycka på Ctrl+C . Det borde se ut ungefär så här:
sync:+forwardCommands=0 +filterCommands=0 +writeBytes=0
6. Matcha antalet nycklar
Följ nu den här länken till vårt hjälpdokument som hjälper dig att ansluta till båda klustren med redis-cli och sedan matcha antalet nycklar mellan dina kluster med info-tangentutrymmet kommandot på båda klustren.
Och det är allt! Du har nu framgångsrikt migrerat data från ett kluster till ett annat med Redis-Shake. Om du har kluster i klusterläge, kanske du vill ta en titt på vårt nästa avsnitt i den här guiden för att se vad du behöver göra om du kör den typen av kluster.
Migrera data – klusterläge
I det här avsnittet kommer vi att visa dig hur du migrerar data från en Redis-distribution i klusterläge till ett annat kluster.
1. Samla information
Anteckna följande information från fliken Översikt på sidan med klusterdetaljer från både ditt käll- och målkluster:
- Värdnamn :Anslutningssträngen har formatet [värdnamn1:port], [värdnamn2:port], [värdnamn3:port]. Det borde se ut ungefär så här:EX-redms-03-redis-master.example.domain.io, EX-redms-06-redis-master.example.domain.io, EX-redms-09-redis- master.example.domain.io
- Port :6379
- Lösenord :Du kan hitta ditt lösenord och återställa det från konsolen under Inloggningsuppgifter
2. Redigera konfigurationsfil
Öppna filen "redis-shake.conf" i huvudmappen och redigera följande variabler:
source.type =kluster
source.address =
source.password_raw =
target.type =fristående
target.address =
target.password_raw =
3. Synkronisera data
Kör följande kommando för att synkronisera data mellan käll- och målklustret:
$ ./redis-shake -type sync -conf redis-shake.conf
4. Vänta på loggar
Vänta tills du ser följande information i loggarna:
synk rdb klar.
Detta betyder att den fullständiga synkroniseringen har slutförts och att inkrementell synkronisering börjar.
5. Stoppa inkrementell synkronisering
Om +writeBytes=0
ses under lång tid, då betyder det att ingen ny data ökas. Du kan stoppa den inkrementella synkroniseringen genom att trycka på Ctrl+C . Det borde se ut ungefär så här:
sync:+forwardCommands=0 +filterCommands=0 +writeBytes=0
6. Matcha antalet nycklar
Följ nu den här länken till vårt hjälpdokument som hjälper dig att ansluta till båda klustren med redis-cli och sedan matcha antalet nycklar mellan dina kluster med info-tangentutrymmet kommandot på båda klustren.
Och det är allt! Du har nu framgångsrikt migrerat data från ett kluster i klusterläge till ett annat med Redis-Shake. För mer information om Redis-Shake och dess möjligheter, besök deras GitHub-sida för att ta reda på mer och få den senaste versionen.
|
*Redis är ett varumärke som tillhör Redis Labs Ltd. Alla rättigheter därtill är förbehållna Redis Labs Ltd. All användning av ScaleGrid är endast för referensändamål och indikerar inte någon sponsring, stöd eller koppling mellan Redis och ScaleGrid.