PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tùy chọn sao lưu đám mây cho PostgreSQL

Blog này đã được cập nhật vào 27/11/18 và 29/11/18 để thực hiện các thay đổi theo đề xuất của các nhà bình luận tuyệt vời của chúng tôi!

Như với bất kỳ thành phần nào khác của doanh nghiệp, cơ sở dữ liệu là hoạt động cực kỳ quan trọng bên trong của nó.

Cho dù đó là cốt lõi của doanh nghiệp hay chỉ là một thành phần khác, cơ sở dữ liệu phải được sao lưu thường xuyên và lưu trữ ở những vị trí an toàn để có thể khôi phục trong tương lai.

Tôi có nên sao lưu lên đám mây không?

Nguyên tắc chung là có ít nhất 3 bản sao của bất kỳ thứ gì có giá trị và lưu trữ các bản sao lưu đó ở các vị trí khác nhau. Các bản sao lưu trên cùng một ổ đĩa sẽ vô dụng nếu chính ổ đó bị chết, các bản sao lưu trên cùng một máy chủ cũng có nguy cơ xảy ra nếu máy chủ gặp sự cố và các bản sao lưu của cùng một tòa nhà cũng gặp nguy hiểm nếu tòa nhà bị cháy (nghiêm trọng và khó xảy ra, nhưng có thể).

Sao lưu đám mây cung cấp một giải pháp dễ dàng cho nhu cầu sao lưu bên ngoài trang web mà không cần phải lắp ráp phần cứng mới ở vị trí phụ. Có nhiều dịch vụ đám mây khác nhau cung cấp bộ nhớ sao lưu và việc lựa chọn dịch vụ phù hợp sẽ tùy thuộc vào nhu cầu sao lưu, yêu cầu kích thước, chi phí và bảo mật.

Lợi ích của việc sao lưu đám mây là rất nhiều, nhưng chủ yếu xoay quanh việc lưu trữ các bản sao lưu này ở một vị trí khác với cơ sở dữ liệu chính, cho phép chúng tôi có một mạng lưới an toàn trong trường hợp khắc phục thảm họa. Mặc dù chúng tôi sẽ không đi vào chi tiết về cách thiết lập từng tùy chọn sao lưu này, nhưng chúng tôi sẽ khám phá một số ý tưởng và cấu hình khác nhau để sao lưu.

Có một số nhược điểm khi lưu trữ các bản sao lưu trên đám mây, bắt đầu với quá trình chuyển. Nếu các bản sao lưu cho cơ sở dữ liệu cực kỳ lớn, có thể mất nhiều thời gian để tải lên thực tế và thậm chí có thể tăng chi phí nếu dịch vụ đám mây tính phí truyền băng thông. Nén được khuyến nghị để giữ thời gian và chi phí thấp.

Bảo mật có thể là một mối quan tâm khác với việc lưu trữ các bản sao lưu trên đám mây, trong khi một số công ty có các nguyên tắc nghiêm ngặt về nơi dữ liệu của họ được lưu trữ và tồn tại. Nếu vấn đề bảo mật là vấn đề đáng lo ngại, mọi bản sao lưu có thể được mã hóa trước khi xuất chúng sang dịch vụ lưu trữ đám mây.

Tùy chọn sao lưu đám mây

Có một số cách khác nhau để tạo bản sao lưu cơ sở dữ liệu cho PostgreSQL và tùy thuộc vào loại sao lưu, thời gian khôi phục, kích thước và các tùy chọn cơ sở hạ tầng sẽ khác nhau. Vì nhiều giải pháp lưu trữ đám mây chỉ đơn giản là lưu trữ với các giao diện người dùng API khác nhau, nên bất kỳ giải pháp sao lưu thông minh nào cũng có thể được tạo ra với một chút tập lệnh.

Sao lưu ảnh chụp nhanh

Ảnh chụp nhanh là các bản sao lưu có bản sao của cơ sở dữ liệu PostgreSQL tại một thời điểm cụ thể. Các bản sao lưu này được tạo bằng cách sử dụng pg_dump, chỉ đơn giản là kết xuất cơ sở dữ liệu vào một tệp duy nhất hoặc bằng cách sao chép thư mục dữ liệu cơ sở cho PostgreSQL. Một trong hai thứ này có thể được nén, sao chép sang các ổ đĩa và máy chủ khác và sao chép vào tùy chọn lưu trữ đám mây mong muốn.

Sử dụng pg_dump có nén

pg_dump -Fc severalnines > severalnines.dmp

Sao lưu thư mục dữ liệu bằng pg_basebackup

Chương trình pg_basebackup có thể được sử dụng để tạo một bản sao lưu cơ sở rất dễ dàng. Để biết thêm thông tin về tất cả các tính năng và cách thiết lập nó, hãy truy cập tài liệu chính thức về phiên bản PostgreSQL đang được sử dụng.

pg_basebackup --format=tar -z -D severalnines_basebackup

Amazon S3

Với nền tảng AWS của Amazon, S3 là một dịch vụ lưu trữ dữ liệu có thể được sử dụng để lưu trữ các bản sao lưu cơ sở dữ liệu. Trong khi các bản sao lưu có thể được tải lên thông qua giao diện web, Amazon CLI (Giao diện Dòng lệnh) có thể được sử dụng để thực hiện việc đó từ dòng lệnh và thông qua các tập lệnh tự động hóa sao lưu. Thông tin về AWS CLI có thể được tìm thấy tại đây. Nếu các bản sao lưu được lưu giữ trong thời gian rất dài và thời gian khôi phục không phải là vấn đề đáng lo ngại, thì các bản sao lưu có thể được chuyển sang dịch vụ Amazon’s Glacier, cung cấp dung lượng lưu trữ dài hạn rẻ hơn nhiều.

aws s3 cp severalnines.dmp s3://severalninesbucket/backups

Amazon cũng có các khu vực khác nhau cho các dịch vụ của họ trên khắp thế giới. Mặc dù chúng có lịch sử thời gian hoạt động tốt, việc trải rộng các bản sao lưu trên nhiều khu vực sẽ làm tăng các tùy chọn khôi phục sau thảm họa và giảm nguy cơ mất dữ liệu có giá trị.

Bộ nhớ Microsoft Azure

Nền tảng đám mây của Microsoft, Azure, có các tùy chọn lưu trữ với giao diện dòng lệnh của riêng họ, bạn có thể tìm thông tin tại đây.

az storage blob upload --container-name severalnines --file severalnines.dmp --name severalnines_backup

Bất kỳ dịch vụ lưu trữ đám mây hiện đại nào khác phải cung cấp các công cụ tương tự để sao chép các bản sao lưu vào máy chủ đám mây của họ, hãy tham khảo tài liệu của họ để biết chi tiết.

Bản sao lưu ở chế độ chờ

Đôi khi bản thân các bản sao lưu có thể cực kỳ lớn ngay cả khi được nén và việc tải bản sao lưu hàng ngày hoặc hàng tuần lên dịch vụ đám mây có thể nằm ngoài câu hỏi do tốc độ băng thông và / hoặc chi phí. Vì vậy, việc tạo bản sao lưu vào đám mây để lưu giữ an toàn khó hơn nhiều.

Một cách để làm điều này là để chế độ chờ ấm hoặc nóng chạy trong Máy ảo dựa trên đám mây, chẳng hạn như phiên bản EC2 của Amazon, nơi đó là bản sao chính xác của cơ sở dữ liệu chính và dữ liệu duy nhất được gửi đến phiên bản đám mây. là bất kỳ thay đổi nào, chứ không phải là một bản sao khác của toàn bộ cơ sở dữ liệu. Điều này sẽ yêu cầu chuyển toàn bộ cơ sở dữ liệu cùng một lúc, nhưng sau đó, chỉ những thay đổi cần được chuyển.

Nhưng một máy chủ dự phòng có thực sự là một bản sao lưu? Nếu cơ sở dữ liệu chính gặp sự cố, chế độ chờ có thể được chuyển thành chính và các ứng dụng được chuyển hướng đến nó, tuy nhiên, nếu mục tiêu là có các bản sao lưu cho một thời điểm nhất định trong tuần / tháng qua, thì điều này sẽ không thành công.

Để khắc phục điều này, một số điều có thể được thực hiện. Bản thân chế độ chờ có thể bị buộc phải có độ trễ, chẳng hạn như chỉ nhập dữ liệu khi nó đã cũ một ngày. Một cách khác là tạo bản sao lưu theo một trong những cách truyền thống (pg_dump, bản sao thư mục dữ liệu) trên đám mây chờ, có nghĩa là những bản sao lưu này sẽ không cần chuyển qua mạng vì chúng được tạo trên chính máy đám mây. Chuyển khoản trong mạng thường nhanh hơn và rẻ hơn.

ClusterControl sao lưu và đám mây

Somenines đã tạo ra ClusterControl, một hệ quản trị cơ sở dữ liệu giúp quản lý nhiều cơ sở dữ liệu khác nhau bao gồm cả PostgreSQL. Đó là một hộp công cụ tối ưu cho bất kỳ Quản trị viên Cơ sở dữ liệu hoặc Hệ thống nào có toàn quyền kiểm soát và khả năng hiển thị cơ sở dữ liệu của họ, đồng thời bao gồm các tính năng sao lưu rất tiện dụng.

Với ClusterControl, các bản sao lưu của cơ sở dữ liệu PostgreSQL có thể dễ dàng được quản lý, lên lịch và thiết lập để tự động sao chép các bản sao lưu được thực hiện vào các dịch vụ “lưu trữ đám mây”, bao gồm Amazon S3, Microsoft Azure và Google Cloud. Điều này giúp không cần phải viết kịch bản các công cụ tùy chỉnh để tải các bản sao lưu lên đám mây, cũng như mang lại giao diện người dùng đẹp cho các bản sao lưu nói chung.

Việc sao lưu cơ sở dữ liệu của chúng tôi luôn nên xảy ra và lưu trữ chúng ở các vị trí thứ hai, thứ ba và thứ tư là một thực tiễn rất tốt và phổ biến. Việc ném vào một tùy chọn đám mây làm tăng các tùy chọn khôi phục thảm họa và đặt thêm một lớp ổn định nữa cho doanh nghiệp, trong nhiều trường hợp, nếu cơ sở dữ liệu biến mất, công ty sẽ biến mất. Khám phá các tùy chọn sao lưu đám mây hôm nay có thể loại bỏ thảm họa vào ngày mai.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để chuyển đổi cơ sở dữ liệu postgres sang sqlite

  2. Chuyển đổi số tháng thành tên tháng trong PostgreSQL

  3. Làm cách nào để thêm cột nếu không tồn tại trên PostgreSQL?

  4. Làm cách nào để bạn tìm được số hàng cho tất cả các bảng của mình trong Postgres

  5. Lấy tên tháng ngắn trong PostgreSQL