«Есть ли лучший способ?»
данные Все Cassandra сохраняются в данных/папке (проверьте значение конфигурации data_file_directories в cassandra.yaml). Вы также можете проверить save_caches_directory и commitlog_directory config.
Внутри папки данных, вы будете иметь
- Один папку за
пространство ключей
- Одна папка для системы
ключевого пространства
Некоторые папки для проверки подлинности и т.д. ..
Внутри каждой папки пространство ключей , у вас будет
* -Data.db файлы, которые содержат ваши реальные данные
- * -Filter.db файлы
- * файлы -Index.db для индекса
- ...
реплицировать данные, вы делаете обычную копию этих папок.
В нашей команде ops используют crontab для планирования регулярного резервного копирования данных Cassandra таким образом.
Примечание: иногда вы можете пропустить данные в реальном времени, которые все еще находятся в памяти или в памяти, но еще не сброшены на диск. Вы можете вызвать полное сжатие перед резервным копированием файлов данных. Но полное уплотнение может повредить вам парфюм, поэтому будьте осторожны
Лучше ответ: использовать предоставленный инструмент, чтобы сделать снимок из вас DB:
http://www.datastax.com/docs/1.0/operations/backup_restore
Вместо того, чтобы делать полное уплотнение, вы можете просто запустите 'nodetool flush', чтобы ваши memtables были сброшены на диск. – Richard
@ Рихард Действительно. Документ дает лучшую альтернативу: nodetool -h -p snapshot –
doanduyhai
Я сделал обычную копию моментального снимка и вставил файлы в новую папку ('mydata') в каталоге данных casssandra. Однако данные из cassandra-cli недоступны. Кажется, это связано с тем, что файлы называются в соответствии со старым ключом - что-то вроде 'mydata-cf-hf-1-Data.db'. Однако, если я переименую файлы в соответствии с новым пространством ключей (например, 'mydatabackup-cf-hf-1-Data.db') и запустил' nodetool repair mydatabackup'. Кажется, это работает.Спасибо @doanduyhai – lorcan