码迷,mamicode.com
首页 > 其他好文 > 详细

pgpool介绍和安装经验

时间:2015-02-12 19:48:45      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:

Pgpool的介绍

一、介绍

  • 是一个工作在PostgreSQL多服务器和PostgreSQL数据库客户端之间的中间件。

二、概念图

  •  技术分享

技术分享

三、功能

  • 连接池:pgpool -Ⅱ保存 连 接到PostgreSQL服务器,并重复利用具有相同属性的新的连接(即用户名,数据库 ,协议的版本),减少连接的开 销 ,并提高了系统的整体吞吐量。

  • 复制:pgpool-II可以管理多个PostgreSQL服务器。使用复制功能,可以实时备份在 2个或多个物理磁盘上,因此即使在硬盘出故障的时候也不用停止服务。

  • 负载平衡:如果数据库是复制,任何服务器上执行一个SELECT查询将返回相同的结果。pgpool-Ⅱ采用一个复制功能优势是以减少多个服 务 器之 间 分配上的SELECT 查 询 每个PostgreSQL服 务 器的 负载 ,提高系 统 的整体吞吐量。在最好的,性能的提高比例的PostgreSQL服 务 器的数量。在同一 时间有 大量用 户 的 查 询的时候,负载 平衡的情况下有最佳的 执 行。

  • 连接超限制:有一个关于与 PostgreSQL 的最大并 发连 接数限制,最大 连接数超过后 的 连 接被拒 绝 。 设 置最大 连 接数,但是增加的 资 源消耗和影响系 统 性能。 pgpool - II 也有 对 最大 连 接数的限制,但 额 外的 连 接将被排 队 ,而不是立即返回 错误 。

  • 并行查询:使用并行 查 询 功能,数据可分布在多个服 务 器中,以便 查 询 可以 执 行所有服 务 器上同 时 减少 总 体 执 行 时间 。 并行 查 询 的工作时候 ,寻找最佳的大规模的数据。

四、模式及故障切换

  • 原始模式:如果定义了多个服务器,可以在原始模式中进行故障切换。 pgpool-II 在普通操作中通常访问 backend_hostname0 指定的后台程序。 如果 backend_hostname0 因为某些原因不能正常工作,pgpool-II 尝试访问 backend_hostname1 指定的后台程序。 如果它也不能正常工作,pgpool-II 尝试访问 backend_hostname2,3 等等。

  • 连接池模式: 在连接池模式中,所有在原始模式中的功能以及连接池功能都可以使用。要启用本模式,设置原始模式的配置参数以及以下的参数

    • max_pool 在 pgpool-II 子进程中缓存的最大连接数
    • connection_life_time 缓存的连接的过期时长,单位为秒。过期的缓存连接将被关闭。默认值为 0,表示缓存的连接将不被关闭。
    • reset_query_list 指定在推出一个会话时发送到后台程序的SQL命令。多个命令可以通过“;”隔开。默认为以下的设置但你可以根据你的需求改变。如reset_query_list = ‘ABORT; DISCARD ALL‘
    • 故障切换:与原始模式一样

     

  • 复制模式:在后台程序间启用了数据复制

    • replication_mode 设置为 true 以启用复制模式。默认值为 false。
    • load_balance_mode 当设置为 true 时,SELECT 查询将被分发到每个后台程序上用于负载均衡。默认值为 false。本参数必须在服务器启动前设置。
    • 故障切换:pgpool-II 退化一个死掉的后台并继续提供服务。只要最少还有一个后台还活着,服务就可以继续。

     

  • 主备模式流复制以及它们的故障恢复详细描述参考:http://www.pgpool.net/docs/pgpool-II-3.2.1/pgpool-zh_cn.html#master_slave_mode

  • 并行模式:本模式实现了查询的并行执行。表可以被分割,数据分布在每个节点中。而且,复制和负载均衡功能也可以同时使用。在并行模式中,pgpool.conf 中的 replication_mode 和 load_balance_mode 被设置为 ture,master_slave 被设置为 false,parallel_mode 被设置为 false。当你改变这些参数后,需要重启 pgpool-II

五、pgpool的优点  

  • 1、不用修改程序 
  • 2、PHP, Perl, Java等等语言都可以操作,没有语言限制  
  • 3、prefork型体系架构 
  • 4、可以限制访问 PostgreSQL 连接数  
  • 5、故障转移功能  
  • 6、配备的复制功能  
  • 7、配备了负载 平衡  

六、pgpool的缺点  

  • 1、增加系统开销  
  • 2、不支持所有的.libpq协议  
  • 3、template1,regression等名字数据库没有映射到池里面  
  • 4、没有及时删除临时表,8.3以后reset_query_list设置为 "DISCARD ALL"的 话 可以解决这个问题 。  
  • 5、没有及时删除 PREPARE,8.3以后reset_query_list设置为 "DISCARD ALL"的话可以解决这个问题  。

七、安装及使用总结

  • pgpool当开启replication复制模式时,各个数据节点都会有相同的数据(会有主从之分),实现数据备份的功能,因为会将数据复制到各个数据节点,所有复制模式适用于存储量小,查询量大的情况(因为启用负载均衡会使查询变得更快)
  • 当重新配置其各种模式,需要重启服务器,并将路径下/tmp/pgpool_status文件清空,配置才能生效
  • 在pgpool中的负载均衡模式下,select查询将被分发到每个后台程序上用于负载均衡(好像pgpool中的负载均衡只是针对查询来做的,和pgxc的插入数据时的负载均衡有区别)

pgpool介绍和安装经验

标签:

原文地址:http://www.cnblogs.com/eagle-dtq/p/4288618.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!