Solr 5.2 – szybkie spojrzenie na mechanizm kopii zapasowych

Wraz z niedawną premierą Solr w wersji 5.2 oraz 5.2.1 dostaliśmy możliwość skorzystania z mechanizmu wykonywania kopii zapasowych przy pomocy API. Ze względu na to, że była to funkcjonalność na którą część użytkowników czekała już dość długo postanowiliśmy się jej przyjrzeć.

W celu przetestowania funkcjonalności przeprowadzimy bardzo prosty test:

  1. uruchomimy Solr w trybie rozproszonym,
  2. zaindeksujemy kilka dokumentów,
  3. zrobimy kopię zapasową,
  4. ponownie zaindeksujemy kilka dokumentów,
  5. postaramy się przywrócić kopię zapasową, którą wykonaliśmy w kroku 3

Zacznijmy więc.

Uruchomienie Solr

Pierwsze krok to uruchomienie Solr. W tym celu wykorzystaliśmy skrypt bin/solr i następującą komendę:

Potrzebujemy jednej instancji SolrCloud oraz pustej kolekcji (najlepiej gettingstarted). Do testów potrzebujemy pojedynczego shard’a.

Sama topologia stworzonego przez nas klastra wygląda następująco:

Zrzut ekranu 2015-06-21 o 11.13.31

Indeksowanie danych

Zaindeksowanie danych jest równie proste. Ze względu na wykorzystanie przykładowej kolekcji gettinstarted możemy wysłać dane o dowolnej strukturze, a Solr postara się odpowiednio zmodyfikować schema.xml. Zaindeksowaliśmy całe dwa dokumenty korzystając z następującego polecenia:

Kopia zapasowa

Wykonanie kopii zapasowej jest tak samo proste, jak czynności, które wykonywaliśmy do tej pory. Wystarczy, że uruchomimy następującą komendę:

Powyższa komenda poinformowała Solr, że chcemy wykonać kopię zapasową, nazwać ją snapshot.test (Solr dodaje wartość parametru name do nazwy snapshot.)  Sama kopia zapasowa, w przypadku braku określonej lokalizacji, zostanie stworzona w katalogu z danymi. Oczywiście możemy podać inny katalog za pomocą parametru location (tak jak w powyższym przykładzie), który może być zarówno ścieżką względną (do katalogu z danymi Solr), jak i bezwzględną.

Odpowiedź Solr będzie szybka i podobna do następującej:

W przypadku, kiedy nasza kolekcja jest duża, czas tworzenia kopii zapasowej będzie oczywiście odpowiednio dłuższy. Jeżeli chcemy sprawdzać, jaki jest postęp wystarczy uruchomienie następującej komendy:

Ponowna indeksacja

Kolejnym krokiem naszego, prostego testu jest indeksacja kolejnych dwóch dokumentów przy pomocy następującej komendy:

Po tej operacji, jeżeli uruchomilibyśmy następującą komendę:

Solr poinformuje nas, że w naszej kolekcji są cztery dokumenty:

Przywrócenie kopii zapasowej

Postarajmy się zatem przywrócić naszą kopię zapasową i zobaczmy ile dokumentów będzie widzieć Solr. W tym celu uruchamiamy następującą komendę:

Solr zwrócił następującą odpowiedź:

Zatem sprawdźmy co Solr zwróci na nasze proste zapytanie:

Jak widać Solr poprawnie przywrócił kopię zapasową i znów mamy dwa dokumenty w naszej kolekcji.

Podsumowanie

Jak widać mechanizm działa poprawnie, należy jednak pamiętać o kilku rzeczach. W przypadku instalacji kilku instancji Solr na tej samej maszynie, lepiej unikać wykonywania kopii zapasowych do katalogu bezwzględnego (można nadpisać sobie dane). Poza tym, fajnie jest móc mieć w pełni zabezpieczone dane 😉

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.