首页 > 数据库 >Greenplum 数据库启用pgbouncer

Greenplum 数据库启用pgbouncer

时间:2023-08-29 14:04:51浏览次数:64  
标签:pgbouncer Greenplum 29 数据库 50 连接 连接池 客户端

pgbouncer是 PostgreSQL的轻量的连接池,可以有效降低连接数,提升系统性能。Greenplum当前版本已经自带,只是多数组织在实践中似乎并未启用此服务,也算是一种资源的浪费了。 gpbouncer有三种连接方式:

Session pooling/会话连接池

最普通的方式,在客户端连接的时候,在它的连接生命期内,会给它赋予一个服务器连接。在客户端断开的时候,服务器连接会放回到连接池中。

Transaction pooling/事务连接池

服务器连接只有在一个事务里的时候才赋予客户端。在 PgBouncer 注意到事务结束的时候,服务器将会放回连接池中。这是一个 hack,因为它打破了应用对后段连接的看法。只有在应用配合这样的使用模式,没有使用会破坏这种使用模式的时候才能用这个连接方式。

Statement pooling/语句连接池

最激进的模式。这是事务连接池的一个扭曲的变种 - 不允许多语句的事务。这就意味着是在客户端强制“autocomit”模式,主要是给 PL/Proxy 用的。 本次尝试启用Greenplum自带的pgbouncer.

配置文件

pgbouncer默认存在于Greenplum数据库的bin目录下。

[gpadmin@gp6sdw1 ~]$ whereis pgbouncer
pgbouncer: /usr/local/greenplum-db-<version>/bin/pgbouncer

要启动pgbouncer,最简单的方式,是配置文件pgbouncer.ini.

[databases]
gpdb = host=<IP Addr> dbname=gpdb auth_user=gpadmin

[pgbouncer]
pool_mode = session
listen_port = 6543
listen_addr = 0.0.0.0
auth_type = trust
logfile = pgbouncer.log
pidfile = pgbouncer.pid
admin_users = someuser
stats_users = stat_collector

保存,启动

[gpadmin@gp6mdw pgbouncer]$ pgbouncer pgbouncer.ini
2023-08-29 10:50:35.490 CST [30276] LOG kernel file descriptor limit: 524288 (hard: 524288); max_client_conn: 100, max expected fd use: 152
2023-08-29 10:50:35.490 CST [30276] LOG listening on 0.0.0.0:6543
2023-08-29 10:50:35.490 CST [30276] LOG listening on unix:/tmp/.s.PGSQL.6543
2023-08-29 10:50:35.490 CST [30276] LOG process up: PgBouncer 1.16.1, libevent 2.0.21-stable (epoll), adns: evdns2, tls: OpenSSL 1.0.2k-fips  26 Jan 2017

好了,这样就可以从不同的客户端,通过端口6543连接到数据库了!

标签:pgbouncer,Greenplum,29,数据库,50,连接,连接池,客户端
From: https://blog.51cto.com/u_1264026/7275959

相关文章

  • HBase 分布式数据库
    我从来没见过我们单位的主库系统,无论是小机或者EMC。如果哪天在值班时,收到通知主库挂了,我会觉得是一个深藏在机房沉重铁门里的大家伙,冒了几缕青烟,紧接着监控上各种Web小图标就都红了....在5、6年前,我们就希望能用分布式存储和分布式数据库来替代集中存储,觉得分布式廉价,而且高可靠。......
  • .NET Core Entity Framework Core 创建数据库
    自动创建数据库必须在NuGet中安装一下EFCore库Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.Tools数据迁移常用命令dotnetefmigrationsaddNewColum--新增migrationsdotnetefdatabaseupdate--跟新数据库dotnetefmigrationsaddAddrs--......
  • 深入理解数据库连接池及其在后端性能优化中的作用
    在后端开发中,数据库连接池是一个至关重要的概念,它在保障系统性能、资源利用以及稳定性方面起着重要作用。本篇博客将深入探讨数据库连接池的工作原理,以及在Java应用中如何合理地配置和使用连接池来优化后端性能。什么是数据库连接池?数据库连接池是一个管理数据库连接的技术,它在应用......
  • MYSQL如何从文件中把数据复制进数据库表中
    。至少有两种修正方法:·编辑文件“mysql.txt”改正错误,然后使用DELETE和LOADDATA清空并重新装载表:·mysql>DELETEFROMpet;·mysql>LOADDATALOCALINFILE'pet.txt'INTOTABLEpet;注:‘***’->是你的文件路径地址然而,如果这样操做,......
  • Mysql之数据库设计
    一、三大范式1、第一范式:消除一个字段包含多个数据库值,消除一个记录包含重复的组(单独的一列包含多个项目),即可满足1NF。2、第二范式:消除部分依赖性即可转化为2NF。部分依赖性表示一个记录中包括的字段只依赖于主键的一部分。解决部分依赖性的最简单方法是将复合主键分成两部分,每......
  • 数据库中字段名的命名规范
    使用有描述性的名称:字段名应该能清楚地描述该字段所代表的含义,尽量避免使用模糊或不具有明确含义的名称。使用小写字母:使用小写字母能提高可读性,并且在某些数据库中,字段名是大小写敏感的。此外,建议使用下划线(_)来分隔单词,而不是使用空格或驼峰命名法。避免保留字和关键字:避免使......
  • 数据库MySQL
     Concat(a,b)连接a,b两个字段                                    MySQL函数       分组之后再插入查询条件不能用Where关键字,而要用HA......
  • 数据库中字段无符号和自动递增
    无符号(unsigned):无符号属性用于指定数值类型字段的取值范围。通常,数值类型(如整数)的字段可以存储正数和负数。但是,如果将字段声明为无符号(unsigned),则该字段只能存储非负数(即正数和零)。无符号字段扩展了字段的正数范围,但不能存储负数。例如,对于整数类型的字段,可以使用INT表示有符号......
  • 查询SQL Server数据库执行时间最长的sql语句
    SELECT(total_elapsed_time/execution_count)/1000N'平均时间ms',total_elapsed_time/1000N'总花费时间ms',total_worker_time/1000N'所用的CPU总时间ms',total_physical_readsN'物理读取总次数',total_logical_reads/execution_countN'每次......
  • 数据库中什么是主键
    在数据库中,主键就像是每个记录的独特标识符,就像每个人都有自己的名字一样。它帮助区分不同的记录,就像名字帮助我们区分不同的人一样。想象一下,你有一个装满了糖果的罐子。为了区分每颗糖果,你会给每颗糖果贴上一个标签,上面写着它的名字或编号。这个标签就像是糖果的主键,确保每颗糖......