Czy musisz uruchomić nodetool repair
na każdym węźle w klastrze, czy wystarczy uruchomić go tylko na jednym węźle, a stamtąd Cassandra zajmie się resztą?
maintenance
cassandra
2rs2ts
źródło
źródło
-pr
każdym węzłem, czy obejmie to całą przestrzeń klucza?-pr
na każdym węźle, obejmie on całą przestrzeń klawiszową.-pr
flagą.To, jak się zachowuje, zależy od konfiguracji, używanej wersji Cassandry i sposobu uruchomienia polecenia naprawy.
Jeśli uruchomisz tylko jeden
nodetool repair
węzeł w klastrze, spowoduje to naprawę wszystkich danych (zakresów tokenów), za które odpowiedzialny jest ten węzeł, a także innych węzłów, które są odpowiedzialne za te dane.Na przykład, jeśli chcesz uruchomić
nodetool repair
polecenie na pojedynczym węźle w danym klastrze:To powiedziawszy, możliwe jest określenie, które hosty i centra danych będą przeprowadzać naprawy przy użyciu flag
-hosts
i-dc
. Dodatkowo, jeśli użyjesz-pr
flagi (która wybierze tylko pierwszy zakres tokenów, za który odpowiedzialny jest węzeł), będziesz musiał uruchomić sięnodetool repair -pr
na wszystkich węzłach w klastrze.Inną flagą, o której należy pamiętać, jest
-inc
flaga, która została uwzględniona w Cassandra 2.1. Ta opcja naprawi tylko nowe dane (dane, które nie zostały wcześniej naprawione). Zachowaj ostrożność, polegając na tym, szczególnie jeśli często usuwasz dane. ( więcej na ten temat )Należy również pamiętać o tym, że domyślny sposób napraw w Cassandra może się różnić. Począwszy od Cassandry 2.1, po uruchomieniu
nodetool repair
domyślnie wykonuje pełną sekwencyjną naprawę. Będziesz chciał sprawdzić, co robi Twoja wersja.Więcej informacji na ten temat:
https://www.datastax.com/dev/blog/repair-in-cassandra
źródło
Nie, nie musisz uruchamiać każdego węzła.
nodetool repair
działa na zbiorze węzłów, co jest wyraźnie określone w dokumentacji .Możesz ograniczyć węzły lub część danych, na których chcesz uruchomić naprawę. Na przykład można podać
-pr
opcję zakresu partycjonera, zakresu, za który odpowiedzialny jest węzeł, ale będzie to musiało być uruchomione dla całego klastra. Ale jeśli wybierzesz-local
, węzły w lokalnym centrum danych węzła zostaną naprawione.źródło
nodetool repair
w jednym węźle nie jest wystarczające do naprawy wszystkich zreplikowanych danych we wszystkich węzłach we wszystkich konfiguracjach. Uruchomienienodetool repair
w jednym węźle naprawi tylko dane replikowane w tym węźle. (Dodanie-pr
opcji ogranicza naprawę do danych, dla których ten węzeł jest pierwszą repliką.) Ale jeśli masz w klastrze dane, które nie są replikowane w tym węźle, musisz uruchomićnodetool repair
na dodatkowych węzłach.