Dane są prawdopodobnie najcenniejszym zasobem w firmie, więc musisz upewnić się, że są bezpieczne i można je przywrócić w przypadku awarii. Kopie zapasowe to podstawowy sposób na zapewnienie bezpieczeństwa w planie odzyskiwania po awarii (DRP). Musisz być przygotowany na ich przywrócenie w razie potrzeby, więc dobra strategia tworzenia kopii zapasowych obejmuje od czasu do czasu test przywracania, aby upewnić się, że kopia zapasowa nadaje się do użytku .
W tym blogu zobaczymy, jak przywrócić kopię zapasową PostgreSQL i TimescaleDB z CLI ClusterControl za pomocą potężnego narzędzia s9s.
ClusterControl CLI
Znane również jako s9s, to narzędzie wiersza poleceń wprowadzone w ClusterControl w wersji 1.4.1 do interakcji, kontroli i zarządzania klastrami baz danych za pomocą systemu ClusterControl. ClusterControl CLI otwiera nowe drzwi dla automatyzacji klastra, gdzie można go łatwo zintegrować z istniejącymi narzędziami do automatyzacji wdrażania, takimi jak Ansible, Puppet, Chef itp. Narzędzie wiersza poleceń jest wywoływane przez wykonanie pliku binarnego o nazwie s9s dodanego domyślnie w instalacji ClusterControl.
Więcej informacji można znaleźć w oficjalnej dokumentacji lub nawet uruchamiając polecenie s9s z parametrem pomocy:
$ 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.
Ponadto narzędzie s9s ma stronę podręcznika dla każdego polecenia, aby uzyskać bardziej szczegółowe informacje.
$ man s9s backup
Teraz wiesz, czym jest s9s, zobaczmy, jak przywrócić kopię zapasową PostgreSQL lub TimescaleDB za jej pomocą.
Przywracanie kopii zapasowych za pomocą ClusterControl CLI
Narzędziem, którego potrzebujesz do tego zadania, jest kopia zapasowa s9s. Służy do przeglądania, tworzenia lub przywracania kopii zapasowych bazy danych za pomocą ClusterControl CLI.
Użycie
kopia zapasowa s9s {opcje}
Gdzie są opcje:
−−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.
Przykłady
Wyświetl wszystkie kopie zapasowe dla klastra o identyfikatorze 42:
Tutaj musisz określić identyfikator klastra, aby wyświetlić listę kopii zapasowych. Możesz pominąć ten parametr, aby wyświetlić kopię zapasową utworzoną we wszystkich klastrach.
$ s9s backup --list \
--cluster-id=42 \
--long
Przywróć identyfikator kopii zapasowej 22 na identyfikator klastra 42:
W tym celu musisz określić identyfikator Cluster-ID, gdzie przywrócić kopię zapasową, oraz identyfikator kopii zapasowej, który ma zostać przywrócony.
$ s9s backup --restore \
--cluster-id=42 \
--backup-id=22 \
--wait
Weryfikowanie utworzonych kopii zapasowych
Utwórz zadanie, aby zweryfikować daną kopię zapasową identyfikowaną przez identyfikator kopii zapasowej. Zadanie podejmie próbę zainstalowania oprogramowania bazy danych na serwerze testowym przy użyciu tych samych ustawień, co dla danego klastra, a następnie przywróci kopię zapasową na tym serwerze testowym. Zadanie zwraca OK tylko wtedy, gdy kopia zapasowa zostanie pomyślnie przywrócona.
$ s9s backup --verify \
--log \
--backup-id=26 \
--test-server=10.10.10.138 \
--cluster-id=42
Jeśli wszystko poszło dobrze, zobaczysz:
Kopia zapasowa 26 została pomyślnie zweryfikowana.
Wnioski
Jak widać, po prostu uruchamiając proste polecenie, możesz w łatwy sposób sprawdzić, przywrócić, a nawet zweryfikować swoje kopie zapasowe za pomocą ClusterControl CLI.
Więcej informacji o ClusterControl CLI i jego użyciu można znaleźć w oficjalnej dokumentacji.