Не удалось восстановить данные кассандры из снимка

У нас есть регулярное резервное копирование нашего кластера, и мы ежедневно сохраняем резервную копию схемы и снимка на aws s3.

Каким-то образом мы потеряли все данные, и при восстановлении данных из резервной копии мы можем восстановить схему, но при копировании файлов моментальных снимков в каталог / var / lib / cassandra / data данные в таблицах не отображаются.

После копирования данных мы выполнили обновление nodetool - таблица ключей, но ничего не получилось.

не могли бы вы помочь с этим?

2 ответа

Я новичок в Apache Cassandra, но первым делом я сосредоточился на этой теме. Если вы хотите восстановить из моментального снимка (на новом узле / кластере), вы должны выключить Cassandra на любом узле и удалить все существующие данные из этих папок:

/var/lib/cassandra/data -> Если вы хотите сохранить ваши системные ключи, удалите только папки Userkeyspaces

/var/lib/cassandra/commitlog/var/lib/cassandra/hints/var/lib/cassandra/saved_cashes

После этого вам нужно снова запустить Cassandra (весь кластер). Создайте пространство ключей, подобное тому, которое вы хотите восстановить, и таблицу, которую вы хотите восстановить. В папке "Снимок" вы найдете скрипт schema.cql для создания таблицы.

После создания таблиц ключей снова, подождите немного (время зависит от количества узлов в вашем кластере и пространства ключей, которые вы хотите восстановить).

Выключите Cassandra Cluster снова.

Скопируйте файлы из папки "Снимок" в новые папки таблиц, которые вы хотите восстановить. Сделайте это на ВСЕХ УЗЛАХ!

После копирования файлов запустите узлы один за другим.

Если все узлы работают, выполните команду nodetool repair.

Если вы пытаетесь проверить данные с помощью CQLSH, подумайте об УРОВНЕ ПОСТОЯННОСТИ! (ВСЕ / КВОРУМ)

Вот так хорошо работает на моем кластере Кассандра.

Основные шаги для восстановления снимка:

1. Отключить Кассандру, если все еще работает.

2. Очистить любые существующие данные в каталогах коммитов, данных и сохраненных кешей

3. Копировать снимки в соответствующие каталоги данных

4. Скопируйте инкрементные резервные копии в каталог данных (если инкрементные резервные копии включены). При необходимости установите параметр restore_point_in_time в commitlog_archiving.properties для восстановления точки.

5. Старт Кассандры.

6. Выполнить ремонт

Поэтому попробуйте запустить восстановление после копирования данных.

Другие вопросы по тегам