นี่คือคำสั่ง pgbouncer ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
pgbouncer - พูลการเชื่อมต่อที่มีน้ำหนักเบาสำหรับ PostgreSQL
เรื่องย่อ
pgbouncer [-d][-R][-v][-u ผู้ใช้]
pgbouncer -V|-h
บนคอมพิวเตอร์ Windows ตัวเลือกคือ:
pgbouncer.exe [-v][-u ผู้ใช้]
pgbouncer.exe -V|-h
ตัวเลือกเพิ่มเติมสำหรับการตั้งค่าบริการ Windows:
pgbouncer.exe --regservice
pgbouncer.exe --unregservice
DESCRIPTION
pgbouncer เป็นตัวรวบรวมการเชื่อมต่อ PostgreSQL แอปพลิเคชันเป้าหมายใด ๆ สามารถเชื่อมต่อกับ
pgbouncer ราวกับว่าเป็นเซิร์ฟเวอร์ PostgreSQL และ pgbouncer จะสร้างการเชื่อมต่อกับ
เซิร์ฟเวอร์จริง หรือจะใช้การเชื่อมต่อที่มีอยู่เดิม
จุดมุ่งหมายของ pgbouncer คือการลดผลกระทบด้านประสิทธิภาพของการเปิดการเชื่อมต่อใหม่กับ
PostgreSQL
เพื่อที่จะไม่ประนีประนอมความหมายของธุรกรรมสำหรับการรวมการเชื่อมต่อ pgbouncer
รองรับการรวมหลายประเภทเมื่อหมุนการเชื่อมต่อ:
เซสชั่น ร่วมกัน
วิธีที่สุภาพที่สุด เมื่อไคลเอนต์เชื่อมต่อ การเชื่อมต่อเซิร์ฟเวอร์จะถูกกำหนดให้กับ
ตลอดระยะเวลาที่ไคลเอ็นต์เชื่อมต่ออยู่ เมื่อไคลเอนต์ตัดการเชื่อมต่อ
การเชื่อมต่อเซิร์ฟเวอร์จะถูกนำกลับเข้าไปในพูล นี่เป็นวิธีการเริ่มต้น
รายการ ร่วมกัน
การเชื่อมต่อเซิร์ฟเวอร์ถูกกำหนดให้กับลูกค้าระหว่างการทำธุรกรรมเท่านั้น เมื่อไหร่
PgBouncer สังเกตเห็นว่าการทำธุรกรรมสิ้นสุดลง การเชื่อมต่อเซิร์ฟเวอร์จะถูกนำกลับมา
ลงไปในสระ
คำแถลง ร่วมกัน
วิธีการที่ก้าวร้าวที่สุด การเชื่อมต่อเซิร์ฟเวอร์จะถูกนำกลับเข้าสู่พูล
ทันทีหลังจากแบบสอบถามเสร็จสิ้น ไม่อนุญาตให้ทำธุรกรรมหลายรายการใน
โหมดนี้ตามที่พวกเขาจะทำลาย
อินเทอร์เฟซการบริหารของ pgbouncer ประกอบด้วยของใหม่ SHOW คำสั่งที่ใช้ได้
เมื่อเชื่อมต่อกับฐานข้อมูล 'เสมือน' พิเศษ pgbouncer.
เริ่มต้นอย่างรวดเร็ว
การตั้งค่าพื้นฐานและการใช้งานดังต่อไปนี้
1. สร้างไฟล์ pgbouncer.ini รายละเอียดใน pgbouncer(5). ตัวอย่างง่ายๆ:
[ฐานข้อมูล]
template1 = โฮสต์=127.0.0.1 พอร์ต=5432 dbname=template1
[pgbouncer]
Listen_port = 6543
Listen_addr = 127.0.0.1
auth_type = md5
auth_file = users.txt
ไฟล์บันทึก = pgbouncer.log
pidfile = pgbouncer.pid
admin_users = ผู้ใช้บางคน
2 สร้าง user.txt ไฟล์ที่มีผู้ใช้ที่ได้รับอนุญาตใน:
"someuser" "same_password_as_in_server"
3 เปิด pgbouncer:
$ pgbouncer -d pgbouncer.ini
4. มีใบสมัครของคุณ (หรือ psql ลูกค้า) เชื่อมต่อกับ pgbouncer แทนที่จะตรงไปที่
เซิร์ฟเวอร์ PostgreSQL:
$ psql -p 6543 -U เทมเพลตผู้ใช้บางคน1
5. จัดการ pgbouncer โดยเชื่อมต่อกับฐานข้อมูลการบริหารพิเศษ pgbouncer และ
การออก โชว์ ช่วยด้วย; เพื่อเริ่มต้น:
$ psql -p 6543 -U Someuser pgbouncer
pgbouncer=# แสดงความช่วยเหลือ;
ประกาศ: การใช้งานคอนโซล
รายละเอียด:
แสดง [ความช่วยเหลือ|การกำหนดค่า|ฐานข้อมูล|FDS|พูล|ไคลเอนต์|เซิร์ฟเวอร์|ซ็อกเก็ต|รายการ|เวอร์ชัน]
SET คีย์ = arg
โหลด
PAUSE
ระงับ
RESUME
ปิด
6. หากคุณทำการเปลี่ยนแปลงไฟล์ pgbouncer.ini คุณสามารถโหลดซ้ำด้วย:
pgbouncer=# โหลดใหม่;
คำสั่ง จองทาง LINE สวิทช์
-d ทำงานในพื้นหลัง หากไม่มี กระบวนการจะทำงานในเบื้องหน้า หมายเหตุ: ไม่
ทำงานบน Windows, pgbouncer จำเป็นต้องเรียกใช้บริการที่นั่น
-R ทำการรีสตาร์ทออนไลน์ นั่นหมายถึงการเชื่อมต่อกับกระบวนการที่ทำงานอยู่ กำลังโหลด
เปิดซ็อกเก็ตจากนั้นใช้งาน หากไม่มีกระบวนการที่ใช้งานอยู่ ให้บูต
โดยทั่วไป. หมายเหตุ: ใช้งานได้เฉพาะเมื่อ OS รองรับซ็อกเก็ต Unix และ unix_socket_dir is
ไม่ถูกปิดใช้งานในการกำหนดค่า ไม่ทำงานบนเครื่อง Windows ใช้งานไม่ได้กับ TLS
การเชื่อมต่อพวกเขาจะลดลง
-u ผู้ใช้งาน
สลับไปยังผู้ใช้ที่กำหนดเมื่อเริ่มต้น
-v เพิ่มความฟุ่มเฟือย สามารถใช้ได้หลายครั้ง
-q เงียบ - อย่าเข้าสู่ stdout โปรดทราบว่าสิ่งนี้ไม่ส่งผลต่อการบันทึกการใช้คำฟุ่มเฟือยเท่านั้น
stdout นั้นไม่ควรใช้ สำหรับใช้ในสคริปต์ init.d
-V แสดงเวอร์ชัน.
-h แสดงความช่วยเหลือสั้นๆ
--regservice
Win32: ลงทะเบียน pgbouncer เพื่อเรียกใช้เป็นบริการ Windows ดิ บริการ_ชื่อ การตั้งค่า
ค่าพารามิเตอร์ใช้เป็นชื่อลงทะเบียนภายใต้
--ยกเลิกการลงทะเบียนบริการ
Win32: ยกเลิกการลงทะเบียนบริการ Windows
ADMIN คอนโซล
คอนโซลสามารถใช้ได้โดยเชื่อมต่อกับฐานข้อมูลตามปกติ pgbouncer:
$ psql -p 6543 pgbouncer
เฉพาะผู้ใช้ที่ระบุไว้ในพารามิเตอร์การกำหนดค่า admin_users or stats_users ได้รับอนุญาตให้
เข้าสู่ระบบคอนโซล (ยกเว้นเมื่อ auth_mode=ใดๆ, จากนั้นผู้ใช้คนใดจะได้รับอนุญาตในฐานะ a
stats_user)
นอกจากนี้ ชื่อผู้ใช้ pgbouncer ได้รับอนุญาตให้เข้าสู่ระบบโดยไม่ต้องใช้รหัสผ่านหากเข้าสู่ระบบ
มาผ่านซ็อกเก็ต Unix และไคลเอนต์มี uid ผู้ใช้ Unix เดียวกันกับกระบวนการทำงาน
แสดง คำสั่ง
งานวิ่งการกุศล SHOW ข้อมูลเอาต์พุตคำสั่ง แต่ละคำสั่งอธิบายไว้ด้านล่าง
SHOW สถิติ;
แสดงสถิติ
ฐานข้อมูล
สถิติแสดงต่อฐานข้อมูล
รวม_คำขอ
จำนวนคำขอ SQL ทั้งหมดที่รวบรวมโดย pgbouncer.
ยอดรวม_ได้รับ
ปริมาณรวมเป็นไบต์ของการรับส่งข้อมูลเครือข่ายที่ได้รับโดย pgbouncer.
รวม_sent
ปริมาณรวมเป็นไบต์ของการรับส่งข้อมูลเครือข่ายที่ส่งโดย pgbouncer.
Total_query_time
จำนวนไมโครวินาทีทั้งหมดที่ใช้ไปโดย pgbouncer เมื่อเชื่อมต่อกับ
PostgreSQL
เฉลี่ย_req
คำขอเฉลี่ยต่อวินาทีในช่วงสถิติล่าสุด
เฉลี่ย_recv
เฉลี่ยที่ได้รับ (จากลูกค้า) ไบต์ต่อวินาที
เฉลี่ย_ส่ง
ไบต์เฉลี่ยที่ส่ง (ไปยังไคลเอ็นต์) ต่อวินาที
avg_query
ระยะเวลาการค้นหาเฉลี่ยในหน่วยไมโครวินาที
SHOW เซิร์ฟเวอร์;
ชนิด S สำหรับเซิร์ฟเวอร์
ผู้ใช้งาน ชื่อผู้ใช้ pgbouncer ใช้เชื่อมต่อกับเซิร์ฟเวอร์
ฐานข้อมูล
ชื่อฐานข้อมูล
รัฐ สถานะของการเชื่อมต่อเซิร์ฟเวอร์ pgbouncer หนึ่งใน คล่องแคล่ว, มือสอง or ว่าง.
addr ที่อยู่ IP ของเซิร์ฟเวอร์ PostgreSQL
พอร์ต พอร์ตของเซิร์ฟเวอร์ PostgreSQL
local_addr
ที่อยู่เริ่มต้นการเชื่อมต่อบนเครื่องท้องถิ่น
local_port
พอร์ตเริ่มต้นการเชื่อมต่อบนเครื่องท้องถิ่น
เชื่อมต่อ_เวลา
เมื่อมีการเชื่อมต่อ
คำขอ_เวลา
เมื่อมีการร้องขอครั้งสุดท้าย
PTR ที่อยู่ของวัตถุภายในสำหรับการเชื่อมต่อนี้ ใช้เป็น ID เฉพาะ
ลิงค์ ที่อยู่ของการเชื่อมต่อไคลเอ็นต์ที่เซิร์ฟเวอร์จับคู่ด้วย
รีโมท_pid
Pid ของกระบวนการเซิร์ฟเวอร์แบ็กเอนด์ ในกรณีที่เชื่อมต่อผ่านซ็อกเก็ตยูนิกซ์และ OS
รองรับการรับข้อมูล ID กระบวนการ มันคือ OS pid ไม่งั้นก็สกัดมาจาก
ยกเลิกแพ็คเก็ตเซิร์ฟเวอร์ที่ส่งซึ่งควรเป็น PID ในกรณีที่เซิร์ฟเวอร์คือ Postgres แต่เป็น
สุ่มเลขเผื่อเซิฟเวอร์มันอีก PgBouncer
SHOW ลูกค้า;
ชนิด C สำหรับลูกค้า
ผู้ใช้งาน ผู้ใช้ที่เชื่อมต่อไคลเอ็นต์
ฐานข้อมูล
ชื่อฐานข้อมูล
รัฐ สถานะของการเชื่อมต่อไคลเอ็นต์ หนึ่งใน คล่องแคล่ว, มือสอง, ที่รอ or ว่าง.
addr ที่อยู่ IP ของลูกค้า
พอร์ต เชื่อมต่อไคลเอ็นต์พอร์ตกับ
local_addr
ที่อยู่สิ้นสุดการเชื่อมต่อบนเครื่องท้องถิ่น
local_port
พอร์ตสิ้นสุดการเชื่อมต่อบนเครื่องโลคัล
เชื่อมต่อ_เวลา
เวลาประทับของเวลาเชื่อมต่อ
คำขอ_เวลา
เวลาประทับของคำขอของลูกค้าล่าสุด
PTR ที่อยู่ของวัตถุภายในสำหรับการเชื่อมต่อนี้ ใช้เป็น ID เฉพาะ
ลิงค์ ที่อยู่ของการเชื่อมต่อเซิร์ฟเวอร์ที่ไคลเอ็นต์จับคู่ด้วย
รีโมท_pid
Process ID ในกรณีที่ไคลเอนต์เชื่อมต่อผ่านซ็อกเก็ต UNIX และ OS รองรับการรับ
SHOW สระว่ายน้ำ;
รายการพูลใหม่ถูกสร้างขึ้นสำหรับแต่ละคู่ (ฐานข้อมูล ผู้ใช้)
ฐานข้อมูล
ชื่อฐานข้อมูล
ผู้ใช้งาน ชื่อผู้ใช้.
cl_active
การเชื่อมต่อไคลเอ็นต์ที่เชื่อมโยงกับการเชื่อมต่อเซิร์ฟเวอร์และสามารถประมวลผลการสืบค้นได้
cl_รอ
การเชื่อมต่อไคลเอ็นต์ได้ส่งข้อความค้นหา แต่ยังไม่ได้รับการเชื่อมต่อเซิร์ฟเวอร์
sv_active
การเชื่อมต่อเซิร์ฟเวอร์ที่เชื่อมโยงกับไคลเอนต์
sv_idle
การเชื่อมต่อเซิร์ฟเวอร์ที่ไม่ได้ใช้และใช้งานได้ทันทีสำหรับการสอบถามไคลเอ็นต์
sv_ใช้แล้ว
การเชื่อมต่อเซิร์ฟเวอร์ที่ไม่ได้ใช้งานมากกว่า server_check_delayดังนั้นพวกเขาจึงต้องการ
server_check_query เพื่อเรียกใช้ก่อนจึงจะสามารถใช้งานได้
sv_tested แล้ว
การเชื่อมต่อเซิร์ฟเวอร์ที่กำลังทำงานอยู่อย่างใดอย่างหนึ่ง server_reset_query or
server_check_query.
sv_login
กำลังเชื่อมต่อเซิร์ฟเวอร์อยู่ในกระบวนการเข้าสู่ระบบ
แม็กซ์เวต
ไคลเอ็นต์แรก (เก่าที่สุด) ในคิวรอนานเท่าใดในหน่วยวินาที หากสิ่งนี้เริ่มต้นขึ้น
เพิ่มขึ้น พูลเซิร์ฟเวอร์ปัจจุบันไม่สามารถจัดการคำขอได้เร็วพอ
เหตุผลอาจเป็นเซิร์ฟเวอร์โอเวอร์โหลดหรือเล็กเกินไปของ สระว่ายน้ำ_ขนาด การตั้งค่า
พูล_โหมด
โหมดการรวมกำลังใช้งานอยู่
SHOW รายการ;
แสดงข้อมูลภายในต่อไปนี้ในคอลัมน์ (ไม่ใช่แถว):
ฐานข้อมูล
จำนวนฐานข้อมูล
ผู้ใช้ จำนวนผู้ใช้
สระว่ายน้ำ จำนวนสระ.
free_clients
จำนวนลูกค้าฟรี
ใช้ _clients
จำนวนลูกค้าที่ใช้
ล็อกอิน_ไคลเอนต์
จำนวนลูกค้าใน เข้าสู่ระบบ รัฐ
ฟรี_เซิร์ฟเวอร์
จำนวนเซิร์ฟเวอร์ฟรี
เซิร์ฟเวอร์ที่ใช้แล้ว
จำนวนเซิร์ฟเวอร์ที่ใช้
SHOW ผู้ใช้;
ชื่อ ชื่อผู้ใช้
พูล_โหมด
ผู้ใช้แทนที่ pool_mode หรือ NULL หากจะใช้ค่าเริ่มต้นแทน
SHOW ฐานข้อมูล;
ชื่อ ชื่อของรายการฐานข้อมูลที่กำหนดค่าไว้
เจ้าภาพ โฮสต์ pgbouncer เชื่อมต่อกับ
พอร์ต พอร์ต pgbouncer เชื่อมต่อกับ
ฐานข้อมูล
ชื่อฐานข้อมูลจริงที่ pgbouncer เชื่อมต่อ
ผู้ใช้บังคับ
เมื่อผู้ใช้เป็นส่วนหนึ่งของสตริงการเชื่อมต่อ การเชื่อมต่อระหว่าง pgbouncer และ
PostgreSQL ถูกบังคับให้ใช้กับผู้ใช้ที่กำหนด ไม่ว่าผู้ใช้ไคลเอ็นต์จะเป็นอย่างไรก็ตาม
สระว่ายน้ำ_ขนาด
จำนวนการเชื่อมต่อเซิร์ฟเวอร์สูงสุด
พูล_โหมด
ฐานข้อมูลแทนที่ pool_mode หรือ NULL ถ้าค่าดีฟอลต์จะถูกใช้แทน
SHOW เอฟดีเอส;
คำสั่งภายใน - แสดงรายการของ fds ที่ใช้โดยมีสถานะภายในแนบอยู่
เมื่อผู้ใช้ที่เชื่อมต่อมีชื่อผู้ใช้ "pgbouncer" ให้เชื่อมต่อผ่านซ็อกเก็ต Unix และ has
UID เดียวกันกับกระบวนการทำงาน fds จริงจะถูกส่งผ่านการเชื่อมต่อ นี้
กลไกที่ใช้ในการรีสตาร์ทออนไลน์ หมายเหตุ: สิ่งนี้ใช้ไม่ได้กับเครื่อง Windows
คำสั่งนี้ยังบล็อกการวนซ้ำของเหตุการณ์ภายใน ดังนั้นจึงไม่ควรใช้ในขณะที่ PgBouncer เป็น
ในการใช้งาน
fd ค่าตัวเลขของตัวอธิบายไฟล์
งาน หนึ่งใน พูเลอร์, ไคลเอนต์ or เซิร์ฟเวอร์.
ผู้ใช้งาน ผู้ใช้การเชื่อมต่อโดยใช้ FD
ฐานข้อมูล
ฐานข้อมูลของการเชื่อมต่อโดยใช้ FD
addr ที่อยู่ IP ของการเชื่อมต่อโดยใช้ FD ยูนิกซ์ หากใช้ซ็อกเก็ตยูนิกซ์
พอร์ต พอร์ตที่ใช้โดยการเชื่อมต่อโดยใช้ FD
ยกเลิก ยกเลิกคีย์สำหรับการเชื่อมต่อนี้
ลิงค์ fd สำหรับเซิร์ฟเวอร์/ไคลเอนต์ที่เกี่ยวข้อง NULL ถ้าไม่ได้ใช้งาน
SHOW กำหนดค่า;
แสดงการตั้งค่าการกำหนดค่าปัจจุบัน หนึ่งรายการต่อแถว โดยมีคอลัมน์ต่อไปนี้:
สำคัญ ชื่อตัวแปรการกำหนดค่า
ความคุ้มค่า ค่าการกำหนดค่า
เปลี่ยนแปลงได้
แต่ละ ใช่ or ไม่แสดงว่าตัวแปรสามารถเปลี่ยนแปลงได้ในขณะทำงานหรือไม่ ถ้า ไม่ที่
ตัวแปรสามารถเปลี่ยนแปลงได้เฉพาะเวลาบูตเท่านั้น
SHOW DNS_โฮสต์;
แสดงชื่อโฮสต์ในแคช DNS
ชื่อโฮสต์
ชื่อโฮสต์
TTL อีกกี่วินาทีถึงค้นหาครั้งต่อไป
แอดเดรส รายการที่อยู่คั่นด้วยเครื่องหมายจุลภาค
SHOW DNS_โซน
แสดงโซน DNS ในแคช
ชื่อโซน
ชื่อโซน.
อนุกรม ซีเรียลปัจจุบัน
นับ ชื่อโฮสต์ที่เป็นของโซนนี้
กระบวนการ การควบคุม คำสั่ง
PAUSE [ฐานข้อมูล];
PgBouncer พยายามยกเลิกการเชื่อมต่อจากเซิร์ฟเวอร์ทั้งหมด โดยรอให้การสืบค้นทั้งหมดเสร็จสิ้นก่อน
คำสั่งจะไม่ส่งคืนก่อนที่การสืบค้นข้อมูลทั้งหมดจะเสร็จสิ้น เพื่อใช้ในช่วงเวลาของ
รีสตาร์ทฐานข้อมูล
หากระบุชื่อฐานข้อมูล ระบบจะหยุดเฉพาะฐานข้อมูลนั้นชั่วคราว
ปิดใช้งาน ฐานข้อมูล;
ปฏิเสธการเชื่อมต่อไคลเอ็นต์ใหม่ทั้งหมดบนฐานข้อมูลที่กำหนด
เปิดใช้งาน ฐานข้อมูล;
อนุญาตการเชื่อมต่อไคลเอนต์ใหม่หลังจากก่อนหน้านี้ ปิดใช้งาน คำสั่ง
ฆ่า ฐานข้อมูล;
วางการเชื่อมต่อไคลเอนต์และเซิร์ฟเวอร์ทั้งหมดในฐานข้อมูลที่กำหนดทันที
ระงับ;
บัฟเฟอร์ซ็อกเก็ตทั้งหมดถูกล้าง และ PgBouncer หยุดฟังข้อมูล ดิ
คำสั่งจะไม่ส่งคืนก่อนที่บัฟเฟอร์ทั้งหมดจะว่างเปล่า เพื่อใช้ในช่วงเวลา PgBouncer
รีบูตออนไลน์
RESUME [ฐานข้อมูล];
ทำงานต่อจากครั้งก่อน PAUSE or ระงับ คำสั่ง
ปิดตัวลง;
กระบวนการ PgBouncer จะสิ้นสุด
โหลดซ้ำ;
กระบวนการ PgBouncer จะโหลดไฟล์การกำหนดค่าซ้ำและอัปเดตการตั้งค่าที่เปลี่ยนแปลงได้
สัญญาณ
ซิกอัพ โหลดการกำหนดค่าใหม่ เช่นเดียวกับการออกคำสั่ง โหลดซ้ำ; บนคอนโซล
ซิกนต์ การปิดระบบอย่างปลอดภัย เช่นเดียวกับการออก หยุดชั่วคราว; และ ปิดตัวลง; บนคอนโซล
ซิกเทอร์ม
ปิดเครื่องทันที เช่นเดียวกับการออก ปิดตัวลง; บนคอนโซล
ลิเบเวนต์ การตั้งค่า
จากเอกสาร libevent:
เป็นไปได้ที่จะปิดการใช้งานการสนับสนุนสำหรับ epoll, kqueue, devpoll, poll
หรือเลือกโดยการตั้งค่าตัวแปรสภาพแวดล้อม EVENT_NOEPOLL
EVENT_NOKQUEUE, EVENT_NODEVPOLL, EVENT_NOPOLL หรือ EVENT_NOSELECT,
ตามลำดับ
โดยการตั้งค่าตัวแปรสภาพแวดล้อม EVENT_SHOW_METHOD, libevent
แสดงวิธีการแจ้งเตือนเคอร์เนลที่ใช้
ใช้ pgbouncer ออนไลน์โดยใช้บริการ onworks.net