Data mungkin adalah aset paling berharga di perusahaan, jadi Anda perlu memastikannya aman dan dapat dipulihkan jika terjadi kegagalan. Pencadangan adalah cara dasar untuk menjaganya tetap aman dalam Rencana Pemulihan Bencana (DRP), dan Anda harus bersiap untuk memulihkannya jika diperlukan, jadi strategi pencadangan yang baik mencakup uji pemulihan dari waktu ke waktu untuk memastikan cadangan Anda dapat digunakan .
Di blog ini, kita akan melihat cara memulihkan cadangan PostgreSQL dan TimescaleDB dari ClusterControl CLI menggunakan alat s9s yang canggih.
ClusterControl CLI
Juga dikenal sebagai s9s, adalah alat baris perintah yang diperkenalkan di ClusterControl versi 1.4.1 untuk berinteraksi, mengontrol, dan mengelola cluster database menggunakan sistem ClusterControl. ClusterControl CLI membuka pintu baru untuk otomatisasi cluster di mana Anda dapat dengan mudah mengintegrasikannya dengan alat otomatisasi penyebaran yang ada seperti Ansible, Puppet, Chef, dll. Alat baris perintah dipanggil dengan mengeksekusi biner yang disebut s9s yang ditambahkan secara default dalam instalasi ClusterControl.
Anda dapat menemukan informasi lebih lanjut di Dokumentasi Resmi atau bahkan dengan menjalankan perintah s9s dengan parameter bantuan:
$ 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.
Selain itu, alat s9s memiliki halaman manual untuk setiap perintah guna mendapatkan informasi yang lebih detail.
$ man s9s backup
Sekarang Anda tahu apa itu s9s, mari kita lihat cara memulihkan cadangan PostgreSQL atau TimescaleDB menggunakannya.
Memulihkan Cadangan menggunakan ClusterControl CLI
Alat yang perlu Anda gunakan untuk pekerjaan ini adalah pencadangan s9s. Ini digunakan untuk melihat, membuat, atau memulihkan cadangan basis data menggunakan ClusterControl CLI.
Penggunaan
s9s backup {options}
Di mana opsi berada:
−−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.
Contoh
Mencantumkan semua cadangan untuk ID cluster 42:
Di sini, Anda perlu menentukan ID Cluster untuk membuat daftar cadangan. Anda dapat menghilangkan parameter ini untuk membuat daftar cadangan yang dibuat di semua cluster.
$ s9s backup --list \
--cluster-id=42 \
--long
Pulihkan ID cadangan 22 pada ID cluster 42:
Untuk ini, Anda perlu menentukan Cluster-ID tempat untuk memulihkan cadangan, dan ID Cadangan untuk dipulihkan.
$ s9s backup --restore \
--cluster-id=42 \
--backup-id=22 \
--wait
Memverifikasi Cadangan yang Dibuat
Buat pekerjaan untuk memverifikasi cadangan yang diberikan yang diidentifikasi oleh ID cadangan. Pekerjaan akan mencoba menginstal perangkat lunak database di server pengujian menggunakan pengaturan yang sama seperti untuk cluster yang diberikan, kemudian memulihkan cadangan di server pengujian ini. Pekerjaan mengembalikan OK hanya jika cadangan berhasil dipulihkan.
$ s9s backup --verify \
--log \
--backup-id=26 \
--test-server=10.10.10.138 \
--cluster-id=42
Jika semuanya berjalan lancar, Anda akan melihat:
Cadangan 26 berhasil diverifikasi.
Kesimpulan
Seperti yang Anda lihat, hanya dengan menjalankan perintah sederhana, Anda dapat memeriksa, memulihkan, atau bahkan memverifikasi cadangan Anda dengan cara yang mudah menggunakan ClusterControl CLI.
Untuk informasi lebih lanjut tentang ClusterControl CLI dan penggunaannya, Anda dapat mengikuti Dokumentasi Resmi.