โดยทั่วไปคุณจะไม่ติดตั้ง Pgpool บนเซิร์ฟเวอร์ส่วนหลัง สิ่งที่คุณเห็นในภาพของคุณคือการกำหนดค่าที่พบบ่อยที่สุด Pgpool เป็นเซิร์ฟเวอร์แบบสแตนด์อโลนซึ่งตั้งอยู่ด้านหน้าของฐานข้อมูล เซิร์ฟเวอร์ Postgres สองเครื่องมักถูกกำหนดค่าด้วยการจำลองแบบการสตรีม กับคนที่เป็นนายและอีกคนเป็นทาส
สิ่งนี้อนุญาตให้ Pgpool โหลดยอดคงเหลือทั้งหมดที่อ่านแบบสอบถามระหว่างสองฐานข้อมูล (หรือมากกว่า) แบบสอบถามใด ๆ ที่เกี่ยวข้องกับการเขียนใด ๆ จะถูกส่งไปยังเซิร์ฟเวอร์หลักซึ่งจะทำซ้ำกับทาส
ในฐานะที่เป็น@Neil McGuigan กล่าวว่าคุณยังสามารถมีเซิร์ฟเวอร์ Pgpool หลายเพื่อให้บรรลุความพร้อมสูงที่ดีกว่า ในทางเทคนิคคุณสามารถติดตั้ง Pgpool บนเซิร์ฟเวอร์ฐานข้อมูลในการกำหนดค่านี้ได้ การเรียกใช้เซิร์ฟเวอร์ Pgpool หลายเครื่องเป็นการกำหนดค่าที่ซับซ้อนมากขึ้น ถ้านี่เป็นครั้งแรกที่คุณใช้ Pgpool ฉันจะเริ่มต้นด้วยเซิร์ฟเวอร์ Pgpool หนึ่งเครื่องก่อนที่จะทำงานสองเครื่อง
ในการกำหนดค่าเซิร์ฟเวอร์แอปพลิเคชันของคุณคิดว่ามันเป็นเพียงการเชื่อมต่อกับฐานข้อมูล Postgres เดียว
เกี่ยวกับpgpool_regclass
ซึ่งควรเป็นคำถามที่แยกต่างหากนี่คือคำถามที่พบบ่อยของ Pgpool :
หากคุณใช้ PostgreSQL 8.0 หรือใหม่กว่าแนะนำให้ติดตั้งฟังก์ชั่น pgpool_regclass ใน PostgreSQL ทั้งหมดเพื่อให้เข้าถึงได้โดย pgpool-II ขอแนะนำอย่างยิ่งเนื่องจากจะใช้ภายในโดย pgpool-II หากไม่มีสิ่งนี้การจัดการชื่อตารางซ้ำในสคีมาที่แตกต่างกันอาจทำให้เกิดปัญหาได้ (ตารางชั่วคราวไม่ใช่ปัญหา)
หากคุณใช้ PostgreSQL 9.4.0 หรือใหม่กว่าและ pgpool-II 3.3.4 หรือใหม่กว่า 3.4.0 หรือใหม่กว่าคุณไม่จำเป็นต้องติดตั้ง pgpool_regclass เนื่องจาก PostgreSQL 9.4 มี pgpool_regclass ในตัวเช่นฟังก์ชัน "to_regclass"
หากคุณต้องการสิ่งนี้เป็นเพียงโค้ด SQL บางตัวที่รันบนเซิร์ฟเวอร์หลัก Postgres ของคุณเพื่อเพิ่มฟังก์ชั่นที่ Pgpool ใช้
ด้วย regclass มีขั้นตอนเพิ่มเติมที่คุณต้องทำ (ฉันคิดถึง insert_lock) หากคุณกำลังรวบรวมจากแหล่งที่มา (โดยทั่วไปการกระจายส่วนใหญ่มีรุ่น Pgpool ที่ล้าสมัยจริงๆ) คุณจะต้องรวบรวมไลบรารี Postgres เช่นกัน
หากคุณรวบรวมจากแหล่งที่มาที่คุณจะต้องไปลงในโฟลเดอร์และทำ.../pgpool-II-3.X.X/src/sql/pgpool-regclass
./configure; make
คัดลอกไฟล์ pgpool-regclass.so ไปยังไดเร็กทอรีส่วนขยาย Postgres บนเซิร์ฟเวอร์ Ubuntu 14.04 ของฉัน (เพียงใช้ Postgres 9.3 แพคเกจติดตั้ง) /usr/lib/postgresql/9.3/lib
ก็ตั้งอยู่ที่: อย่าลืมทำเช่นนี้สำหรับเซิร์ฟเวอร์ Postgres ทั้งหมด
เมื่อเสร็จแล้วคุณสามารถทำงานpgpool-regclass.sql
กับต้นแบบ นี่เป็นการแม็พpgpool_regclass
ฟังก์ชันกับไลบรารีที่คุณคัดลอก