Tất cả các công ty ngày nay đều có (hoặc nên có) Kế hoạch khôi phục sau thảm họa (DRP) để ngăn ngừa mất mát dữ liệu trong trường hợp thất bại; được xây dựng theo Mục tiêu Điểm khôi phục (RPO) có thể chấp nhận được cho doanh nghiệp.
Một bản sao lưu là bước khởi đầu cơ bản trong bất kỳ DRP nào, nhưng để đảm bảo khả năng sử dụng của bản sao lưu, một bản sao lưu duy nhất là không đủ. Thực tiễn tốt nhất là lưu trữ các tệp sao lưu ở ba nơi khác nhau, một được lưu trữ cục bộ trên máy chủ cơ sở dữ liệu (để khôi phục nhanh hơn), một tệp khác trong máy chủ sao lưu tập trung và tệp cuối cùng trên đám mây. Đối với bước cuối cùng này, bạn nên chọn một nhà cung cấp đám mây ổn định và mạnh mẽ để đảm bảo dữ liệu của bạn được lưu trữ chính xác và có thể truy cập bất kỳ lúc nào.
Trong blog này, chúng ta sẽ xem xét một trong những nhà cung cấp đám mây nổi tiếng nhất, Google Cloud Platform (GCP) và cách sử dụng nó để lưu trữ các bản sao lưu PostgreSQL của bạn trên đám mây.
Giới thiệu về Google Cloud
Google Cloud cung cấp nhiều loại sản phẩm cho khối lượng công việc của bạn. Hãy xem xét một số trong số chúng và cách chúng liên quan đến việc lưu trữ các bản sao lưu PostgreSQL trên đám mây.
- Lưu trữ đám mây:Nó cho phép lưu trữ trên toàn thế giới và truy xuất bất kỳ lượng dữ liệu nào vào bất kỳ lúc nào. Bạn có thể sử dụng Cloud Storage cho nhiều trường hợp, bao gồm cung cấp nội dung trang web, lưu trữ dữ liệu để lưu trữ và khôi phục thảm họa hoặc phân phối các đối tượng dữ liệu lớn cho người dùng thông qua tải xuống trực tiếp.
- Cloud SQL:Đây là dịch vụ cơ sở dữ liệu được quản lý hoàn toàn giúp bạn dễ dàng thiết lập, duy trì, quản lý và quản trị cơ sở dữ liệu PostgreSQL, MySQL và SQL Server trên đám mây.
- Compute Engine:Nó cung cấp các máy ảo chạy trong Google Cloud với sự hỗ trợ mở rộng từ các phiên bản đơn lẻ sang điện toán đám mây cân bằng tải, toàn cầu. Máy ảo của Compute Engine khởi động nhanh chóng, đi kèm với các tùy chọn đĩa cục bộ và ổn định hiệu suất cao, đồng thời mang lại hiệu suất nhất quán.
Lưu trữ Bản sao lưu trên Google Cloud
Nếu bạn đang chạy cơ sở dữ liệu PostgreSQL của mình trên Google Cloud với Cloud SQL, bạn có thể sao lưu trực tiếp từ Google Cloud Platform, tuy nhiên, không cần thiết phải chạy nó tại đây để lưu trữ các bản sao lưu PostgreSQL của bạn.
Google Cloud Storage
Tương tự như sản phẩm Amazon S3 nổi tiếng, nếu bạn không chạy cơ sở dữ liệu PostgreSQL của mình với Cloud SQL, thì đây là tùy chọn được sử dụng phổ biến nhất để lưu trữ các bản sao lưu hoặc tệp trong Google Cloud. Nó có thể truy cập được từ Google Cloud Platform, trong phần Bắt đầu hoặc trong menu bên trái của Bộ nhớ. Với Cloud Storage, bạn thậm chí có thể dễ dàng chuyển nội dung S3 của mình sang đây bằng cách sử dụng tính năng Truyền.
Cách sử dụng Google Cloud Storage
Trước tiên, bạn cần tạo Nhóm mới để lưu trữ dữ liệu của mình, vì vậy hãy chuyển đến Google Cloud Platform -> Bộ nhớ -> Tạo Nhóm
Trong bước đầu tiên, bạn chỉ cần thêm tên nhóm mới.
Trong bước tiếp theo, bạn có thể chỉ định loại vị trí (đa vùng theo mặc định) và địa điểm.
Sau đó, bạn có thể thay đổi lớp lưu trữ từ tiêu chuẩn (tùy chọn mặc định) thành đường gần hoặc đường lạnh.
Và sau đó, bạn có thể thay đổi quyền truy cập điều khiển.
Cuối cùng, bạn có một số cài đặt tùy chọn như mã hóa hoặc chính sách lưu giữ.
Bây giờ bạn đã tạo nhóm mới, chúng ta sẽ xem cách sử dụng nhóm.
Sử dụng Công cụ GSutil
GSutil là một ứng dụng Python cho phép bạn truy cập Cloud Storage từ dòng lệnh. Nó cho phép bạn thực hiện các nhiệm vụ quản lý nhóm và đối tượng khác nhau. Hãy xem cách cài đặt nó trên CentOS 7 và cách tải lên bản sao lưu bằng cách sử dụng nó.
Tải xuống Cloud SDK:
$ curl https://sdk.cloud.google.com | bash
Khởi động lại trình bao của bạn:
$ exec -l $SHELL
Chạy gcloud init và định cấu hình công cụ:
$ gcloud init
Lệnh này sẽ yêu cầu bạn đăng nhập vào tài khoản Google Cloud của mình bằng cách truy cập URL và thêm mã xác thực.
Bây giờ bạn đã cài đặt và định cấu hình công cụ, hãy tải một bản sao lưu vào nhóm.
Trước tiên, hãy kiểm tra các nhóm của chúng tôi đã tạo:
[[email protected] ~]# gsutil ls
gs://pgbackups1/
Và để sao chép bản sao lưu PostgreSQL của bạn (hoặc một tệp khác), hãy chạy:
[[email protected] ~]# gsutil cp /root/backups/BACKUP-3/base.tar.gz gs://pgbackups1/new_backup/
Copying file:///root/backups/BACKUP-3/base.tar.gz [Content-Type=application/x-tar]...
| [1 files][ 4.9 MiB/ 4.9 MiB]
Operation completed over 1 objects/4.9 MiB.
Nhóm đích phải tồn tại.
Và sau đó, bạn có thể liệt kê nội dung của thư mục new_backup để kiểm tra tệp đã tải lên:
[[email protected] ~]# gsutil ls -r gs://pgbackups1/new_backup/*
gs://pgbackups1/new_backup/
gs://pgbackups1/new_backup/base.tar.gz
Để biết thêm thông tin về việc sử dụng GSutil, bạn có thể xem tài liệu chính thức.
Google Cloud SQL
Nếu bạn muốn tập trung tất cả môi trường (cơ sở dữ liệu + bản sao lưu) vào Google Cloud, bạn có sẵn sản phẩm Cloud SQL này. Bằng cách này, bạn sẽ có cơ sở dữ liệu PostgreSQL của mình chạy trên Google Cloud và bạn cũng có thể quản lý các bản sao lưu từ cùng một nền tảng. Nó có thể truy cập được từ Google Cloud Platform, trong phần Bắt đầu hoặc trong menu bên trái của Bộ nhớ.
Cách sử dụng Google Cloud SQL
Để tạo phiên bản PostgreSQL mới, hãy truy cập Google Cloud Platform -> SQL -> Tạo phiên bản
Tại đây bạn có thể chọn giữa MySQL và PostgreSQL làm cơ sở dữ liệu. Đối với blog này, hãy tạo một phiên bản PostgreSQL.
Bây giờ, bạn cần thêm ID phiên bản, mật khẩu, vị trí và PostgreSQL phiên bản (9.6 hoặc 11).
Bạn cũng có một số tùy chọn cấu hình, như bật Địa chỉ IP công cộng, Loại máy và bộ nhớ và sao lưu, v.v.
Khi phiên bản Cloud SQL được tạo, bạn có thể chọn nó và bạn sẽ thấy tổng quan về phiên bản mới này.
Và bạn có thể vào phần Sao lưu để quản lý các bản sao lưu PostgreSQL của mình.
Để giảm chi phí lưu trữ, sao lưu hoạt động theo từng bước. Mỗi bản sao lưu chỉ lưu trữ những thay đổi đối với dữ liệu của bạn kể từ lần sao lưu trước.
Google Cloud Compute Engine
Tương tự như Amazon EC2, cách lưu trữ thông tin trên đám mây này tốn kém và tốn thời gian hơn Cloud Storage, nhưng bạn sẽ có toàn quyền kiểm soát môi trường lưu trữ sao lưu. Nó cũng có thể truy cập được từ Google Cloud Platform, trong phần Bắt đầu hoặc trong menu Tính toán bên trái.
Cách sử dụng Công cụ tính toán đám mây của Google
Để tạo một máy ảo mới, hãy chuyển đến Google Cloud Platform -> Compute Engine -> Create Instance
Tại đây, bạn cần thêm tên phiên bản, vùng và khu vực tạo ra nó. Ngoài ra, bạn cần chỉ định cấu hình máy theo yêu cầu phần cứng và sử dụng của mình, cũng như kích thước đĩa và hệ điều hành để sử dụng cho máy ảo mới.
Khi phiên bản đã sẵn sàng, bạn có thể lưu trữ các bản sao lưu tại đây, chẳng hạn , gửi nó qua SSH hoặc FTP bằng Địa chỉ IP bên ngoài. Hãy xem một ví dụ với Rsync và một ví dụ khác với lệnh SCP Linux.
Để kết nối qua SSH với máy ảo mới, hãy đảm bảo bạn đã thêm khóa SSH của mình vào cấu hình máy ảo.
[[email protected] ~]# rsync -avzP -e "ssh -i /home/sinsausti/.ssh/id_rsa" /root/backups/BACKUP-3/base.tar.gz [email protected]:/home/sinsausti/pgbackups/
sending incremental file list
base.tar.gz
5,155,420 100% 1.86MB/s 0:00:02 (xfr#1, to-chk=0/1)
sent 4,719,597 bytes received 35 bytes 629,284.27 bytes/sec
total size is 5,155,420 speedup is 1.09
[[email protected] ~]#
[[email protected] ~]# scp -i /home/sinsausti/.ssh/id_rsa /root/backups/BACKUP-5/base.tar.gz [email protected]:/home/sinsausti/pgbackups/
base.tar.gz 100% 2905KB 968.2KB/s 00:03
[[email protected] ~]#
Bạn có thể dễ dàng nhúng phần mềm này vào tập lệnh để thực hiện quy trình sao lưu tự động hoặc sử dụng sản phẩm này với hệ thống bên ngoài như ClusterControl để quản lý các bản sao lưu của bạn.
Quản lý Bản sao lưu của bạn với ClusterControl
Theo cách tương tự để bạn có thể quản lý tập trung cho cả cơ sở dữ liệu và sao lưu từ cùng một nền tảng bằng cách sử dụng Cloud SQL, bạn có thể sử dụng ClusterControl cho một số tác vụ quản lý liên quan đến cơ sở dữ liệu PostgreSQL của mình.
ClusterControl là một hệ thống quản lý toàn diện cho cơ sở dữ liệu mã nguồn mở tự động hóa các chức năng triển khai và quản lý, cũng như theo dõi sức khỏe và hiệu suất. ClusterControl hỗ trợ triển khai, quản lý, giám sát và mở rộng cho các công nghệ và môi trường cơ sở dữ liệu khác nhau. Vì vậy, ví dụ:bạn có thể tạo phiên bản Máy ảo của chúng tôi trên Google Cloud và triển khai / nhập dịch vụ cơ sở dữ liệu của chúng tôi với ClusterControl.
Tạo bản sao lưu
Đối với tác vụ này, hãy chuyển đến ClusterControl -> Chọn Cluster -> Backup -> Create Backup.
Bạn có thể tạo bản sao lưu mới hoặc định cấu hình bản sao lưu đã lên lịch. Đối với ví dụ của chúng tôi, chúng tôi sẽ tạo một bản sao lưu duy nhất ngay lập tức.
Bạn phải chọn một phương pháp, máy chủ mà từ đó bản sao lưu sẽ được thực hiện và nơi bạn muốn lưu trữ bản sao lưu. Bạn cũng có thể tải bản sao lưu của chúng tôi lên đám mây (AWS, Google hoặc Azure) bằng cách bật nút tương ứng.
Sau đó chỉ định việc sử dụng nén, mức độ nén, mã hóa và thời gian lưu giữ cho bản sao lưu của bạn.
Nếu bạn đã bật tùy chọn sao lưu tải lên đám mây, bạn sẽ thấy để chỉ định nhà cung cấp đám mây (trong trường hợp này là Google Cloud) và bằng chứng xác thực (ClusterControl -> Tích hợp -> Nhà cung cấp đám mây). Đối với Google Cloud, nó sử dụng Cloud Storage, vì vậy bạn phải chọn một Nhóm hoặc thậm chí tạo một nhóm mới để lưu trữ các bản sao lưu của mình.
Trên phần sao lưu, bạn có thể xem tiến trình sao lưu và thông tin như phương pháp, kích thước, vị trí, v.v.
Kết luận
Google Cloud có thể là một lựa chọn tốt để lưu trữ các bản sao lưu PostgreSQL của bạn và nó cung cấp các sản phẩm khác nhau để thực hiện việc này. Tuy nhiên, không cần thiết để cơ sở dữ liệu PostgreSQL của bạn chạy ở đó vì bạn chỉ có thể sử dụng nó làm vị trí lưu trữ.
Công cụ GSutil là một sản phẩm tốt để quản lý dữ liệu Cloud Storage của bạn từ dòng lệnh, dễ sử dụng và nhanh chóng.
Bạn cũng có thể kết hợp Google Cloud và ClusterControl để cải thiện hệ thống giám sát và môi trường có tính khả dụng cao PostgreSQL của mình. Nếu bạn muốn biết thêm về PostgreSQL trên Google Cloud, bạn có thể xem bài đăng trên blog chuyên sâu của chúng tôi.