Migracja danych ScaleGrid for Redis™* z jednego serwera na drugi jest powszechnym wymogiem, który słyszymy od naszych klientów. Dwa główne powody, które słyszymy, są często związane z migracją sprzętu lub potrzebą dzielenia danych między serwerami.
Zazwyczaj chcesz przeprowadzić migrację z minimalnym przestojem przy użyciu standardowych narzędzi Redis. W tym poście na blogu poprowadzimy Cię przez ten proces przy użyciu narzędzia open-source Redis-Shake. Opracowany i utrzymywany przez zespół NoSQL w dziale Alibaba-Cloud Database, Redis-Shake umożliwia łatwą migrację danych Redis między klastrami Redis. Chociaż ten przewodnik jest bardziej ukierunkowany na wdrożenia ScaleGrid for Redis™*, ten przewodnik może być używany do innych typów wdrożeń Redis, a także z niewielkimi modyfikacjami.
Bez zbędnych ceregieli zacznijmy od przewodnika po migracji!
Warunki wstępne
Do przeprowadzenia migracji potrzebny będzie komputer z systemem Linux lub Windows. (W razie potrzeby może to być maszyna źródłowa lub docelowa).
Ważną rzeczą, o której należy się upewnić przed kontynuowaniem, jest to, że Redis-Shake nie obsługuje obecnie klastrów obsługujących SSL. Upewnij się, że klastry źródłowe i docelowe nie obsługują protokołu SSL.
Reguła zapory
Upewnij się, że utworzyłeś regułę zapory, aby umożliwić komputerowi z systemem Linux/Windows łączenie się zarówno z klastrem źródłowym, jak i docelowym. Skorzystaj z tego linku, aby uzyskać więcej informacji na temat konfiguracji tego w ScaleGrid.
Pobierz Redis-Shake
Pobierz i zdekompresuj Redis-Shake na komputerze z systemem Linux/Windows po wybraniu najnowszej/stabilnej wersji z tego linku. Możesz również użyć poniższych poleceń, aby pobrać najnowszą wersję na dzień dzisiejszy (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/
Następnie pokażemy dwa różne przypadki użycia Redis-Shake.
- Migracja danych z Standalone i Master-Slave
- Migracja danych w trybie klastra
Migracja danych – Standalone i Master-Slave
W tej sekcji pokażemy, jak przeprowadzić migrację danych w tych różnych konfiguracjach:
- Samodzielny do samodzielnego
- Master-Slave do Master-Slave
- Samodzielny do Master-Slave (i odwrotnie)
1. Zbierz informacje
Zanotuj następujące informacje z karty Przegląd na stronie szczegółów klastra zarówno z klastra źródłowego, jak i docelowego:
- Nazwa hosta :Ciąg połączenia ma format [nazwa hosta:port]. Powinno wyglądać mniej więcej tak:EX-redms-00-redis-master.example.domain.io
- (W przypadku klastra Master-Slave połączymy się z masterem).
- Port :6379
- Hasło :Możesz znaleźć swoje hasło i zresetować je z konsoli w sekcji Poświadczenia
2. Edytuj plik konfiguracyjny
Otwórz plik „redis-shake.conf” w głównym folderze i edytuj następujące zmienne:
source.type =samodzielny
źródło.adres =
source.password_raw =
target.type =samodzielny
adres.docelowy =
target.password_raw =
3. Synchronizuj dane
Uruchom następujące polecenie, aby zsynchronizować dane między klastrem źródłowym a docelowym:
$ ./redis-shake -type sync -conf redis-shake.conf
4. Czekaj na dzienniki
Poczekaj, aż w dziennikach zobaczysz następujące informacje:
zakończono synchronizację rdb.
Oznacza to, że pełna synchronizacja została zakończona i rozpoczyna się synchronizacja przyrostowa.
5. Zatrzymaj synchronizację przyrostową
Jeśli +writeBytes=0
jest widoczny przez długi czas, oznacza to, że żadne nowe dane nie są zwiększane. Możesz zatrzymać synchronizację przyrostową, naciskając Ctrl+C . Powinno to wyglądać mniej więcej tak:
sync:+forwardCommands=0 +filterCommands=0 +writeBytes=0
6. Dopasuj liczbę kluczy
Teraz kliknij ten link do naszego dokumentu pomocy, który pomaga połączyć się z obydwoma klastrami za pomocą redis-cli, a następnie dopasować liczbę kluczy między klastrami za pomocą przestrzeni kluczy info polecenie na obu klastrach.
I to wszystko! Udało Ci się przeprowadzić migrację danych z jednego klastra do drugiego za pomocą Redis-Shake. Jeśli masz klastry w trybie klastra, możesz zajrzeć do następnej sekcji tego przewodnika, aby zobaczyć, co musisz zrobić, jeśli używasz tego typu klastra.
Migracja danych – tryb klastra
W tej sekcji pokażemy, jak przenieść dane z jednego wdrożenia Redis w trybie klastra do innego klastra.
1. Zbierz informacje
Zanotuj następujące informacje z karty Przegląd na stronie szczegółów klastra zarówno z klastra źródłowego, jak i docelowego:
- Nazwa hosta :Ciąg połączenia ma format [nazwa hosta1:port], [nazwa hosta2:port], [nazwa hosta3:port]. Powinien wyglądać mniej więcej tak: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
- Hasło :Możesz znaleźć swoje hasło i zresetować je z konsoli w sekcji Poświadczenia
2. Edytuj plik konfiguracyjny
Otwórz plik „redis-shake.conf” w głównym folderze i edytuj następujące zmienne:
source.type =klaster
źródło.adres =
source.password_raw =
target.type =samodzielny
docelowy.adres =
target.password_raw =
3. Synchronizuj dane
Uruchom następujące polecenie, aby zsynchronizować dane między klastrem źródłowym a docelowym:
$ ./redis-shake -type sync -conf redis-shake.conf
4. Czekaj na dzienniki
Poczekaj, aż w dziennikach zobaczysz następujące informacje:
zakończono synchronizację rdb.
Oznacza to, że pełna synchronizacja została zakończona i rozpoczyna się synchronizacja przyrostowa.
5. Zatrzymaj synchronizację przyrostową
Jeśli +writeBytes=0
jest widoczny przez długi czas, oznacza to, że żadne nowe dane nie są zwiększane. Możesz zatrzymać synchronizację przyrostową, naciskając Ctrl+C . Powinno to wyglądać mniej więcej tak:
sync:+forwardCommands=0 +filterCommands=0 +writeBytes=0
6. Dopasuj liczbę kluczy
Teraz kliknij ten link do naszego dokumentu pomocy, który pomaga połączyć się z obydwoma klastrami za pomocą redis-cli, a następnie dopasować liczbę kluczy między klastrami za pomocą przestrzeni kluczy info polecenie na obu klastrach.
I to wszystko! Udało Ci się przeprowadzić migrację danych z jednego klastra w trybie klastra do innego przy użyciu funkcji Redis-Shake. Aby uzyskać więcej informacji na temat Redis-Shake i jego możliwości, odwiedź ich stronę GitHub, aby dowiedzieć się więcej i uzyskać najnowszą wersję.
|
*Redis jest znakiem towarowym Redis Labs Ltd. Wszelkie prawa w tym zakresie są zastrzeżone dla Redis Labs Ltd. Jakiekolwiek użycie przez ScaleGrid służy wyłącznie do celów referencyjnych i nie wskazuje na sponsorowanie, poparcie lub powiązanie między Redis i ScaleGrid.