Migrace dat ScaleGrid pro Redis™* z jednoho serveru na druhý je běžným požadavkem, který slyšíme od našich zákazníků. Dva z hlavních důvodů, které slýcháme, jsou často kvůli migraci hardwaru nebo potřebě rozdělit data mezi servery.
Obvykle chcete migrovat s minimálními prostoji při použití standardních nástrojů Redis. V tomto blogovém příspěvku vás provedeme procesem pomocí open-source nástroje Redis-Shake. Redis-Shake, vyvinutý a spravovaný týmem NoSQL v oddělení Alibaba-Cloud Database, umožňuje snadnou migraci dat Redis mezi clustery Redis. I když je tato příručka zaměřena spíše na nasazení ScaleGrid pro Redis™*, lze tuto příručku s malými úpravami použít i pro jiné typy nasazení Redis.
Bez dalších řečí začněme s průvodcem migrace!
Předpoklady
K provedení migrace budete potřebovat počítač se systémem Linux nebo Windows. (V případě potřeby to může být zdrojový nebo cílový počítač).
Důležitou věcí, kterou byste se měli ujistit, než budete pokračovat, je, že Redis-Shake zatím nepodporuje clustery s povoleným SSL. Ujistěte se prosím, že jak zdrojový, tak cílový cluster nepodporují SSL.
Pravidlo brány firewall
Ujistěte se, že jste vytvořili pravidlo brány firewall, aby se váš počítač se systémem Linux/Windows mohl připojit ke zdrojovému i cílovému clusteru. Další informace o tom, jak to nastavit na ScaleGrid, najdete na tomto odkazu.
Stáhnout Redis-Shake
Stáhněte a dekomprimujte Redis-Shake na počítači se systémem Linux/Windows po výběru nejnovější/stabilní verze z tohoto odkazu. Ke stažení nejnovější verze k dnešnímu dni (v2.1.1) můžete také použít následující příkazy.
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/
Dále vám ukážeme dva různé případy použití pro Redis-Shake.
- Migrace dat ze Standalone a Master-Slave
- Migrace dat v režimu clusteru
Migrace dat – samostatný a Master-Slave
V této části vám ukážeme, jak migrovat data v těchto různých nastaveních:
- Od samostatného k samostatnému
- Master-Slave to Master-Slave
- Samostatný na Master-Slave (a naopak)
1. Shromážděte informace
Poznamenejte si následující informace z karty Přehled na stránce podrobností o clusteru ze zdrojového i cílového clusteru:
- Název hostitele :Připojovací řetězec je ve formátu [název hostitele:port]. Mělo by to vypadat nějak takto:EX-redms-00-redis-master.example.domain.io
- (V případě clusteru Master-Slave se připojíme k hlavnímu).
- Port :6379
- Heslo :Své heslo můžete najít a resetovat z konzole v části Přihlašovací údaje
2. Upravit konfigurační soubor
Otevřete svůj soubor „redis-shake.conf“ v hlavní složce a upravte následující proměnné:
source.type = standalone
source.address = <source_hostname>:6379
source.password_raw = <source_password>
target.type = standalone
target.address = <target_hostname>:6379
target.password_raw = <target_password>
3. Synchronizovat data
Spusťte následující příkaz k synchronizaci dat mezi zdrojovým a cílovým clusterem:
$ ./redis-shake -type sync -conf redis-shake.conf
4. Počkejte na protokoly
Počkejte, dokud v protokolech neuvidíte následující informace:
sync rdb done.
To znamená, že úplná synchronizace byla dokončena a začíná přírůstková synchronizace.
5. Zastavit přírůstkovou synchronizaci
Pokud +writeBytes=0
je vidět po dlouhou dobu, pak to znamená, že se nezvyšují žádná nová data. Přírůstkovou synchronizaci můžete zastavit stisknutím Ctrl+C . Mělo by to vypadat nějak takto:
sync: +forwardCommands=0 +filterCommands=0 +writeBytes=0
6. Shoda s počtem klíčů
Nyní přejděte na tento odkaz na náš dokument nápovědy, který vám pomůže připojit se k oběma clusterům pomocí redis-cli a poté spárovat počet klíčů mezi vašimi clustery pomocí info keyspace
příkaz na obou clusterech.
A je to! Nyní jste úspěšně migrovali data z jednoho clusteru do druhého pomocí Redis-Shake. Pokud máte clustery v režimu clusteru, možná se budete chtít podívat na naši další část této příručky, kde zjistíte, co musíte udělat, pokud používáte tento typ clusteru.
Migrace dat – režim clusteru
V této části vám ukážeme, jak migrovat data z jednoho nasazení Redis v režimu clusteru do jiného clusteru.
1. Shromážděte informace
Poznamenejte si následující informace z karty Přehled na stránce podrobností o clusteru ze zdrojového i cílového clusteru:
- Název hostitele :Připojovací řetězec je ve formátu [název_hostitele1:port], [název_hostitele2:port], [název_hostitele3:port]. Mělo by to vypadat nějak takto: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
- Heslo :Své heslo můžete najít a resetovat z konzole v části Přihlašovací údaje
2. Upravit konfigurační soubor
Otevřete svůj soubor „redis-shake.conf“ v hlavní složce a upravte následující proměnné:
source.type = cluster
source.address = <source_hostname1>:6379;<source_hostname2>:6379;<source_hostname3>:6379
source.password_raw = <source_password>
target.type = standalone
target.address = <target_hostname1>:6379;<target_hostname2>:6379;<target_hostname3>:6379
target.password_raw = <target_password>
3. Synchronizovat data
Spusťte následující příkaz k synchronizaci dat mezi zdrojovým a cílovým clusterem:
$ ./redis-shake -type sync -conf redis-shake.conf
4. Počkejte na protokoly
Počkejte, dokud v protokolech neuvidíte následující informace:
sync rdb done.
To znamená, že úplná synchronizace byla dokončena a začíná přírůstková synchronizace.
5. Zastavit přírůstkovou synchronizaci
Pokud +writeBytes=0
je vidět po dlouhou dobu, pak to znamená, že se nezvyšují žádná nová data. Přírůstkovou synchronizaci můžete zastavit stisknutím Ctrl+C . Mělo by to vypadat nějak takto:
sync: +forwardCommands=0 +filterCommands=0 +writeBytes=0
6. Shoda s počtem klíčů
Nyní přejděte na tento odkaz na náš dokument nápovědy, který vám pomůže připojit se k oběma clusterům pomocí redis-cli a poté spárovat počet klíčů mezi vašimi clustery pomocí info keyspace
příkaz na obou clusterech.
A je to! Nyní jste úspěšně migrovali data z jednoho clusteru v Cluster Mode do druhého pomocí Redis-Shake. Pro více informací o Redis-Shake a jeho možnostech navštivte jejich stránku GitHub, kde se dozvíte více a získáte nejnovější verzi.
|
*Redis je ochranná známka společnosti Redis Labs Ltd. Jakákoli práva v ní obsažená jsou vyhrazena společnosti Redis Labs Ltd. Jakékoli použití ScaleGrid je pouze pro referenční účely a neznamená žádné sponzorství, podporu nebo přidružení mezi Redis a ScaleGrid.