Gegevens zijn waarschijnlijk het meest waardevolle bezit in een bedrijf, dus u moet ervoor zorgen dat het veilig is en kan worden hersteld in geval van storing. Back-ups zijn de basismanier om het veilig te houden in een Disaster Recovery Plan (DRP), en u moet voorbereid zijn om ze indien nodig te herstellen, dus een goede back-upstrategie omvat van tijd tot tijd een hersteltest om ervoor te zorgen dat uw back-up bruikbaar is .
In deze blog zullen we zien hoe u een PostgreSQL- en TimescaleDB-back-up kunt herstellen vanaf de ClusterControl CLI met behulp van de krachtige s9s-tool.
ClusterControl CLI
Ook bekend als s9s, is een opdrachtregelprogramma dat is geïntroduceerd in ClusterControl versie 1.4.1 voor interactie, controle en beheer van databaseclusters met behulp van het ClusterControl-systeem. ClusterControl CLI opent een nieuwe deur voor clusterautomatisering, waar u het eenvoudig kunt integreren met bestaande automatiseringstools voor implementatie, zoals Ansible, Puppet, Chef, enz. Het opdrachtregelprogramma wordt aangeroepen door een binair bestand met de naam s9s uit te voeren dat standaard is toegevoegd aan de ClusterControl-installatie.
Je kunt meer informatie vinden in de officiële documentatie of zelfs door het s9s-commando uit te voeren met de help-parameter:
$ 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.
De s9s-tool heeft ook een man-pagina voor elke opdracht om meer gedetailleerde informatie te krijgen.
$ man s9s backup
Nu je weet wat s9s is, laten we eens kijken hoe je een PostgreSQL- of TimescaleDB-back-up ermee kunt herstellen.
Back-ups terugzetten met ClusterControl CLI
Het hulpprogramma dat u voor deze taak moet gebruiken, is s9s-back-up. Het wordt gebruikt voor het bekijken, maken of herstellen van databaseback-ups met behulp van de ClusterControl CLI.
Gebruik
s9s-back-up {options}
Waar zijn de opties:
−−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.
Voorbeelden
Lijst alle back-ups voor cluster-ID 42:
Hier moet u de Cluster-ID opgeven om de back-ups weer te geven. U kunt deze parameter weglaten om de back-up weer te geven die in alle clusters is gemaakt.
$ s9s backup --list \
--cluster-id=42 \
--long
Back-up-ID 22 herstellen op cluster-ID 42:
Hiervoor moet u Cluster-ID opgeven waar de back-up moet worden teruggezet en de back-up-ID die moet worden hersteld.
$ s9s backup --restore \
--cluster-id=42 \
--backup-id=22 \
--wait
Aangemaakte back-ups verifiëren
Maak een taak om de gegeven back-up te verifiëren die wordt geïdentificeerd door de back-up-ID. De taak zal proberen de databasesoftware op de testserver te installeren met dezelfde instellingen als voor het gegeven cluster, en vervolgens de back-up op deze testserver herstellen. De taak keert alleen OK terug als de back-up met succes is hersteld.
$ s9s backup --verify \
--log \
--backup-id=26 \
--test-server=10.10.10.138 \
--cluster-id=42
Als alles goed is gegaan, ziet u:
Back-up 26 is geverifieerd.
Conclusie
Zoals u kunt zien, kunt u met ClusterControl CLI op een eenvoudige manier uw back-ups controleren, herstellen of zelfs verifiëren door een eenvoudige opdracht uit te voeren.
Voor meer informatie over de ClusterControl CLI en het gebruik ervan, kunt u de officiële documentatie volgen.