Перед запуском кластера 2 важно убедиться, что ни один из IP-адресов кластера 1 не включен в начальный список кластера 2, чтобы гарантировать, что они не будут знать между ними.Также, чтобы удалить из пути data_file_directories
(как определено в cassandra.yaml), следующие каталоги:
- system
- system_auth
- system_distributed
- system_traces
system_schema
не следует трогать, так как он содержит определение схемы пространств клавиш и таблиц.
Запустите кластер,один узел за раз;первый узел должен включать свой собственный IP-адрес в начале начального списка;Это будет одноразовое изменение, и оно должно быть удалено после того, как кластер запущен и работает.
В этот момент у вас должен быть отдельный кластер с информацией и структурой исходного кластера навремя, когда был сделан снимок.Чтобы проверить это, выполните nodetool gossipinfo
, и в списке должны быть указаны только узлы cluster2, войдите в cqlsh describe keyspaces
, чтобы получить список всех ваших пространств ключей, а выполнение запросов вашего приложения должно получить ваши данные.Вы заметите, что Cassandra уже сгенерировала системные клавиши *, а также рассмотрела распределение токенов.
Следующим шагом является обновление имени восстановленного кластера в каждом из узлов:
- Вход в cqlsh
- Выполнение
UPDATE system.local SET cluster_name = 'cluster2' where key='local';
- Выход из cqlsh
- Выполнение
nodetool flush
- Выполнение
nodetool drain
- отредактируйте файл cassandra.yaml, обновите
cluster_name
с именем 'cluster2' - , перезапустите службу cassandra
- , дождитесь сообщения узла как НОРМАЛЬНОГО с
nodetool status
или nodetool netstats
- повторите с другим узлом
На этом этапе у вас будет 2 независимых кластера с другим именем.