Tham số cấu hình wal_level Postgresql

Trong PostgreSQL, tham số cấu hình wal_level đóng vai trò quan trọng quyết định mức độ chi tiết của thông tin được ghi vào Nhật ký Viết trước (Write-Ahead Log – WAL)cách thức xử lý các nhật ký này. WAL là một thành phần thiết yếu đảm bảo tính nhất quán và bền vững của dữ liệu trong PostgreSQL.

WAL là gì?

Trước khi bất kỳ thay đổi nào được áp dụng vào các file dữ liệu chính của PostgreSQL, chúng sẽ được ghi vào các file phân đoạn WAL. Bằng cách này, ngay cả khi hệ thống gặp sự cố treo máy hoặc mất điện trong quá trình ghi dữ liệu, cơ sở dữ liệu vẫn có thể phục hồi về trạng thái nhất quán bằng cách phát lại các giao dịch chưa được cam kết từ các phân đoạn WAL.

wal_level:

Mặc dù WAL tự nó đã cung cấp một mức độ an toàn cho dữ liệu, việc lưu trữ các nhật ký này mang lại những lợi ích bổ sung:

  • Khôi phục điểm trong thời gian (Point-in-Time Recovery – PITR): Với các phân đoạn WAL được lưu trữ, bạn có thể khôi phục cơ sở dữ liệu về một thời điểm cụ thể, cho phép bạn phục hồi từ các sửa đổi dữ liệu vô tình hoặc quay lại trạng thái tốt đã biết.
  • Phục hồi sau thảm họa: Trong trường hợp xảy ra thảm họa lớn làm hỏng các file dữ liệu chính, bạn có thể sử dụng bản sao lưu cơ sở dữ liệu đầy đủ (base backup) cùng với các phân đoạn WAL đã lưu trữ để khôi phục cơ sở dữ liệu về trạng thái gần đây.
  • Sao chép: PostgreSQL có thể sử dụng các phân đoạn WAL đã lưu trữ để sao chép hiệu quả các thay đổi dữ liệu sang các máy chủ dự phòng.

Các tùy chọn wal_level:

  • minimum: Đây là mức độ chi tiết thấp nhất, chỉ ghi lại thông tin cần thiết để phục hồi cơ sở dữ liệu về trạng thái cuối cùng đã cam kết. Nó không đủ để thực hiện PITR.
  • replica: Mức độ này đảm bảo đủ thông tin được ghi lại để cho phép phục hồi hiệu quả các máy chủ dự phòng được sử dụng cho sao chép. Nó bao gồm dữ liệu cần thiết để làm lại và hoàn tác các thay đổi trong quá trình phục hồi.
  • logical: Đây là mức độ lưu trữ WAL toàn diện nhất. Nó ghi lại các thay đổi logic được thực hiện đối với cơ sở dữ liệu (ví dụ: INSERT, UPDATE, DELETE) thay vì các sửa đổi dữ liệu vật lý thô. Điều này cho phép các tùy chọn phục hồi linh hoạt hơn, bao gồm:
    • Giải mã logic: Bạn có thể sử dụng các công cụ để phân tích và giải thích các thay đổi logic trong WAL để hiểu các thao tác dữ liệu đã xảy ra.
    • Sao chép logic: Máy chủ dự phòng có thể áp dụng trực tiếp các thay đổi logic, có khả năng giảm thiểu việc sử dụng băng thông sao chép so với việc sao chép các sửa đổi dữ liệu thô.

Lựa chọn wal_level phù hợp:

Mức độ wal_level phù hợp phụ thuộc vào nhu cầu cụ thể của bạn:

  • replica: Nếu bạn chủ yếu cần khôi phục điểm cho máy chủ dự phòng hoặc phục hồi sau thảm họa, replica là lựa chọn đủ.
  • logical: Nếu bạn cần các khả năng phục hồi nâng cao như giải mã logic hoặc sao chép hiệu quả hơn, logical là lựa chọn tốt nhưng có thể ảnh hưởng nhẹ đến hiệu suất.

Điều kiện kèm theo:

  • Cài đặt archive_mode thường được bật cùng wal_level để đảm bảo các phân đoạn WAL được lưu trữ cho mục đích phục hồi.
  • Chọn wal_level phù hợp để cân bằng giữa tính năng phục hồi, hiệu suất và bảo mật.

 

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận