У меня есть кластер cassandra с двумя центрами обработки данных. В центре обработки данных 2 у меня есть пространство ключей с коэффициентом репликации 3. Я хочу восстановить все пространства ключей в центре обработки данных 2. Я пытался запустить:
nodetool repair --in-local-dc --full -j 4
Но эта команда не восстанавливает все пробелы ключей. Кто-нибудь знает, является ли это предполагаемым поведением? Журналы Cassandra не указывают на какие-либо проблемы
да. Он восстановил только два пространства ключей. Одно ключевое пространство осталось неисправленным. Мне пришлось прибегнуть к ремонту nodetool --in-local-dc --full -j 4 keyspacename, чтобы восстановить последнее пространство ключей. Просто подумал, что это странно.
Поэтому у меня также были проблемы с ремонтом нескольких DC при назначении исходного DC. Я не знаю, содержат ли ошибки эти специфичные для DC флаги восстановления, но я обнаружил, что лучший способ убедиться, что в ремонте участвуют только определенные узлы, — это указать каждый из них.
nodetool repair keyspace_name -hosts 10.6.8.2 -hosts 10.6.8.3 -hosts 10.6.8.1
-hosts 10.6.8.5 -hosts 10.6.8.4 -hosts 10.1.3.1 -full
Обратите внимание, что моя цель состояла в том, чтобы запустить это восстановление на 10.1.3.1, подключившись к нему по SSH. Узел, на котором выполняется восстановление должен, также должен быть указан с флагом -hosts
. Также убедитесь, что каждый узел в исходном контроллере домена указан в списке, иначе вы получите ошибки об отсутствующих диапазонах токенов источника.
Попробуйте это и посмотрите, поможет ли это.
Почему вы говорите, что это не восстанавливает все пространства ключей? Он должен восстановить любое пространство ключей в локальном контроллере домена. Вы видите иначе?