Не удалось восстановить данные кассандры из снимка - PullRequest
0 голосов
/ 26 июня 2018

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

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

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

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

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

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

Снова отключите кластер Кассандры.

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

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

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

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

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

0 голосов
/ 27 июня 2018

Основные шаги, которые необходимо выполнить для восстановления снимка:

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

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

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

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

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

6.Первый ремонт

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

...