データはおそらく企業で最も価値のある資産であるため、データが安全であり、障害が発生した場合に復元できることを確認する必要があります。バックアップは、ディザスタリカバリプラン(DRP)で安全に保つための基本的な方法であり、必要に応じてバックアップを復元する準備をする必要があるため、適切なバックアップ戦略には、バックアップが使用可能であることを確認するための復元テストが含まれます。 。
このブログでは、強力なs9sツールを使用してClusterControlCLIからPostgreSQLとTimescaleDBのバックアップを復元する方法を説明します。
ClusterControl CLI
s9sとも呼ばれ、ClusterControlバージョン1.4.1で導入されたコマンドラインツールであり、ClusterControlシステムを使用してデータベースクラスターを操作、制御、および管理します。 ClusterControl CLIは、クラスター自動化の新しい扉を開き、Ansible、Puppet、Chefなどの既存のデプロイメント自動化ツールと簡単に統合できます。コマンドラインツールは、ClusterControlインストールでデフォルトで追加されたs9sと呼ばれるバイナリを実行することによって呼び出されます。
詳細については、公式ドキュメントを参照するか、ヘルプパラメータを指定してs9sコマンドを実行することで確認できます。
$ 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のバックアップを復元する方法を見てみましょう。
ClusterControlCLIを使用したバックアップの復元
このジョブに使用する必要のあるツールは、s9sバックアップです。 ClusterControl CLIを使用してデータベースのバックアップを表示、作成、または復元するために使用されます。
s9sバックアップ{オプション}
−−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を指定する必要があります。このパラメーターを省略して、すべてのクラスターで作成されたバックアップを一覧表示できます。
$ s9s backup --list \
--cluster-id=42 \
--long
このためには、バックアップを復元するクラスターIDと、復元するバックアップIDを指定する必要があります。
$ s9s backup --restore \
--cluster-id=42 \
--backup-id=22 \
--wait
$ s9s backup --verify \
--log \
--backup-id=26 \
--test-server=10.10.10.138 \
--cluster-id=42
すべてがうまくいった場合は、次のように表示されます。
ご覧のとおり、簡単なコマンドを実行するだけで、ClusterControl CLIを使用して簡単な方法でバックアップを確認、復元、さらには検証することができます。
ClusterControl CLIとその使用法の詳細については、公式ドキュメントを参照してください。