Informationen gehören zu den wertvollsten Vermögenswerten in einem Unternehmen, und es versteht sich von selbst, dass man einen Disaster Recovery Plan (DRP) haben sollte, um Datenverlust im Falle eines Unfalls oder Hardwareausfalls zu verhindern. Ein Backup ist die einfachste Form von DR. Es reicht möglicherweise nicht immer aus, um ein akzeptables Recovery Point Objective (RPO) zu garantieren, ist aber ein guter erster Ansatz.
Unabhängig davon, ob es sich um einen rund um die Uhr hochbelasteten Server oder eine Umgebung mit geringem Transaktionsvolumen handelt, Sie müssen Sicherungen nahtlos durchführen, ohne die Leistung des Servers in einer Produktionsumgebung zu beeinträchtigen.
Wenn wir über TimescaleDB sprechen, gibt es verschiedene Arten von Backups für diese neue Engine für Zeitreihendaten. Die Art der Sicherung, die wir verwenden sollten, hängt von vielen Faktoren ab, wie Umgebung, Infrastruktur, Auslastung usw.
In diesem Blog sehen wir uns diese verschiedenen Arten von verfügbaren Backups an und wie ClusterControl uns helfen kann, unser Backup-Management für TimescaleDB zu zentralisieren.
Sicherungstypen
Es gibt verschiedene Arten von Backups für Datenbanken. Sehen wir uns jeden von ihnen im Detail an.
- Logisch:Die Sicherung wird in einem für Menschen lesbaren Format wie SQL gespeichert.
- Physisch:Das Backup enthält binäre Daten.
- Vollständig/Inkrementell/Differentiell:Die Definition dieser drei Arten von Sicherungen ist bereits im Namen enthalten. Die vollständige Sicherung ist eine vollständige Kopie aller Ihrer Daten. Die inkrementelle Sicherung sichert nur die Daten, die sich seit der letzten Sicherung geändert haben, und die differenzielle Sicherung enthält nur die Daten, die sich seit der letzten vollständigen Sicherung geändert haben. Die inkrementellen und differenziellen Sicherungen wurden eingeführt, um den Zeitaufwand und die Speicherplatznutzung zu verringern, die für die Durchführung einer vollständigen Sicherung erforderlich sind.
- Point-in-Time-Wiederherstellung kompatibel:PITR Beinhaltet die Wiederherstellung der Datenbank zu einem beliebigen Zeitpunkt in der Vergangenheit. Um dies tun zu können, müssen wir ein vollständiges Backup wiederherstellen und dann alle Änderungen anwenden, die nach dem Backup bis kurz vor dem Ausfall vorgenommen wurden.
ClusterControl Backup-Verwaltungsfunktion
Mal sehen, wie ClusterControl uns helfen kann, verschiedene Arten von Backups zu verwalten.
Erstellen einer Sicherung
Gehen Sie für diese Aufgabe zu ClusterControl -> Select TimescaleDB Cluster -> Backup -> Create Backup .
Wir können ein neues Backup erstellen oder ein geplantes konfigurieren. Für unser Beispiel erstellen wir sofort ein einzelnes Backup.
Hier haben wir eine Methode für jeden zuvor erwähnten Sicherungstyp.
Sicherungstyp | Werkzeug | Definition |
---|---|---|
Logisch | pg_dumpall | Es ist ein Dienstprogramm zum Schreiben aller TimescaleDB-Datenbanken eines Clusters in eine Skriptdatei. Die Skriptdatei enthält SQL-Befehle, die zum Wiederherstellen der Datenbanken verwendet werden können. |
Physisch | pg_basebackup | Es wird verwendet, um eine binäre Kopie der Datenbank-Cluster-Dateien zu erstellen, während sichergestellt wird, dass das System automatisch in den Backup-Modus versetzt und wieder deaktiviert wird. Sicherungen werden immer vom gesamten Datenbank-Cluster eines laufenden TimescaleDB-Datenbank-Clusters erstellt. Diese werden ohne Auswirkung auf andere Clients in die Datenbank übernommen. |
Full/Incr/Diff | pgRückenlehne | Es handelt sich um eine einfache, zuverlässige Sicherungs- und Wiederherstellungslösung, die sich nahtlos auf die größten Datenbanken und Workloads skalieren lässt, indem Algorithmen verwendet werden, die für datenbankspezifische Anforderungen optimiert sind. Eine der wichtigsten Funktionen ist die Unterstützung für vollständige, inkrementelle und differenzielle Sicherungen. |
PITR | pg_basebackup+WALs | Um ein PITR-kompatibles Backup zu erstellen, verwendet ClusterControl pg_basebackup und die WAL-Dateien, um die Datenbank zu einem beliebigen Zeitpunkt in der Vergangenheit wiederherstellen zu können. |
Wir müssen eine Methode auswählen, den Server, von dem die Sicherung erstellt wird, und den Ort, an dem wir die Sicherung speichern möchten. Wir können unser Backup auch in die Cloud (AWS, Google oder Azure) hochladen, indem wir die entsprechende Schaltfläche aktivieren.
Denken Sie daran, dass wir, wenn Sie ein mit PITR kompatibles Backup erstellen möchten, in diesem Schritt pg_basebackup verwenden und das Backup vom Master-Knoten nehmen müssen.
Dann legen wir die Verwendung von Komprimierung, Verschlüsselung und Aufbewahrung unseres Backups fest.
Im Backup-Bereich können wir den Fortschritt des Backups und Informationen wie Methode, Größe, Speicherort und mehr sehen.
Point-in-Time-Wiederherstellung aktivieren
Wenn wir die PITR-Funktion verwenden möchten, müssen wir die WAL-Archivierung aktiviert haben. Dazu können wir zu ClusterControl -> TimescaleDB-Cluster auswählen -> Knotenaktionen -> WAL-Archivierung aktivieren gehen , oder gehen Sie einfach zu ClusterControl -> Select TimescaleDB Cluster -> Backup -> Settings und aktivieren Sie die Option „Point-in-Time-Recovery aktivieren (WAL-Archivierung) “, wie wir im folgenden Bild sehen werden.
Wir müssen bedenken, dass wir unsere Datenbank neu starten müssen, um die WAL-Archivierung zu aktivieren. Auch das kann ClusterControl für uns erledigen.
Zusätzlich zu den allen Backups gemeinsamen Optionen wie dem „Backup-Verzeichnis “ und die „Aufbewahrungsfrist für Sicherungen “, hier können wir auch die WAL Retention Period angeben. Standardmäßig ist 0, was für immer bedeutet.
Um zu bestätigen, dass die WAL-Archivierung aktiviert ist, können wir unseren Master-Knoten in ClusterControl -> Select TimescaleDB Cluster -> Nodes auswählen , und wir sollten die Meldung WAL-Archivierung aktiviert sehen, wie wir im folgenden Bild sehen können.
Ein Backup wiederherstellen
Sobald die Sicherung abgeschlossen ist, können wir sie mithilfe von ClusterControl wiederherstellen. Dazu in unserem Backup-Bereich (ClusterControl -> Select TimescaleDB Cluster -> Backup ), können wir "Backup wiederherstellen" oder direkt "Wiederherstellen" für das Backup auswählen, das wir wiederherstellen möchten.
Wir haben drei Möglichkeiten, die Sicherung wiederherzustellen. Wir können die Sicherung in einem vorhandenen Datenbankknoten wiederherstellen, die Sicherung auf einem eigenständigen Host wiederherstellen und überprüfen oder aus der Sicherung einen neuen Cluster erstellen.
Wenn wir versuchen, ein PITR-kompatibles Backup wiederherzustellen, müssen wir auch die Zeit angeben.
Die Daten werden so wiederhergestellt, wie sie zum angegebenen Zeitpunkt waren. Berücksichtigen Sie, dass die UTC-Zeitzone verwendet wird und dass unser TimescaleDB-Dienst im Master neu gestartet wird.
Wir können den Fortschritt unserer Wiederherstellung im Aktivitätsbereich in unserem ClusterControl überwachen.
Automatische Sicherungsüberprüfung
Ein Backup ist kein Backup, wenn es nicht wiederherstellbar ist. Das Überprüfen von Backups wird normalerweise von vielen vernachlässigt. Sehen wir uns an, wie ClusterControl die Überprüfung von TimescaleDB-Backups automatisieren und dabei helfen kann, Überraschungen zu vermeiden.
Wählen Sie in ClusterControl Ihren Cluster aus und gehen Sie zu „Backup " und wählen Sie dann „Backup erstellen “.
Die Funktion zur automatischen Überprüfung der Sicherung ist für geplante Sicherungen verfügbar. Wählen wir also „Geplante Sicherung“. ”-Option.
Beim Planen einer Sicherung müssen wir zusätzlich zur Auswahl der üblichen Optionen wie Methode oder Speicher auch Zeitplan/Häufigkeit angeben.
Im nächsten Schritt können wir unser Backup komprimieren und verschlüsseln und die Aufbewahrungsfrist festlegen. Hier haben wir auch die „Verify Backup ”-Funktion.
Um diese Funktion nutzen zu können, benötigen wir einen dedizierten Host (oder eine VM), der nicht Teil des Clusters ist.
ClusterControl installiert die Software und stellt die Sicherung auf diesem Host wieder her. Nach der Wiederherstellung können wir das Verifizierungssymbol im Bereich ClusterControl Backup sehen.
Schlussfolgerung
Heutzutage sind Backups in jeder Umgebung obligatorisch. Sie helfen Ihnen, Ihre Daten zu schützen. Inkrementelle Backups können dazu beitragen, die Zeit und den Speicherplatz zu reduzieren, die für den Backup-Prozess verwendet werden. Transaktionsprotokolle sind wichtig für Point-in-Time-Recovery. ClusterControl kann dabei helfen, den Backup-Prozess für Ihre TimescaleDB-Datenbanken zu automatisieren und im Fehlerfall mit wenigen Klicks wiederherzustellen. Außerdem können Sie das RPO minimieren, indem Sie das PITR-kompatible Backup verwenden und Ihren Notfallwiederherstellungsplan verbessern.