Migawkę tworzymy komendą
nodetool snapshotlub
nodetool -h adres_serwera -p numer_portu snapshotPowyższe komendy utworzą migawki wszystkich przestrzeni kluczy. Jeżeli chcemy zrobić migawkę konkretnej przestrzeni to wpisujemy:
nodetool snapshot nazwa_przestrzeni_kluczyPo wykonaniu komendy podany zostanie nam numer migawki.
Dane kopii (pliki o rozszerzeniu "db") znajdziemy w "katalog_Cassandry/data/nazwa_przestrzeni_kluczy/nazwa_tabeli/snapshots/numer_migawki".
Poprzednie kopie nie są usuwane więc warto przedtem wywołać
nodetool snapshot clearsnapshotlub
nodetool snapshot clearsnapshot nazwa_przestrzeni_kluczyPrzywracanie danych wymaga wszystkich plików migawek dla tabeli, a jeżeli używane są inkrementowane kopie zapasowe to wszystkie pliki inkrementowanych kopii zapasowych utworzone po tym jak wykonana została migawka.
Generalnie przed przystąpieniem do przywracania danch powinno się usunąć wszystkie dane z tabeli i ustawić odpowiednią konsystencję:
truncate nazwa_przestrzeni_klucz.nazwa_tabeli;Cassandra może przywracać dane kiedy istnieje schemat tabel. Jeżeli tego nie zrobiłeś to możesz albo:
consistency all;
- przywrócić dane z migawki,
- ponownie stworzyć schemat
lub:
- stworzyć ponownie schemat,
- przywrócić migawkę,
- uruchomić "nodetool refresh".
Aby przywrócić dane do konkretnej tabeli należy:
1) wyłączyć Cassandrę,
2) usunąć wszystkie pliki z "katalog_Cassandry/commitlog",
3) usunąć wszystkie pliki o rozszerzeniu "db" z "katalog_Cassandry/data/nazwa_przestrzeni_kluczy/nazwa_tabeli",
4) skopiować zawartość katalogu "katalog_Cassandry/data/nazwa_przestrzeni_kluczy/nazwa_tabeli/snapshots/numer_migawki" do "katalog_Cassandry/data/nazwa_przestrzeni_kluczy/nazwa_tabeli" i zmienić właściciela oraz grupę na odpowiednie dla serwera Cassandry (zwykle jest to "cassandra" i "cassandra"),
5) włączyć Cassandrę.
W celu automatyzacji powyższych zadań stworzone zostało narzędzie Carmela.