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

Tạo chế độ chờ lạnh cho PostgreSQL bằng Amazon AWS

Nhu cầu đạt được Tính sẵn sàng cao của cơ sở dữ liệu là một nhiệm vụ khá phổ biến và thường là bắt buộc. Nếu công ty của bạn có ngân sách hạn chế, thì việc duy trì một nô lệ nhân bản (hoặc nhiều hơn một) đang chạy trên cùng một nhà cung cấp đám mây (chỉ cần chờ đợi nếu một ngày nào đó cần thiết) có thể tốn kém. Tùy thuộc vào loại ứng dụng, có một số trường hợp cần thiết một nô lệ sao chép để cải thiện RTO (Mục tiêu thời gian khôi phục).

Tuy nhiên, có một tùy chọn khác nếu công ty của bạn có thể chấp nhận một thời gian ngắn để đưa hệ thống của bạn trở lại trực tuyến.

Cold Standby, là một phương pháp dự phòng trong đó bạn có một nút dự phòng (làm dự phòng) cho nút chính. Nút này chỉ được sử dụng khi lỗi chính. Thời gian còn lại, nút chờ nguội sẽ tắt và chỉ được sử dụng để tải bản sao lưu khi cần thiết.

Để sử dụng phương pháp này, công ty cần phải có chính sách sao lưu được xác định trước (có dự phòng) theo RPO (Mục tiêu Điểm khôi phục) có thể chấp nhận được đối với công ty. Việc mất 12 giờ dữ liệu có thể chấp nhận được đối với doanh nghiệp hoặc mất chỉ một giờ có thể là một vấn đề lớn. Mọi công ty và ứng dụng phải xác định tiêu chuẩn của riêng họ.

Trong blog này, bạn sẽ học cách tạo chính sách sao lưu và cách khôi phục nó về Máy chủ dự phòng lạnh bằng cách sử dụng ClusterControl và tích hợp của nó với Amazon AWS.

Đối với blog này, chúng tôi sẽ giả định rằng bạn đã có tài khoản AWS và đã cài đặt ClusterControl. Mặc dù chúng tôi sẽ sử dụng AWS làm nhà cung cấp dịch vụ đám mây trong ví dụ này, nhưng bạn có thể sử dụng AWS khác. Chúng tôi sẽ sử dụng cấu trúc liên kết PostgreSQL sau được triển khai bằng ClusterControl:

  • 1 Nút chính PostgreSQL
  • 2 Nút dự phòng nóng của PostgreSQL
  • 2 Cân bằng tải (HAProxy + Keepalived)

Tạo Chính sách sao lưu được chấp nhận

Cách tốt nhất để tạo loại chính sách này là lưu trữ các tệp sao lưu ở ba nơi khác nhau, một tệp đượ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à cái cuối cùng trong đám mây.

Bạn có thể cải thiện vấn đề này bằng cách sử dụng các bản sao lưu đầy đủ, gia tăng và khác biệt. Với ClusterControl, bạn có thể thực hiện tất cả các phương pháp hay nhất ở trên, tất cả từ cùng một hệ thống, với giao diện người dùng thân thiện và dễ sử dụng. Hãy bắt đầu bằng cách tạo tích hợp AWS trong ClusterControl.

Định cấu hình Tích hợp AWS ClusterControl

Đi tới ClusterControl -> Tích hợp -> Nhà cung cấp đám mây -> Thêm thông tin đăng nhập trên đám mây.

Chọn nhà cung cấp dịch vụ đám mây. Chúng tôi hỗ trợ AWS, Google Cloud hoặc Azure. Trong trường hợp này, hãy chọn AWS và tiếp tục.

Tại đây, bạn cần thêm Tên, Vùng mặc định và AWS khóa ID và khóa bí mật. Để lấy hoặc tạo những cái cuối cùng này, bạn nên chuyển đến phần IAM (Quản lý danh tính và quyền truy cập) trên bảng điều khiển quản lý AWS. Để biết thêm thông tin, bạn có thể tham khảo tài liệu của chúng tôi hoặc tài liệu AWS.

Bây giờ bạn đã tạo tích hợp, hãy lên lịch sao lưu đầu tiên bằng cách sử dụng ClusterControl.

Lập lịch sao lưu với ClusterControl

Đi tới ClusterControl -> Chọn Cụm PostgreSQL -> Sao lưu -> Tạo Sao lưu.

Bạn có thể chọn nếu bạn muốn tạo một bản sao lưu ngay lập tức hoặc lên lịch sao lưu mới. Vì vậy, hãy chọn tùy chọn thứ hai và tiếp tục.

Khi lập lịch sao lưu, trước tiên, bạn cần chỉ định lịch /tần số. Sau đó, bạn phải chọn một phương pháp sao lưu (pg_dumpall, pg_basebackup, pgBackRest), máy chủ mà 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à khoảng thời gian lưu giữ cho bản sao lưu của bạn. Có một tính năng khác được gọi là “Xác minh bản sao lưu” mà bạn sẽ sớm thấy chi tiết hơn trong bài đăng blog này.

Nếu tùy chọn “Tải bản sao lưu lên đám mây” được bật, bạn ' Bạn sẽ thấy bước này, nơi bạn phải chọn thông tin đăng nhập đám mây và tạo hoặc chọn một nhóm S3 để lưu trữ bản sao lưu. Bạn cũng phải chỉ định khoảng thời gian lưu giữ.

Bây giờ bạn sẽ có bản sao lưu đã lên lịch trong phần Sao lưu lịch biểu của ClusterControl. Để đề cập đến các phương pháp hay nhất đã đề cập trước đó, bạn có thể lên lịch sao lưu để lưu trữ nó vào máy chủ bên ngoài (máy chủ ClusterControl) và trên đám mây, sau đó lên lịch sao lưu khác để lưu trữ cục bộ trong nút cơ sở dữ liệu để khôi phục nhanh hơn.

Khôi phục Bản sao lưu trên Amazon EC2

Sau khi sao lưu xong, bạn có thể khôi phục bằng cách sử dụng ClusterControl trong phần Sao lưu.

Tạo Phiên bản Amazon EC2

Trước hết, để khôi phục nó, bạn sẽ cần một nơi nào đó để thực hiện việc đó, vì vậy hãy tạo một phiên bản Amazon EC2 cơ bản. Đi tới "Phiên bản khởi chạy" trong bảng điều khiển quản lý AWS trong phần EC2 và định cấu hình phiên bản của bạn.

Khi phiên bản của bạn được tạo, bạn sẽ cần sao chép SSH công khai từ máy chủ ClusterControl.

Khôi phục Bản sao lưu bằng ClusterControl

Bây giờ bạn có phiên bản EC2 mới, hãy sử dụng nó để khôi phục bản sao lưu ở đó. Đối với điều này, trong ClusterControl của bạn, hãy chuyển đến phần sao lưu (ClusterControl -> Chọn Cluster -> Sao lưu), và ở đó bạn có thể chọn "Khôi phục bản sao lưu" hoặc trực tiếp "Khôi phục" trên bản sao lưu mà bạn muốn khôi phục.

Bạn có ba tùy chọn để khôi phục bản sao lưu. Bạn có thể khôi phục bản sao lưu trong một nút cơ sở dữ liệu hiện có, khôi phục và xác minh bản sao lưu trên một máy chủ độc lập hoặc tạo một cụm mới từ bản sao lưu. Khi bạn muốn tạo một nút chờ lạnh, hãy sử dụng tùy chọn thứ hai “Khôi phục và xác minh trên máy chủ độc lập”.

Bạn sẽ cần một máy chủ (hoặc máy ảo) chuyên dụng không phải là một phần của cụm để khôi phục bản sao lưu, vì vậy hãy sử dụng cá thể EC2 được tạo cho công việc này. ClusterControl sẽ cài đặt phần mềm và nó sẽ khôi phục bản sao lưu trong máy chủ lưu trữ này.

Nếu tùy chọn “Tắt máy chủ sau khi sao lưu đã được khôi phục” được bật, ClusterControl sẽ dừng nút cơ sở dữ liệu sau khi hoàn thành công việc khôi phục và đó chính xác là những gì chúng ta cần cho quá trình tạo chế độ chờ lạnh này.

Bạn có thể theo dõi tiến trình sao lưu trong phần ClusterControl Activity.

Sử dụng Tính năng Sao lưu Xác minh ClusterControl

Một bản sao lưu không phải là bản sao lưu nếu nó không được khôi phục. Vì vậy, bạn nên đảm bảo rằng bản sao lưu đang hoạt động và thường xuyên khôi phục nó trong nút chờ nguội.

Tính năng sao lưu ClusterControl Verify Backup này là một cách để tự động hóa việc bảo trì một nút chờ nguội khôi phục một bản sao lưu gần đây để giữ cho tính năng này luôn cập nhật nhất có thể tránh công việc khôi phục sao lưu thủ công. Hãy xem nó hoạt động như thế nào.

Là tác vụ “Khôi phục và xác minh trên máy chủ độc lập”, nó sẽ yêu cầu máy chủ chuyên dụng (hoặc máy ảo) không phải là một phần của cụm để khôi phục bản sao lưu, vì vậy hãy sử dụng cùng một phiên bản EC2 tại đây.

Tính năng sao lưu tự động xác minh khả dụng cho các bản sao lưu đã lên lịch. Vì vậy, hãy đi tới ClusterControl -> Chọn Cụm PostgreSQL -> Sao lưu -> Tạo Sao lưu và lặp lại các bước bạn đã thấy trước đó để lên lịch sao lưu mới.

Trong bước thứ hai, bạn sẽ có tính năng “Xác minh sao lưu” để kích hoạt nó.

Sử dụng các tùy chọn trên, ClusterControl sẽ cài đặt phần mềm và khôi phục bản sao lưu trên máy chủ. Sau khi khôi phục nó, nếu mọi thứ đều ổn, bạn sẽ thấy biểu tượng xác minh trong phần ClusterControl Backup.

Kết luận

Nếu bạn có ngân sách hạn chế, nhưng yêu cầu Tính sẵn sàng cao, bạn có thể sử dụng nút PostgreSQL ở chế độ chờ lạnh có thể hợp lệ hoặc không tùy thuộc vào RTO và RPO của công ty. Trong blog này, chúng tôi đã hướng dẫn bạn cách lập lịch sao lưu (theo chính sách kinh doanh của bạn) và cách khôi phục thủ công. Chúng tôi cũng đã hướng dẫn cách khôi phục bản sao lưu tự động trong Máy chủ dự phòng lạnh bằng cách sử dụng ClusterControl, Amazon S3 và Amazon EC2.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự cố kết nối với SQLAlchemy và nhiều quy trình

  2. Postgres và chỉ mục trên các khóa ngoại và khóa chính

  3. Django ConnectionAbortedError:[WinError 10053] Một kết nối đã thiết lập đã bị phần mềm trong máy chủ của bạn hủy bỏ

  4. Không sử dụng NULL trong PostgreSQL vẫn sử dụng bitmap NULL trong tiêu đề?

  5. Bí danh tham chiếu trong mệnh đề WHERE