2015-07-02 2 views
2

В моем каталоге keyspace я вижу несколько версий большинства моих таблиц. Я предполагаю, что это потому, что я бросил их в какой-то момент и воссоздал их, когда я уточнял схему.Cassandra - Удаление старых версий таблиц и резервной базы данных

table1-b3441432142142sdf02328914104803190 
table1-ba234143018dssd810412asdfsf2498041 

Эти создаваемые имена таблиц очень трудоемки для работы. Попробуйте перейти на один из каталогов без копирования, вставив имя каталога из окна терминала ... Болезненный. Так легко что-то испортить.

Эта сторона примечания в сторону, Как определить, какая директория является самой последней версией таблицы?Могу ли я автоматически удалить старые версии?Я не понимаю, являются ли эти снимки снимками или нет, поскольку каждый каталог также может содержать моментальные снимки. Я прочитал в другом сообщении, что вы можете остановить автозапуск, но я не уверен, что хочу этого. Я бы предпочел просто автоматически удалить любые таблицы, которые в настоящее время не используются (то есть: это не последняя версия).

Я наткнулся на это, пытаясь сделать резервную копию. Я понял, что я вынужден зайти в каждый каталог таблицы и скопировать файлы моментальных снимков (есть, как и 50 каталогов, не включая все старые версии таблиц), которые кажутся ужасным дизайном (может быть, я чего-то не хватает?).

Я предположил, что могу сделать снимок всего пространства ключей и получить один файл обратно или, по крайней мере, вывести все файлы в один каталог, представляющий моментальный снимок всего пространства ключей. По крайней мере, было бы хорошо знать, что такое текущие версии, поэтому я могу захватить правильные файлы и выгрузить их для хранения где-нибудь.

DataStax Enterprise имеет функцию резервного копирования, но поддерживает только AWS, и я использую Azure.

Так уточнить:

  • Как автоматически удалять старые версии таблицы и знаю, что текущая версия?
  • Как создать резервную копию последних версий таблиц и вывести файлы в каталог , который я могу разгрузить где-нибудь? У меня только два узла, поэтому просто полагаться на ремонт не является хорошим вариантом для меня, если узел опускается.

ответ

1

Вы можете видеть активную версию таблицы, просматривая системное пространство ключей и проверяя поле cf_id. Например, чтобы увидеть версию для таблицы в «тест» с именем ключевого пространства таблицы «темп», вы можете сделать это:

cqlsh> SELECT cf_id FROM system.schema_columnfamilies WHERE keyspace_name='test' AND columnfamily_name='temp' allow filtering; 

cf_id 
-------------------------------------- 
d8ea9830-20e9-11e5-afc0-c381f961c62a 

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

Я не думаю, что есть команда записать все файлы моментальных снимков в один каталог. Согласно документации на снимке: «После завершения моментального снимка вы можете переместить файлы резервных копий в другое место, если это необходимо, или оставить их на месте». Таким образом, разработчикам приложений остается, как они хотят обрабатывать архивирование файлов моментальных снимков.

+0

Так что мне нужно запустить запрос для каждой таблицы.вручную изменить на каждый каталог на основе возвращаемого идентификатора и скопировать файлы вручную в какую-то папку, чтобы я мог переместить их в другое место? Поэтому, если у меня есть 50 таблиц, мне нужно запустить 50 запросов и сменить директории в 50 раз .. .. и выполнить 50 операций копирования? Должен быть лучший способ, или это просто ужасный дизайн. Я получаю людей, желающих восстановить одну таблицу, но делать все это для резервного копирования всего пространства ключей кажется абсурдным. Мне интересно, удаляю ли я узел, а затем просто копирую весь каталог данных, если он будет правильно восстановлен. – KingOfHypocrites

+0

Возможно, вы могли написать сценарий для очистки старых табличных каталогов и другого сценария, чтобы скопировать ваши снимки из кластера, если это ваш обычный рабочий процесс. Для Cassandra с открытым исходным кодом я не считаю, что простота резервного копирования была приоритетом, поэтому вам, возможно, придется создавать свои собственные вспомогательные скрипты. –

Смежные вопросы