Apache Cassandra. Документация DataStax – Sichern und Wiederherstellen von Daten. Wiederherstellen aus einem Snapshot


Cassandra_logoÜbersetzung des Artikels „Sichern und Wiederherstellen von Daten. Wiederherstellen aus einem Snapshot “aus der offiziellen DataStax-Dokumentation.

Wiederherstellen von Daten aus einem Snapshot

Für die Wiederherstellung eines Schlüsselbereichs aus einem Snapshot sind alle Snapshot-Dateien für eine bestimmte Tabelle erforderlich. Bei Verwendung einer inkrementellen Sicherung sind alle Sicherungsdateien erforderlich, die nach dem Snapshot erstellt wurden.

In der Regel müssen Sie vor dem Wiederherstellen von Daten aus einem Snapshot die Tabelle mit dem Befehl “Abschneiden” löschen … Wenn die Daten vor dem Löschvorgang gesichert wurden (Löschen ) und Sie haben die Sicherung nach dem Löschen ohne vorheriges Abschneiden wiederhergestellt. Sie erhalten die ursprünglichen Daten (Datensätze) nicht zurück. Vor dem SSTable-Komprimierungsvorgang (Komprimierung) befinden sich die Tombstones und die Originaldatensätze in verschiedenen SSTables. Daher werden beim Wiederherstellen von SSTables, die die Originaldatensätze enthalten, die Tombstones nicht entfernt, und die Daten müssen noch gelöscht werden.

Cassandra kann nur dann Daten aus einem Snapshot wiederherstellen, wenn das Tabellenschema vorhanden ist. Wenn Sie keine Sicherung des Schemas haben, haben Sie zwei Möglichkeiten:

Methode 1
1) Stellen Sie den Schnappschuss wie unten beschrieben wieder her.
2) Erstellen Sie das Schema neu.

Methode 2
1) Erstellen Sie das Schema neu;
2) Stellen Sie die Daten wie unten beschrieben aus dem Schnappschuss wieder her.
3) Führen Sie den Befehl “nodetool refresh” aus .

Verfahren

Sie können Daten aus einem Snapshot auf verschiedene Arten wiederherstellen:

  • Verwenden Sie das Dienstprogramm sstableloader ;;
  • Kopieren Sie das SSTable-Snapshot-Verzeichnis (siehe Artikel “Erstellen eines Snapshots”) in das Verzeichnis data / keyspace_name / table_name und rufen Sie dann die loadNewSSTables () -Methode in der MBean-Spaltenfamilie für jede Spaltenfamilie über die JConsole-Konsole auf. Sie können “nodetool refresh” verwenden, anstatt loadNewSSTables () aufzurufen.
    Der Speicherort des Datenverzeichnisses hängt von der Art der Installation ab:
    1) Standard: / var / lib / cassandra / data
    2) beliebige Installation: Installationsort / Daten / Daten
  • Verwenden Sie die unten beschriebene Methode zum Neustart des Knotens.

Methode zum Neustart des Knotens

Wenn Sie einen einzelnen Knoten wiederherstellen, müssen Sie zuerst den Cassandra-Dienst deaktivieren. Wenn Sie Daten für den gesamten Cluster wiederherstellen, müssen Sie Cassandra von Anfang an auf allen Knoten herunterfahren, die Snapshot-Daten wiederherstellen und dann die Dienste erneut starten.
Hinweis: Das Wiederherstellen aus einem Snapshot und das Wiederherstellen inkrementeller Sicherungen führt vorübergehend zu einer starken Auslastung der Festplatte und des Prozessors des Knotens (oder der Knoten, wenn Sie die gesamten Clusterdaten wiederherstellen).

Verfahren
1) Deaktivieren Sie den Cassandra-Dienst.

2) Löschen Sie den Inhalt des Commitlog-Verzeichnisses:
– für die Standardinstallation: / var / lib / cassandra / commitlog
– zur Installation in einem beliebigen Verzeichnis: Installationsort / Daten / Commitlog
Dadurch wird verhindert, dass Daten aus dem Commitlog wiedergegeben werden, wenn der Dienst auf dem Knoten gestartet wird, was die Datenwiederherstellung zu diesem bestimmten Zeitpunkt beeinträchtigen würde.

3) Entfernen Sie alle .db-Dateien im Verzeichnis Datenverzeichnis / Schlüsselraumname / Tabellenname, Unterverzeichnisse jedoch NICHT LÖSCHEN / Schnappschüsse und / Backups.
wo datadir ist:
– für die Standardinstallation: / var / lib / cassandra / data
– zur Installation in einem beliebigen Verzeichnis: Installationsort / Daten / Daten

4) Suchen Sie den neuesten Snapshot-Ordner im Verzeichnis:
Datenverzeichnis / Schlüsselbereichsname / Tabellenname / Snapshots / Snapshotname

5) Kopieren Sie den Inhalt dieses Ordners in das Verzeichnis:
Datenverzeichnis / Schlüsselbereichsname / Tabellenname

6) Wenn Sie eine inkrementelle Sicherung verwenden, kopieren Sie den gesamten Inhalt des Verzeichnisses:
Datenverzeichnis / Schlüsselbereichsname / Tabellenname / Sicherungen

7) Zum Katalog
Datenverzeichnis / Schlüsselbereichsname / Tabellenname

8) Starten Sie den Cassandra-Dienst neu
Nach einem Neustart steigt die Festplatten- und Prozessorauslastung vorübergehend an.

9) Führen Sie “nodetool Repair” aus .

Originaler Artikel: Wiederherstellen aus einem Snapshot

Kommentare bereitgestellt von HyperComments

Leave a Reply

Your email address will not be published. Required fields are marked *