Dữ liệu có lẽ là tài sản quý giá nhất trong một công ty, vì vậy bạn cần đảm bảo rằng nó an toàn và có thể được khôi phục trong trường hợp bị hỏng. Sao lưu là cách cơ bản để giữ an toàn trong Kế hoạch khôi phục sau thảm họa (DRP) và bạn cần chuẩn bị để khôi phục chúng nếu cần, vì vậy, một chiến lược sao lưu tốt bao gồm kiểm tra khôi phục thường xuyên để đảm bảo rằng bản sao lưu của bạn có thể sử dụng được .
Trong blog này, chúng ta sẽ xem cách khôi phục bản sao lưu PostgreSQL và TimescaleDB từ ClusterControl CLI bằng công cụ s9s mạnh mẽ.
ClusterControl CLI
Còn được gọi là s9s, là một công cụ dòng lệnh được giới thiệu trong ClusterControl phiên bản 1.4.1 để tương tác, kiểm soát và quản lý các cụm cơ sở dữ liệu bằng hệ thống ClusterControl. ClusterControl CLI mở ra một cánh cửa mới cho tự động hóa cụm, nơi bạn có thể dễ dàng tích hợp nó với các công cụ tự động hóa triển khai hiện có như Ansible, Puppet, Chef, v.v. Công cụ dòng lệnh được gọi bằng cách thực thi một tệp nhị phân có tên là s9s được thêm vào mặc định trong cài đặt ClusterControl.
Bạn có thể tìm thêm thông tin trong Tài liệu chính thức hoặc thậm chí bằng cách chạy lệnh s9s với tham số trợ giúp:
$ 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.
Ngoài ra, công cụ s9s có một trang hướng dẫn cho mỗi lệnh để có thêm thông tin chi tiết.
$ man s9s backup
Bây giờ bạn đã biết s9s là gì, hãy xem cách khôi phục bản sao lưu PostgreSQL hoặc TimescaleDB bằng cách sử dụng nó.
Khôi phục Bản sao lưu bằng ClusterControl CLI
Công cụ bạn cần sử dụng cho công việc này là bản sao lưu s9s. Nó được sử dụng để xem, tạo hoặc khôi phục các bản sao lưu cơ sở dữ liệu bằng ClusterControl CLI.
Cách sử dụng
sao lưu s9s {options}
Tùy chọn ở đâu:
−−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.
Ví dụ
Liệt kê tất cả các bản sao lưu cho ID cụm 42:
Tại đây, bạn cần chỉ định ID Cụm để liệt kê các bản sao lưu. Bạn có thể bỏ qua tham số này để liệt kê bản sao lưu đã tạo trong tất cả các cụm.
$ s9s backup --list \
--cluster-id=42 \
--long
Khôi phục ID dự phòng 22 trên ID cụm 42:
Đối với điều này, bạn sẽ cần chỉ định Cluster-ID nơi khôi phục bản sao lưu và ID dự phòng sẽ được khôi phục.
$ s9s backup --restore \
--cluster-id=42 \
--backup-id=22 \
--wait
Xác minh các Bản sao lưu đã Tạo
Tạo công việc để xác minh bản sao lưu đã cho được xác định bởi ID sao lưu. Công việc sẽ cố gắng cài đặt phần mềm cơ sở dữ liệu trên máy chủ thử nghiệm bằng cách sử dụng các cài đặt tương tự như đối với cụm đã cho, sau đó khôi phục bản sao lưu trên máy chủ thử nghiệm này. Công việc chỉ trả về OK nếu bản sao lưu được khôi phục thành công.
$ s9s backup --verify \
--log \
--backup-id=26 \
--test-server=10.10.10.138 \
--cluster-id=42
Nếu mọi thứ suôn sẻ, bạn sẽ thấy:
Bản sao lưu 26 đã được xác minh thành công.
Kết luận
Như bạn có thể thấy, chỉ bằng cách chạy một lệnh đơn giản, bạn có thể kiểm tra, khôi phục hoặc thậm chí xác minh các bản sao lưu của mình một cách dễ dàng bằng cách sử dụng ClusterControl CLI.
Để biết thêm thông tin về ClusterControl CLI và cách sử dụng nó, bạn có thể theo dõi Tài liệu chính thức.