Nói chung, bạn sẽ không cài đặt PGpool trên các máy chủ phụ trợ. Những gì bạn nhìn thấy trong hình của bạn là cấu hình phổ biến nhất. PGpool là một máy chủ độc lập về cơ bản nằm trước cơ sở dữ liệu. Hai máy chủ Postgres thường được cấu hình với sao chép phát trực tuyến; với một người là chủ và người kia là nô lệ.
Điều này cho phép PGpool tải cân bằng tất cả các truy vấn đọc giữa hai (hoặc nhiều) cơ sở dữ liệu. Bất kỳ truy vấn nào liên quan đến bất kỳ ghi nào, sẽ được chuyển đến máy chủ chính, lần lượt sao chép vào nô lệ.
Như @Neil McGuigan đã nói , bạn cũng có thể có nhiều máy chủ PGpool để đạt được tính sẵn sàng cao tốt hơn. Về mặt kỹ thuật, bạn có thể cài đặt PGpool trên các máy chủ cơ sở dữ liệu trong cấu hình này, nhưng đây sẽ là một thực tế tồi. Chạy nhiều máy chủ PGpool là một cấu hình phức tạp hơn nhiều. Nếu đây là lần đầu tiên của bạn với PGpool, tôi sẽ bắt đầu với một máy chủ PGpool trước khi hai máy chủ hoạt động.
Trong cả hai cấu hình, máy chủ ứng dụng của bạn nghĩ rằng nó chỉ đang kết nối với một cơ sở dữ liệu Postgres duy nhất.
Về pgpool_regclass
, đây thực sự là một câu hỏi riêng biệt, đây là từ Câu hỏi thường gặp về PGpool :
Nếu bạn đang sử dụng PostgreSQL 8.0 trở lên, việc cài đặt chức năng pgpool_reggroup trên tất cả PostgreQuery để pgpool-II truy cập được khuyến khích, vì nó được pgpool-II sử dụng nội bộ. Không có điều này, việc xử lý các tên bảng trùng lặp trong lược đồ khác nhau có thể gây ra sự cố (các bảng tạm thời không phải là vấn đề).
Nếu bạn đang sử dụng PostgreSQL 9.4.0 trở lên và pgpool-II 3.3.4 trở lên, 3.4.0 trở lên, bạn không cần phải cài đặt pgpool_reg class vì PostgreQuery 9.4 có hàm pgpool_reg class tích hợp như hàm "to_reg class".
Nếu bạn cần điều này, nó chỉ là một số mã SQL chạy trên máy chủ chính Postgres của bạn để thêm chức năng mà PGpool sử dụng.
Với reggroup, có một bước bổ sung bạn phải làm (Tôi đã nghĩ đến insert_lock). Nếu bạn đang biên dịch từ nguồn (nói chung hầu hết các bản phân phối có các phiên bản thực sự lỗi thời của PGpool), bạn cũng sẽ phải biên dịch thư viện Postgres.
Nếu bạn biên dịch từ nguồn, bạn sẽ phải vào .../pgpool-II-3.X.X/src/sql/pgpool-regclass
thư mục và thực hiện a ./configure; make
.
Sao chép tệp pgpool-reggroup.so vào thư mục tiện ích mở rộng Postgres. Trên máy chủ Ubuntu 14.04 của tôi (chỉ cần sử dụng gói cài đặt Postgres 9.3), nó được đặt tại : /usr/lib/postgresql/9.3/lib
. Hãy nhớ làm điều này cho tất cả các máy chủ Postgres.
Khi đã hoàn thành, sau đó bạn có thể chạy pgpool-regclass.sql
trên bản gốc. Điều này chỉ ánh xạ pgpool_regclass
chức năng đến thư viện mà bạn đã sao chép.