pgpool介绍和安装经验
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介绍和安装经验的更多相关文章
- Python介绍、安装、使用
Python介绍.安装.使用 搬运工:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python语言介绍 说到Python语言,就不得不说一下它的创始人Guido van Rossu ...
- Jenkins高级用法 - Jenkinsfile 介绍及实战经验
系列目录 1.Jenkins 安装 2.Jenkins 集群 3.Jenkins 持续集成 - ASP.NET Core 持续集成(Docker&自由风格&Jenkinsfile) 4 ...
- 【转载】基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程(之一)——介绍、安装准备、安装、config文件以及运行脚本介绍
基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程(之一)--介绍.安装准备.安装.config文件以及运行脚本介绍 其他 2018-0 ...
- Nuxt 的介绍与安装
Nuxt.js(一.介绍与安装) 1.为什么使用Nuxt 渐进式Vue.js框架给前后端分离带来无限的乐趣,越来越多的程序员选择Vue.在我们使用Vue框架的过程中不免会出现以下的一些问题: 如何更好 ...
- 从零自学Hadoop(19):HBase介绍及安装
阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇, ...
- 从零自学Hadoop(14):Hive介绍及安装
阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 本系列已 ...
- Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)
本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 7.python 操作mysql 8.ORM sqlac ...
- Bash on Windows 抢鲜测试 -- 介绍及安装
前言 微软在上周的Windows BUILD大会上宣布,WIN10将引入原生Bash,并将很快在技术预览版中推出. 如此一来,windows的命令行工具就不再只有cmd和powershell了,我们可 ...
- Tyk API网关介绍及安装说明
Tyk API网关介绍及安装说明 Tyk是一个开源的轻量级API网关程序. 什么是API网关 API网关是一个各类不同API的前置服务器.API网关封装了系统内部架构,对外提供统一服务.此外还可以实现 ...
随机推荐
- PHP常用的一些正则表达式
附一些常用的正则运算: 验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数字:^\d{m,n}$验证零和非零开头的数字:^(0|[1-9][0- ...
- 在nodejs下express 从安装到运行的全过程
安装过程: npm install -gd express npm install -g express-generator express -V //查看版本,现在一般都是4.x系列的 expr ...
- Docker容器基础知识学习
Docker作为操作系统层面的轻量级的虚拟化技术,凭借简易的使用.快速的部署以及灵活敏捷的集成等优势,迅速发展目前最为火热的技术. 1.云计算服务是一种资源管理的资源服务,该模式可以实现随时随地.便捷 ...
- 如何设计PHP业务模块(函数/方法)返回结果的结构?
如题:如何设计业务模块返回结果的结构? 一个业务函数/方法执行后,对外输出数据的结构通常有以下几种: 1.返回数字,如 成功时返回 0,失败时返回 -1,有的还会用一个全局变量输出错误信息: < ...
- debian8 配置使用 nfs
操作过的步骤: 1.dpkg-reconfigre rpcbind. 2.在终端上退出要挂载的目录. 错误:mount -t nfs 172.16.0.121:/home/junda /mnt,出现以 ...
- bootstrap-tab
功能:点击时切换相应的内容或图片 插件:tab.js 要点:tab标签用在导航条上,以data-toggle作被点击者, 以tab-content作内容显示 <!DOCTYPE html> ...
- MySQL Python教程(4)
Class cursor.MySQLCursorBuffered 该类从Class cursor.MySQLCursorBuffered继承,如果需要,可以在执行完SQL语句后自动缓冲结果集合.imp ...
- Android开源项目(二)
第二部分 工具库 主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过 ...
- iOS开发——UI基础-屏幕适配
一.适配 1.什么是适配?适应.兼容各种不同的情况 2.移动开发中,适配的常见种类 2.1系统适配 针对不同版本的操作系统进行适配 2.2屏幕适配 针对不同大小的屏幕尺寸进行适配 二.点和像素 1.在 ...
- [转载]JavaEE学习篇之——Session&&Cookie
原文链接: http://blog.csdn.net/jiangwei0910410003/article/details/23337043 今天继续来看看JavaWeb的相关知识,这篇文章主要来讲一 ...