Wenn Sie nur Ihren Produktionsknoten auf einem lokalen Computer neu erstellen möchten, müssen Sie lediglich alles kopieren (unter der Annahme, dass die Hardware ähnlich ist).
Von Produktion:
- Flush die Daten von memtables auf die Festplatte.
- Run nodetool Snapshot und erhalten Snapshots für alle Ihre ColumnFamilies/KeySpaces
- Achten Sie darauf, die CQL Skripte, die Ihre ColumnFamilies erstellt/Keyspaces
- Kopieren Sie die Konfigurationsdateien, commitlogs, saved_cache, Protokolle, Datenverzeichnisse
auf dem lokalen Rechner (unter der Annahme, frische Installation)
- Cassandra Install (Stellen sie sicher, es ist die gleiche Version ist wie Produktion)
- Recreate ColumnFamilies/Keyspaces die Skripte verwenden Sie von der Produktion kopiert
- Kopieren über Konfigurationsdateien/bearbeiten Sie Ihre Konfigurationsdateien/saved_cache, Protokolle, Datenverzeichnisse
- Platz Schnappschüsse in den richtigen Verzeichnisse
- möglicherweise so etwas wie
<data_dir>/<keyspace>/<columnfamily>/
- Cassandra Start up
Hinweis: Diese Checklisten sind nicht vollständig
Das Ausführen von nodetool repair ist in diesem Fall keine schlechte Idee.Angenommen, Sie möchten nur den Produktionsknoten auf einer lokalen Maschine neu erstellen (wie in der Frage angegeben), dann könnte dies problematisch sein, da der Snapshot die aktuellen Daten hätte. Auch die Ausführung von nodetool cleanup würde nicht schaden, wenn die Reparatur als notwendig erachtet wurde.
Beantwortung Ihrer Frage:
Wenn Sie nur das Datenverzeichnis und commitlogs von der Produktion auf dem lokalen Computer kopieren wird nicht wirklich funktionieren, wie Sie die keyspaces und Spalte Familien neu erstellen, müssen die Daten zu setzen. Wenn du das getan hast, dann ist etwas anderes am Werk. Um die Daten von einer Cassandra-Umgebung zur nächsten zu bringen, sind die Konfigurationsdateien, das Datenverzeichnis (Commitlogs, Daten, Saved_Cache usw.) und die Schemaskripts die wichtigsten. Von dort können Sie wahrscheinlich Probleme debuggen. Eine Neuinstallation (oder Neuabbildung der aktuellen data/commitlog/etc-Verzeichnisse zu neuen Verzeichnissen, dh new_data, new_commitlog, new_saved_cache) könnte der einfachste Weg sein, um die Aufgabe zu erfüllen.
Hallo .... das ist wirklich nett ... Ich habe bestätigt, dass Ihre Richtung erfolgreich ist und ich meine lokale Maschine als eine Kopie des Produktionsservers gemacht habe. Ich glaube, Ihr Vorschlag hilft sicherlich auch anderen. –
Hallo! Ich bin froh, dass es geholfen hat. Viel Spaß mit Cassandra! –