Ich habe einen Schlüsselbereich mit Daten gefüllt, deren Generierung teuer war. Ich möchte zwei Kopien dieser Daten in meinem Cluster haben. Ich würde gerne mit zwei Schlüsselräumen enden: Lassen Sie sie mydata
und mydatabackup
nennen, die beide identische Daten enthalten (es macht mir nichts aus, wenn die Cassandra-Zeitstempel anders sind).
Gibt es einen einfachen Weg, dies zu tun? Das engste, was ich zu einer Antwort finden kann, ist die Verwendung von sstable2json und json2sstable , wie in Antwort auf a vorgeschlagen ähnliche Frage ? Gibt es einen besseren Weg?
"Gibt es einen besseren Weg?"
Alle Cassandra-Daten werden im Daten / Ordner gespeichert (überprüfen Sie den Konfigurationswert data_file_directories in cassandra.yaml ). Sie können auch das Verzeichnis saved_caches_directory und commitlog_directory überprüfen.
Innerhalb des Datenordners haben Sie
Ein Ordner für die Authentifizierung usw ..
In jedem Schlüsselbereichsordner haben Sie
* - Data.db-Dateien, die Ihre echten Daten enthalten
Um Daten zu replizieren, führen Sie eine Kopie dieser Ordner durch.
In unserem Team verwenden die Ops eine Crontab, um eine regelmäßige Sicherung von Cassandra-Daten auf diese Weise zu planen.
Hinweis: Manchmal verpassen Sie Live-Daten, die sich noch im Speicher oder in memtable befinden und noch nicht auf die Festplatte geleert wurden. Sie können vor dem Sichern von Datendateien eine vollständige Komprimierung auslösen. Aber volle Kompaktierung kann dich verletzen, also sei vorsichtig
Bessere Antwort: Verwenden Sie das mitgelieferte Tool, um einen Schnappschuss Ihrer DB zu erstellen:
Tags und Links cassandra