Wener Site

PgBouncer

约 2 分钟阅读
  • pgbouncer/pgbouncerGitHubpgbouncer/pgbouncerpgbouncer/pgbouncer · 特性 · Session pooling · 链接纬度 · 支持所有特性 · Transaction pooling · 会话纬度 · 不支持特性 · SET/RESET · LISTEN/NOTIFY笔记:PgBouncer
    • 特性
    • Session pooling
      • 链接纬度
      • 支持所有特性
    • Transaction pooling
      • 会话纬度
      • 不支持特性
        • SET/RESET
        • LISTEN/NOTIFY
        • WITH HOLD CURSOR
        • Protocol-level prepared plans
        • PREPARE / DEALLOCATE
        • PRESERVE/DELETE ROWS temp tables
        • LOAD
    • Statement pooling
      • 语句纬度
      • 不支持事务
      • 强制 autocommit
    • 2 kB per connection by default
    • 多后端服务
    • 在线从新配置
    • 在线 restart/upgrade
  • 管理
  • pgbouncer 的最大收益来自于 tx 模式 - 对应用有很多限制
  • 不要依赖 session 变量 - 不要 SET, 只能 SET LOCAL
  • prepared statements 只能在 session 模式下,且 server_reset_query = DISCARD ALL; 或 DEALLOCATE ALL;
  • transaction 不支持 prepare - 可以在客户端禁用
    • JDBC - prepareThreshold=0
    • PHP/PDD
      • new PDO("dsn", "user", "pass", array(PDO::ATTR_EMULATE_PREPARES => true));
      • $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

配置

ini
# 引入其他配置
%include filename

基础配置

/etc/pgbouncer/pgbouncer.ini

ini
[databases]
mydbuser = host=192.168.1.2 port=5433 user=mydb

[pgbouncer]
listen_addr = 0.0.0.0
# 不同端口
listen_port = 15432
unix_socket_dir =
user = postgres
auth_file = /etc/pgbouncer/userlist.txt
auth_type = md5
ignore_startup_parameters = extra_float_digits

admin_users = postgres

/etc/pgbouncer/userlist.txt

ini
"mydbuser" "password"

管理

  • 配置 admin_users
  • 链接
    • 外部 postgres://postgres@hostname-of-container/pgbouncer
    • 内部 postgres://127.0.0.1/pgbouncer
text
# 自定义配置
SHOW STATS;
SHOW SERVERS;
SHOW CLIENTS;
SHOW POOLS;

# 可以零时断开后端链接,例如后端升级,前端链接不断
PAUSE;
RESUME;

bitnami/pgbouncer

  • /opt/bitnami/pgbouncer/bin/pgbouncer
  • /opt/bitnami/pgbouncer/conf/pgbouncer.ini
  • PGBOUNCER_IGNORE_STARTUP_PARAMETERS=extra_float_digits

unsupported startup parameter: extra_float_digits

ini
ignore_startup_parameters = extra_float_digits

关联信息

反向链接和本文引用的外部资料。

References

GitHub

3 条

其他外链

2 条
最近更新commit c48877aEdit

On this page