Cách cấu hình chuyển đổi dự phòng tự động PostgreSQL Hotstandby


7

Tôi đã cấu hình hai máy chủ PostgreSQL để có chế độ chờ nóng bằng cách truyền phát.

Làm cách nào tôi có thể định cấu hình nó để khi máy chủ chính ngừng hoạt động, máy chủ nô lệ sẽ tự động trở thành chủ mới?


Tôi bối rối rằng tôi có thể chỉnh sửa bài viết của người khác. Ai có thể cho tôi biết tại sao?
franc

Câu trả lời:


12

Chuyển đổi dự phòng - tự động hoặc theo cách khác - không được PostgreSQL cung cấp trực tiếp.

Bạn sẽ cần các công cụ bên ngoài như repmgr .

Repmgr 2.0 mới được phát hành hỗ trợ tự động chuyển đổi. Tuy nhiên, tôi khuyên bạn nên suy nghĩ rất kỹ về việc bạn có thực sự nên sử dụng nó hay không. Tự động kích hoạt chuyển đổi dự phòng thường an toàn hơn rất nhiều.

Nếu bạn chọn sử dụng tính năng tự động chuyển đổi, bạn nên đảm bảo buộc tự động gửi tự động như một phần của hoạt động bình thường để đảm bảo nó thực sự hoạt động trong môi trường của bạn. Mặt khác, nó chỉ là một cảm giác an toàn sai lầm, và khi một cái gì đó thực sự bị phá vỡ, nó có thể sẽ khiến toàn bộ hệ thống rơi vào tình trạng lộn xộn.

Tất nhiên, bạn nên kiểm tra mọi thiết lập chuyển đổi dự phòng thường xuyên, nhưng ít nhất là với chuyển đổi dự phòng được kích hoạt thủ công, bạn biết rằng điều đó sẽ xảy ra và sẵn sàng bước vào nếu có vấn đề.

Đây không chỉ là vấn đề quảng bá máy chủ và xây dựng lại chủ cũ như một bản sao. Bạn cũng phải giải quyết nhu cầu thay đổi kết nối máy khách sang máy chủ mới (sử dụng một cái gì đó như PGBouncer, PGPool-II hoặc HAProxy). Bạn cũng cần phải chấm dứt một cách đáng tin cậy máy chủ cũ để không bị phân kỳ, trong đó cả hai máy chủ đều nghĩ rằng họ là chủ và một số khách hàng đang viết thư cho mỗi máy chủ đó.

Có một chút thông tin về tất cả những điều này trong tài liệu PostgreSQL và trên wiki, vì vậy tôi khuyên bạn nên bắt đầu từ đó.


Xin chào, bạn sử dụng giải pháp chuyển đổi dự phòng tự động phổ biến nào trong môi trường sản xuất? PGPool? hoặc pgbouncer + repmgr?
franc

Thông thường pgbouncer + repmgr, với repmgr được thiết lập để thay đổi cài đặt kết nối của pgbouncer và khởi động lại khi chuyển đổi dự phòng. pg_hba.conf và / hoặc tường lửa được đặt để khách hàng không thể kết nối trực tiếp với máy chủ DB, chỉ với pgbouncer.
Craig Ringer

Cảm ơn bạn đã trả lời, Nếu sử dụng pgbouncer + repmgr, chúng tôi có cần bất kỳ tập lệnh nào để quản lý chuyển đổi dự phòng không? Có thể nên viết một tập lệnh để sửa đổi tập tin cấu hình pgbouncer? Bạn có một blog về nó? cảm ơn !
franc

Tôi không có bất cứ thứ gì trong tay tôi sợ. Tôi sẽ thêm nó vào danh sách chủ đề của mình và cố gắng tìm một khoảnh khắc để viết.
Craig Ringer

@CraigRinger bạn có thể vui lòng làm rõ "Chuyển đổi dự phòng được kích hoạt bằng tay tự động thường an toàn hơn rất nhiều."?
www.tyme-it.com

0

Kể từ PostgreSQL 9.3+, bạn cũng có thể sử dụng PAF . Cơ sở dữ liệu của bạn bắt đầu / dừng / quảng cáo sẽ được thực hiện thông qua một tài nguyên trên cụm máy tạo nhịp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.