Umumnya Anda tidak akan menginstal Pgpool di server backend. Apa yang Anda lihat dalam gambar Anda adalah konfigurasi yang paling umum. Pgpool adalah server mandiri yang pada dasarnya duduk di depan basis data. Dua server Postgres sering dikonfigurasi dengan replikasi streaming; dengan satu menjadi tuan dan yang lain menjadi budak.
Ini memungkinkan Pgpool memuat keseimbangan semua kueri baca antara dua (atau lebih) database. Setiap pertanyaan yang melibatkan penulisan apa pun, akan dialihkan ke server master yang pada gilirannya akan bereplikasi ke slave.
Seperti yang dikatakan @Neil McGuigan , Anda juga dapat memiliki beberapa server Pgpool untuk mencapai ketersediaan tinggi yang lebih baik. Secara teknis Anda bisa menginstal Pgpool pada server database dalam konfigurasi ini, tetapi ini akan menjadi praktik yang buruk. Menjalankan beberapa server Pgpool adalah konfigurasi yang jauh lebih kompleks. Jika ini pertama kalinya Anda menggunakan Pgpool, saya akan mulai dengan satu server Pgpool sebelum membuat dua server berfungsi.
Dalam konfigurasi mana pun, server aplikasi Anda berpikir itu hanya terhubung ke database Postgres tunggal.
Tentang pgpool_regclass
, yang seharusnya menjadi pertanyaan terpisah, ini dari FAQ Pgpool :
Jika Anda menggunakan PostgreSQL 8.0 atau yang lebih baru, menginstal fungsi pgpool_regclass pada semua PostgreSQL untuk diakses oleh pgpool-II sangat disarankan, karena digunakan secara internal oleh pgpool-II. Tanpa ini, penanganan nama tabel duplikat dalam skema yang berbeda dapat menyebabkan masalah (tabel sementara tidak menjadi masalah).
Jika Anda menggunakan PostgreSQL 9.4.0 atau lebih baru dan pgpool-II 3.3.4 atau yang lebih baru, 3.4.0 atau lebih baru, Anda tidak perlu menginstal pgpool_regclass karena PostgreSQL 9.4 memiliki pgpool_regclass bawaan seperti fungsi "to_regclass".
Jika Anda memerlukan ini, ini hanya beberapa kode SQL yang berjalan di server master Postgres Anda untuk menambahkan fungsi yang digunakan Pgpool.
Dengan regclass, ada langkah tambahan yang harus Anda lakukan (saya sedang memikirkan insert_lock). Jika Anda mengkompilasi dari sumber (umumnya sebagian besar distribusi memiliki versi Pgpool yang benar-benar ketinggalan zaman), Anda harus mengkompilasi pustaka Postgres juga.
Jika Anda dikompilasi dari sumber, Anda harus masuk ke .../pgpool-II-3.X.X/src/sql/pgpool-regclass
folder dan melakukan a ./configure; make
.
Salin file pgpool-regclass.so ke direktori ekstensi Postgres. Pada saya Ubuntu 14.04 Server (hanya menggunakan Postgres 9.3 paket instalasi), terletak di: /usr/lib/postgresql/9.3/lib
. Ingatlah untuk melakukan ini untuk semua server Postgres.
Setelah itu selesai, maka Anda bisa menjalankan pgpool-regclass.sql
master. Ini hanya memetakan pgpool_regclass
fungsi ke perpustakaan yang Anda salin.