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:
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!