Cassandra pokazują migawki

Cassandra pokazują migawki

Kopie zapasowe są niesamowitymi funkcjami, szczególnie podczas pracy z środowiskami o krytycznych danych. W Apache Cassandra możemy tworzyć kopie zapasowe danych bazy danych przechowywanych jako pliki sstable. Następnie możesz użyć plików kopii zapasowych do przywrócenia bazy danych w przypadku utraty danych, węzła lub awarii partycji. Kopie zapasowe można również użyć do replikacji bazy danych w innym komputerze, usuwając potrzebę odtworzenia struktury od zera.

Cassandra obsługuje dwa główne typy kopii zapasowych:

  1. Migawki
  2. Przyrostowe kopie zapasowe

W tym samouczku skupimy się na tworzeniu kopii migawkowych. Najpierw dowiadujemy się, jak możemy zainicjować i utworzyć kopie zapasowe bazy danych przechowywane w klastrze Apache Cassandra.

Zanurzmy się.

Co to są migawki?

W kontekście klastra Apache Cassandra migawka odnosi się do kopii plików SSTable Table w określonym czasie. Tabela SSTable lub Sorted Strings to format pliku, którego Apache Cassandra używa do przechowywania danych w pamięci w memnabach w celu szybkiego dostępu. Pliki SSTable są niezmienne i są usuwane lub scalone z nowymi plikami SSTable w miarę zmiany danych.

Migawki w Cassandra mogą być wydawane ręcznie przez użytkownika lub zautomatyzowane, włączając funkcję w plikach konfiguracyjnych.

Konfigurowanie przykładowych danych w celu zilustrowania migawek w Cassandra

Zanim zilustrować, jak wykonać migawki w Cassandra, utwórzmy przykładowe dane, aby zademonstrować, jak tworzyć migawki.

Zacznijmy od utworzenia migawki.

cassandra@cqlsh> Utwórz migawkę na klawisze
… Z replikacją = 'class': „ProsteStrategy”, „Replikacja_factor”: 1;

Poprzednie zapytanie tworzy miejsce na klawisze z prostotą i współczynnikiem replikacji 1.

Następnie możemy przejść na tę klawisze i utworzyć dwa tabele:

cassandra@cqlsh> Użyj migawek;

Następnie utwórz tabelę użytkowników w następujący sposób:

cassandra@cqlsh: migawki> Utwórz użytkowników tabeli (
… Id Int,
… Tekst nazwy użytkownika,
… SMS -y,
… Klucz podstawowy (id)
…);

Możemy również stworzyć inną tabelę, która nazywa się podobną strukturą:

cassandra@cqlsh: migawki> Utwórz tabelę użytkowników_copy (
… Id Int,
… Tekst nazwy użytkownika,
… SMS -y,
… Klucz podstawowy (id)
…);

Na koniec możemy dodać przykładowe dane do tabeli, jak pokazano:

Wstaw do użytkowników (id, nazwa użytkownika, e -mail) wartości (0, „nazwa użytkownika1”, „[email protected]ół');
Wstaw do użytkowników (id, nazwa użytkownika, e -mail) wartości (1, „nazwa użytkownika2”, „[email protected]');
Wstaw do wartości Users_copy (id, nazwa użytkownika, e -mail) (0, „nazwa użytkownika1”, „[email protected]ół');
Wstaw do wartości Users_copy (id, nazwa użytkownika, e -mail) (1, „nazwa użytkownika2”, „[email protected]');

Następnie możemy zapytać o tabele w następujący sposób:

cassandra@cqlsh: Snapshotting> Wybierz * od użytkowników;
cassandra@cqlSh: Snapshotting> Wybierz * z Users_copy;

Wyjście:

Skonfiguruj klaster Cassandra dla migawek

Przed utworzeniem migawek dobrze jest upewnić się, że automatyczne tworzenie migawek jest wyłączone. Edytuj Cassandra.plik YML i ustaw następującą wartość:

auto_snapshot: false

Zaleca się również wyłączenie automatycznego zagęszczania przed utworzeniem migawki. W Cassandra.plik YML, ustaw następującą wartość:

snapshot_before_compaction: false

Po przygotowaniu podanych ustawień uruchom ponownie klaster Cassandra, aby zastosować zmiany.

Robienie migawek wszystkich kluczy

Podczas ręcznego tworzenia migawek w Cassandra używamy polecenia NodeTool. Możesz uruchomić następujące polecenie:

$ NodeTool Help Snapshot

Aby wyświetlić dostępne opcje poleceń.

Aby zrobić migawkę wszystkich klawiszy w klastrze Cassandra, możemy uruchomić następujące polecenie:

$ NodeTool Snapshot

Polecenie powinno zwrócić wiadomość jak pokazano:

Domyślnie Cassandra tworzy migawkę o nazwie bieżącego znacznika czasu.

Aby określić nazwę migawki, możesz użyć opcji -T, jak pokazano w następującym poleceniu:

$ NodeTool Snapshot -t Backups

Stwarza to migawkę wszystkich klawiszy w klastrze i przechowuje ją w katalogu kopii zapasowych.

Robienie migawki pojedynczej przestrzeni klawiszy

Możesz także wykonać kopię zapasową jednego klawiszy w klastrze, określając nazwę kluczy. Na przykład, aby zrobić migawkę klawisza migawki, którą stworzyliśmy wcześniej, możemy uruchomić następujące polecenie:

$ nodeTool migshot -t mighotting_backup migawek

Cassandra tworzy katalog migawek dla każdej tabeli w określonej przestrzeni klawiszowej. Na przykład, ponieważ klawisza „migawki” zawiera dwa tabele, Cassandra tworzy katalog migawek dla każdego.

Domyślnie Cassandra przechowuje migawki w katalogu/var/lib/cassandra/danych.

$ ls -la/var/lib/cassandra/data/migawkowanie/

Powinieneś zobaczyć katalogi każdego stołu w kluczu.

W każdym pliku znajdziesz inne pliki i katalogi, jak pokazano:

Robienie migawki pojedynczego stolika w kluczu

Czasami możesz zrobić migawkę określonej tabeli w danej przestrzeni klawiszowej. W tym celu możesz użyć opcji stołowej, a następnie nazwy tabeli, którą chcesz wykonać kopię zapasową.

Na przykład, aby zrobić migawkę tabeli Users_copy w kluczu „Snapshotting”, możemy uruchomić następujące polecenie:

$ NodeTool Snapshot -Table Users_copy -t UC_SNAP Snapshotting

Polecenie tworzy migawkę tabeli Users_copy i przechowuje ją w katalogu UC_SNAP.

Lista migawek

Aby wyświetlić dostępne migawki w klastrze, użyj polecenia ListsNapshot, jak pokazano:

$ NodeTool Listsnapshots

Powinieneś uzyskać listę wszystkich dostępnych migawek i szczegółów, takich jak nazwa migawki, do której należą klawisza, nazwa rodzinna kolumny, rozmiar na dysku i rzeczywisty rozmiar.

Szczegóły migawki:
Nazwa migawki Nazwa Keyspace Nazwa kolumny Nazwisko rodziny True Rozmiar Rozmiar na dysku
UC_SNAP Snapshotting Users_copy 0 bajtów 5.87 kib
1661397218984 System_schema kolumny 0 bajtów 12.51 KIB
1661397218984 System_schema Type 0 bajtów 15.03 kib
1661397218984 System_schema indeksy 0 bajtów 15.15 kib
1661397218984 Keyspaces System_Schema 0 bajtów 5.81 ki
1661397218984 System_schema Dropped_Columns 0 bajtów 15.63 ki
1661397218984 System_schema Aggregates 0 bajtów 15.4 kib
1661397218984 System_schema wyzwala 0 bajtów 15.15 kib
1661397218984 Tabele System_Schema 0 bajtów 10.27 kib
1661397218984 Migawocie użytkowników 0 bajtów 5.86 kib
1661397218984 Migawocie użytkowników_copy 0 bajtów 5.87 kib
Snapshotting_backup Snapshotting Users 0 Bajty 5.86 kib
Snapshotting_backup Snapshotting Users_copy 0 bajtów 5.87 kib
kopie zapasowe migawcze użytkowników 0 bajtów 5.86 kib
kopie zapasowe migawki użytkowników_copy 0 bajtów 5.87 kib
1661397899477 Migawocie użytkowników_copy 0 bajtów 5.87 kib
Total Truedisspacesed: 0 bajtów

Wniosek

W tym artykule dowiedziałeś się, jak działa migawki w Apache Cassandra. Nauczyłeś się również, jak robić migawki klawiszy, określone stoły w klawisze i więcej.

Dziękuje za przeczytanie!