PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL- und TimescaleDB-Backup-Wiederherstellung mit ClusterControl CLI

Daten sind wahrscheinlich die wertvollsten Vermögenswerte in einem Unternehmen, daher müssen Sie sicherstellen, dass sie sicher sind und im Falle eines Ausfalls wiederhergestellt werden können. Backups sind die grundlegende Methode, um sie in einem Disaster Recovery Plan (DRP) zu schützen, und Sie müssen darauf vorbereitet sein, sie bei Bedarf wiederherzustellen. Daher beinhaltet eine gute Backup-Strategie von Zeit zu Zeit einen Wiederherstellungstest, um sicherzustellen, dass Ihr Backup verwendbar ist .

In diesem Blog werden wir sehen, wie man eine PostgreSQL- und TimescaleDB-Sicherung von der ClusterControl-CLI mit dem leistungsstarken s9s-Tool wiederherstellt.

ClusterControl-CLI

Auch bekannt als s9s, ist ein Befehlszeilentool, das in ClusterControl Version 1.4.1 eingeführt wurde, um mit Datenbank-Clustern unter Verwendung des ClusterControl-Systems zu interagieren, sie zu steuern und zu verwalten. Die ClusterControl-CLI öffnet eine neue Tür für die Cluster-Automatisierung, wo Sie sie einfach in vorhandene Bereitstellungsautomatisierungstools wie Ansible, Puppet, Chef usw. integrieren können. Das Befehlszeilentool wird durch Ausführen einer Binärdatei namens s9s aufgerufen, die standardmäßig in der ClusterControl-Installation hinzugefügt wird.

Weitere Informationen finden Sie in der offiziellen Dokumentation oder sogar durch Ausführen des Befehls s9s mit dem Hilfeparameter:

$ s9s --help

Usage:
  s9s COMMAND [OPTION...]

Where COMMAND is:
    account - to manage accounts on clusters.
      alarm - to manage alarms.
     backup - to view, create and restore database backups.
    cluster - to list and manipulate clusters.
 controller - to manage Cmon controllers.
        job - to view jobs.
maintenance - to view and manipulate maintenance periods.
   metatype - to print metatype information.
       node - to handle nodes.
    process - to view processes running on nodes.
replication - to monitor and control data replication.
     report - to manage reports.
     script - to manage and execute scripts.
     server - to manage hardware resources.
      sheet - to manage spreadsheets.
       user - to manage users.

Generic options:
  -c, --controller=URL       The URL where the controller is found.
  --config-file=PATH         Specify the configuration file for the program.
  --help                     Show help message and exit.
  -P, --controller-port INT  The port of the controller.
  -p, --password=PASSWORD    The password for the Cmon user.
  --private-key-file=FILE    The name of the file for authentication.
  --rpc-tls                  Use TLS encryption to controller.
  -u, --cmon-user=USERNAME   The username on the Cmon system.
  -v, --verbose              Print more messages than normally.
  -V, --version              Print version information and exit.


Formatting:
  --batch                    No colors, no human readable, pure data.
  --color=always|auto|never  Sets if colors should be used in the output.
  --date-format=FORMAT       The format of the dates printed.
  -l, --long                 Print the detailed list.
  --log-file=PATH            The path where the s9s client puts its logs.
  --no-header                Do not print headers.
  --only-ascii               Do not use UTF8 characters.
  --print-json               Print the sent/received JSon messages.
  --print-request            Print the sent JSon request message.


Job related options:
  --job-tags=LIST            Set job tags when creating a new job.
  --log                      Wait and monitor job messages.
  --recurrence=CRONTABSTRING Timing information for recurring jobs.
  --schedule=DATE&TIME       Run the job at the specified time.
  --timeout=SECONDS          Timeout value for the entire job.
  --wait                     Wait until the job ends.

Außerdem hat das s9s-Tool eine Manpage für jeden Befehl, um detailliertere Informationen zu erhalten.

$ man s9s backup

Jetzt wissen Sie, was s9s ist, sehen wir uns an, wie Sie damit eine PostgreSQL- oder TimescaleDB-Sicherung wiederherstellen können.

Wiederherstellen von Sicherungen mit der ClusterControl-CLI

Das Tool, das Sie für diesen Job verwenden müssen, ist s9s backup. Es wird zum Anzeigen, Erstellen oder Wiederherstellen von Datenbanksicherungen mithilfe der ClusterControl-CLI verwendet.

Verwendung

s9s-Sicherung {Optionen}

Wo Optionen sind:

−−restore Restores an existing backup.
−−backup-id=ID The ID of the backup.
−−cluster-id=ID The ID of the cluster.
--verify                   Verify an existing backup on a test server.
--test-server=HOSTNAME     Verify the backup by restoring on this server.
-l, --long                 Print the detailed list.
--wait                     Wait until the job ends.
--log                      Wait and monitor job messages.

Beispiele

Alle Sicherungen für Cluster-ID 42 auflisten:

Hier müssen Sie die Cluster-ID angeben, um die Backups aufzulisten. Sie können diesen Parameter weglassen, um die in allen Clustern erstellte Sicherung aufzulisten.

$ s9s backup --list \
--cluster-id=42 \
--long

Sicherungs-ID 22 auf Cluster-ID 42 wiederherstellen:

Dazu müssen Sie die Cluster-ID angeben, wo die Sicherung wiederhergestellt werden soll, und die Sicherungs-ID, die wiederhergestellt werden soll.

$ s9s backup --restore \
--cluster-id=42 \
--backup-id=22 \
--wait

Erstellte Sicherungen überprüfen

Erstellen Sie einen Job, um die angegebene Sicherung zu überprüfen, die durch die Sicherungs-ID identifiziert wird. Der Job versucht, die Datenbanksoftware auf dem Testserver mit denselben Einstellungen wie für den angegebenen Cluster zu installieren und dann die Sicherung auf diesem Testserver wiederherzustellen. Der Job gibt nur dann OK zurück, wenn die Sicherung erfolgreich wiederhergestellt wurde.

$ s9s backup --verify \
--log \
--backup-id=26 \
--test-server=10.10.10.138 \
--cluster-id=42

Wenn alles geklappt hat, sehen Sie:

Sicherung 26 wurde erfolgreich verifiziert.

Fazit

Wie Sie sehen können, können Sie Ihre Sicherungen einfach durch Ausführen eines einfachen Befehls mit der ClusterControl-Befehlszeilenschnittstelle überprüfen, wiederherstellen oder sogar verifizieren.

Weitere Informationen über die ClusterControl-CLI und ihre Verwendung finden Sie in der offiziellen Dokumentation.