sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL og TimescaleDB backup gendannelse ved hjælp af ClusterControl CLI

Data er sandsynligvis det mest værdifulde aktiv i en virksomhed, så du skal sørge for, at det er sikkert og kan gendannes i tilfælde af fejl. Sikkerhedskopier er den grundlæggende måde at holde det sikkert i en Disaster Recovery Plan (DRP), og du skal være forberedt på at gendanne dem, hvis det er nødvendigt, så en god backup-strategi inkluderer en gendannelsestest fra tid til anden for at sikre, at din backup er brugbar .

I denne blog vil vi se, hvordan man gendanner en PostgreSQL- og TimescaleDB-sikkerhedskopi fra ClusterControl CLI ved hjælp af det kraftfulde s9s-værktøj.

ClusterControl CLI

Også kendt som s9s, er et kommandolinjeværktøj introduceret i ClusterControl version 1.4.1 til at interagere, kontrollere og administrere databaseklynger ved hjælp af ClusterControl-systemet. ClusterControl CLI åbner en ny dør til klyngeautomatisering, hvor du nemt kan integrere den med eksisterende installationsautomatiseringsværktøjer som Ansible, Puppet, Chef osv. Kommandolinjeværktøjet påkaldes ved at udføre en binær kaldet s9s, der er tilføjet som standard i ClusterControl-installationen.

Du kan finde flere oplysninger i den officielle dokumentation eller endda ved at køre kommandoen s9s med hjælpeparameteren:

$ 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.

S9s-værktøjet har også en man-side for hver kommando for at få mere detaljerede oplysninger.

$ man s9s backup

Nu ved du, hvad s9s er, lad os se, hvordan du gendanner en PostgreSQL- eller TimescaleDB-sikkerhedskopi ved hjælp af det.

Gendannelse af sikkerhedskopier ved hjælp af ClusterControl CLI

Det værktøj, du skal bruge til dette job, er s9s backup. Det bruges til at se, oprette eller gendanne databasesikkerhedskopier ved hjælp af ClusterControl CLI.

Brug

s9s backup {options}

Hvor muligheder er:

−−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.

Eksempler

Vis alle sikkerhedskopier til klynge-ID 42:

Her skal du angive klynge-id'et for at vise sikkerhedskopierne. Du kan udelade denne parameter for at vise den sikkerhedskopi, der er oprettet i alle klynger.

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

Gendan backup-ID 22 på klynge-ID 42:

For dette skal du angive Cluster-ID, hvor sikkerhedskopien skal gendannes, og Backup ID, der skal gendannes.

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

Bekræftelse af oprettede sikkerhedskopier

Opret et job for at bekræfte den givne sikkerhedskopi identificeret af backup-id'et. Jobbet vil forsøge at installere databasesoftwaren på testserveren med de samme indstillinger som for den givne klynge, og derefter gendanne sikkerhedskopien på denne testserver. Jobbet returneres kun OK, hvis sikkerhedskopien er gendannet.

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

Hvis alt gik fint, vil du se:

Backup 26 blev bekræftet.

Konklusion

Som du kan se, kan du blot ved at køre en simpel kommando kontrollere, gendanne eller endda verificere dine sikkerhedskopier på en nem måde ved hjælp af ClusterControl CLI.

For mere information om ClusterControl CLI og dets brug, kan du følge den officielle dokumentation.


  1. SQL Server Cursor Types - Dynamic Cursor | SQL Server Tutorial / TSQL Tutorial

  2. Hvad er den bedste måde at håndtere DBNull's på

  3. Konverter 'datetime' til 'time' i SQL Server (T-SQL-eksempler)

  4. Forklar Planlæg Cost Pain Point