PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Възстановяване на резервно копие на PostgreSQL и TimescaleDB с помощта на ClusterControl CLI

Данните са може би най-ценният актив в една компания, така че трябва да сте сигурни, че са безопасни и могат да бъдат възстановени в случай на повреда. Архивите са основният начин да го запазите в безопасност в план за възстановяване при бедствия (DRP) и трябва да сте готови да ги възстановите, ако е необходимо, така че добрата стратегия за архивиране включва тест за възстановяване от време на време, за да се уверите, че вашият архив е използваем .

В този блог ще видим как да възстановим резервно копие на PostgreSQL и TimescaleDB от ClusterControl CLI с помощта на мощния инструмент s9s.

ClusterControl CLI

Също известен като s9s, е инструмент от командния ред, въведен в ClusterControl версия 1.4.1 за взаимодействие, управление и управление на клъстери от база данни с помощта на системата ClusterControl. ClusterControl CLI отваря нова врата за автоматизация на клъстерите, където можете лесно да го интегрирате със съществуващи инструменти за автоматизация на внедряване като Ansible, Puppet, Chef и др. Инструментът от командния ред се извиква чрез изпълнение на двоичен файл, наречен s9s, добавен по подразбиране в инсталацията на ClusterControl.

Можете да намерите повече информация в официалната документация или дори като изпълните командата s9s с параметъра help:

$ 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 има страница с ръководство за всяка команда, за да получите по-подробна информация.

$ man s9s backup

Сега знаете какво е s9s, нека да видим как да възстановим резервно копие на PostgreSQL или TimescaleDB с него.

Възстановяване на архиви с помощта на ClusterControl CLI

Инструментът, който трябва да използвате за тази задача, е архивиране на s9s. Използва се за преглед, създаване или възстановяване на архиви на база данни с помощта на ClusterControl CLI.

Употреба

резервно копие на s9s {options}

Къде са опциите:

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

Примери

Избройте всички архиви за клъстер ID 42:

Тук трябва да посочите идентификатора на клъстера, за да изброите резервните копия. Можете да пропуснете този параметър, за да изброите архива, създаден във всички клъстери.

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

Възстановяване на резервно копие ID 22 на клъстер ID 42:

За това ще трябва да посочите Cluster-ID къде да възстановите архива и Backup ID, който да бъде възстановен.

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

Проверка на създадените резервни копия

Създайте задание за проверка на даденото архивно копие, идентифицирано от идентификатора на архива. Задачата ще се опита да инсталира софтуера на базата данни на тестовия сървър, като използва същите настройки като за дадения клъстер, след което ще възстанови архива на този тестов сървър. Заданието се връща OK само ако архивът е успешно възстановен.

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

Ако всичко е минало добре, ще видите:

Резервното копие 26 беше успешно проверено.

Заключение

Както можете да видите, само като изпълните проста команда, можете да проверите, възстановите или дори да проверите вашите архивни копия по лесен начин с помощта на ClusterControl CLI.

За повече информация относно ClusterControl CLI и неговото използване можете да следвате официалната документация.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преглед на серийния псевдотип на данни за PostgreSQL

  2. Диалектът трябва да бъде изрично предоставен от v4.0.0

  3. вземете таблица JOIN като масив от резултати с PostgreSQL/NodeJS

  4. JPA flush срещу commit

  5. ГРЕШКА:низ в кавички без край на или близо