1.  
  2. https://pgbouncer.github.io/config.html
  3.  
  4. 参考 PostgreSQL修炼之道》之pgbouncer
  5.  
  6. 配置文件分为[databases] [pgbouncer]两部分,这个前面说过。现在我们来详细讲解一下里面的配置。
  7.  
  8. 在上面的部分我们已经看到了一部分的[databases]部分的参数配置,都是以键值对的形式出现的,例如dbnamehostportuserpassword,这几个参数都比较好理解。还有几个额外的配置我们接着看一下:
  9.  
  10. 1 pool_size 用来配置连接池的大小。连接池的含义上面说过,如果没有这个值则使用[pgbouncer]部分的default_pool_size的值。
  11.  
  12. 2connect_query :后面跟一个SQL语句字符串,用于探测这个连接是否正常,如果执行SQL语句出错,则换一个连接。
  13.  
  14. 3client_encoding:指定连接的客户端使用的字符集编码
  15.  
  16. 4datestyle:指定日期类型
  17.  
  18. 5timezone:指定时区。
  19.  
  20. [pgbouncer]部分的配置
  21.  
  22. 这个部分的配置项比较多,主要分为下面几类:
  23.  
  24.  
  25. 通用配置项
  26.  
  27. 日志配置项
  28.  
  29. 控制界面访问控制配置项
  30.  
  31. 连接健康检查和超时配置项
  32.  
  33. 危险的超时配置项
  34.  
  35. 底层网络配置项
  36.  
  37.  
  38. 通用配置
  39.  
  40.  
  41. logfile 指定日志文件,默认值是/var/log/pgbouncer/pgbouncer.log
  42.  
  43. pidfile 指定pid文件位置,默认值是/var/run/pgbouncer/pgbouncer.pid
  44.  
  45. listen_addr 监听的地址,默认值是127.0.0.1,可以使用*号表示监听所有IP地址。
  46.  
  47. listen_port 监听的端口,默认值是6432
  48.  
  49. unix_socket_dir 指定unix socket文件的目录,默认为/tmp目录
  50.  
  51. unix_socket_mode 指定unix socket文件的权限,默认值为0777
  52.  
  53. unix_socket_group 指定unix socket文件的组,默认无
  54.  
  55. user 指定启动PgBouncer的用户名,windows系统不支持此设置
  56.  
  57. auth_type 认证的类型,默认是trust,其他值包括md5cryptplainanyhba。用的较多的是md5
  58.  
  59. auth_file 认证文件的位置,默认值是/etc/pgbouncer/userlist.txt
  60.  
  61. pool_mode 指定池的模式,默认是session模式,还可以是transactionstatement
  62.  
  63. max_client_conn 允许的最大连接数
  64.  
  65. default_pool_size 默认的池大小,默认值20
  66.  
  67. min_pool_size 最小的池大小,每个连接池至少会向后端数据库保持多少个连接
  68.  
  69. reserve_pool_size 连接池的保留连接数
  70.  
  71. reserve_pool_timeout 保留连接的超时时间
  72.  
  73. server_round_robin 负载均衡的方式是否设置为“round robin”,默认为关闭,即后进先出
  74.  
  75. ignore_startup_parameters 默认情况PgBouncer只会跟踪一些默认参数,并且能检测这些参数的变化,保持这些参数和客户端的一致。在这个配置后面跟的配置后被PgBouncer忽略,不会被检查。
  76.  
  77. disable_pqexec 是否禁止简单查询协议,默认值为0。简单查询协议允许一个请求发送多个SQL,容易导致SQL注入攻击。
  78.  
  79. max_db_connections 此数据库允许的最大连接数,全局或每个数据库
  80.  
  81.  
  82. 日志配置项:
  83.  
  84.  
  85. syslog 是否打开syslogwindows下打开eventlog,默认值为0,表示不打开。
  86.  
  87. syslog_ident 默认为PgBouncer
  88.  
  89. syslog_facility
  90.  
  91. log_connections 是否记录连接成功的日志,默认值为1,表示记录
  92.  
  93. log_disconnections 是否记录断开连接的日志,默认值为1,表示记录
  94.  
  95. log_pooler_errors 连接池法网客户端的错误是否记录在日志中,默认值为1,表示记录
  96.  
  97. stats_period 把汇总的统计信息写入日志的时间周期,默认是60s
  98.  
  99.  
  100. 控制界面访问控制配置项:
  101.  
  102.  
  103. admin_users 管理用户名,默认值是postgres
  104.  
  105. stats_users 允许连接到控制界面,查看连接池只读信息的用户列表。可以执行除“SHOW FDS”以外的其他“SHOW”命令
  106.  
  107. server_reset_query
  108.  
  109. server_check_delay 空闲的连接多长时间进行一次健康检测,判断连接是否可用。如果设置为0,则立即检测,默认值为30s
  110.  
  111. server_check_query,进行健康检查的SQL语句,如果为0,表示不检测,默认值为“select 1;”
  112.  
  113. server_lifetime 连接的存活时间,连接超过这个时间就会被关闭,默认为3600,设置为0表示只使用一次。
  114.  
  115. server_idle_timeout 连接的idle时间,超过此时间,连接会被关闭。默认为600
  116.  
  117. server_connect_timeout 后端数据库的login时间超过这个值就会被关闭。默认为15s
  118.  
  119. server_login_retry 传教到后端数据库的连接失败后,等多长时间后重试,默认为15s
  120.  
  121. client_login_timeout 客户端与PgBouncer建立连接后,如果无法在这段时间内完成登录,那么连接会断开,默认为60s
  122.  
  123.  
  124. 危险超时配置项
  125.  
  126. 指的是为防止一些未知错误或者原因导致系统卡住的针对性配置。
  127.  
  128.  
  129. query_timeout 允许超过该时间值的SQL会被断开,应该比SQL实际的执行时间稍长,也需要比数据库的statement_timeout参数值更大。为了应付一些未知的网络问题。默认为0.0,禁止使用
  130.  
  131. query_wait_timeout 请求在队列中等待被执行的最长时间,如果超过该时间还没有分配到连接,就会断开。默认为0,禁止使用。
  132.  
  133. client_idle_timeout 客户端连接空闲超过该时间,则断开连接。默认值为0,禁止使用
  134.  
  135. idle_transaction_timeout 客户端启动事务后,超过这个时间没有结束事务,则关闭这个客户端连接。默认值为0,禁止使用
  136.  
  137.  
  138. 底层网络连接配置
  139.  
  140. pkt_buf 用于网络包的内部缓冲区大小,会影响发出的TCP包的大小即内存的使用,默认值为2048,一般保持默认值
  141.  
  142. max_packet_size 通过PgBouncer最大的包大小,包可以是一个SQL,也可以是返回的结果,默认值是2147483647
  143.  
  144. listen_backlog TCP监听函数listenBacklog参数,默认值为128
  145.  
  146. sbuf_loopcnt 处理过程中,每个连接处理多少数据就切换到下一个连接。默认为5,如果设置为0,表示不限制。不限制时,一个连接发送大量数据,另外的连接可能就会空闲,导致被结束掉。
  147.  
  148. tcp_defer_accept linux下,默认为45,其他平台为0。详细解释用man 7 tcp来查看
  149.  
  150. tcp_socket_buffer 默认没有设置
  151.  
  152. tcp_keepalive 是否以操作系统的默认值打开基本的keepalive 设置,在linux下,操作系统的keepalive里,默认值时tcp_keepidle=7200, tcp_keepintvl-75,tcp_keepcnt=9,其他操作系统类型,默认值为1
  153.  
  154. tcp_keepcnt 默认未设置
  155.  
  156. tcp_keepidle 默认未设置
  157.  
  158. tcp_keepintvl 默认未设置
  159.   
  160.  
  161. 来源:https://blog.csdn.net/zhaowenzhong/article/details/89308593
  162. https://blog.csdn.net/zhaowenzhong/article/details/89308412

  

版权声明:本文为caidingyu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/caidingyu/p/12047379.html