Data är förmodligen den mest värdefulla tillgången i ett företag, så du måste se till att den är säker och kan återställas i händelse av fel. Säkerhetskopiering är det grundläggande sättet att hålla det säkert i en Disaster Recovery Plan (DRP), och du måste vara beredd att återställa dem om det behövs, så en bra säkerhetskopieringsstrategi inkluderar ett återställningstest då och då för att se till att din säkerhetskopia är användbar .
I den här bloggen kommer vi att se hur man återställer en PostgreSQL- och TimescaleDB-säkerhetskopia från ClusterControl CLI med det kraftfulla s9s-verktyget.
ClusterControl CLI
Även känd som s9s, är ett kommandoradsverktyg som introducerats i ClusterControl version 1.4.1 för att interagera, kontrollera och hantera databaskluster med ClusterControl-systemet. ClusterControl CLI öppnar en ny dörr för klusterautomation där du enkelt kan integrera den med befintliga automationsverktyg för distribution som Ansible, Puppet, Chef, etc. Kommandoradsverktyget anropas genom att exekvera en binär som heter s9s som läggs till som standard i ClusterControl-installationen.
Du kan hitta mer information i den officiella dokumentationen eller till och med genom att köra kommandot s9s med hjälpparametern:
$ 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.
Dessutom har s9s-verktyget en man-sida för varje kommando för att få mer detaljerad information.
$ man s9s backup
Nu vet du vad s9s är, låt oss se hur du återställer en PostgreSQL- eller TimescaleDB-säkerhetskopia med den.
Återställa säkerhetskopior med ClusterControl CLI
Verktyget som du behöver använda för det här jobbet är s9s backup. Den används för att visa, skapa eller återställa säkerhetskopior av databas med ClusterControl CLI.
Användning
s9s backup {options}
Var alternativ finns:
−−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.
Exempel
Lista alla säkerhetskopior för kluster-ID 42:
Här måste du ange kluster-ID för att lista säkerhetskopiorna. Du kan utelämna denna parameter för att lista säkerhetskopian som skapats i alla kluster.
$ s9s backup --list \
--cluster-id=42 \
--long
Återställ backup-ID 22 på kluster-ID 42:
För detta måste du ange Cluster-ID där säkerhetskopian ska återställas och Backup ID som ska återställas.
$ s9s backup --restore \
--cluster-id=42 \
--backup-id=22 \
--wait
Verifiera skapade säkerhetskopior
Skapa ett jobb för att verifiera den givna säkerhetskopian som identifieras av backup-ID. Jobbet kommer att försöka installera databasprogramvaran på testservern med samma inställningar som för det givna klustret och sedan återställa säkerhetskopian på denna testserver. Jobbet återgår bara OK om säkerhetskopian har återställts.
$ s9s backup --verify \
--log \
--backup-id=26 \
--test-server=10.10.10.138 \
--cluster-id=42
Om allt gick bra kommer du att se:
Backup 26 har verifierats.
Slutsats
Som du kan se, bara genom att köra ett enkelt kommando, kan du kontrollera, återställa eller till och med verifiera dina säkerhetskopior på ett enkelt sätt med ClusterControl CLI.
För mer information om ClusterControl CLI och dess användning kan du följa den officiella dokumentationen.