设为首页 收藏本站
查看: 882|回复: 0

[经验分享] Arch-03-17- 用 pgpool-II 搭建 PostgreSQL 集群

[复制链接]

尚未签到

发表于 2016-11-20 12:10:27 | 显示全部楼层 |阅读模式
  (一)方案
  尽管做数据库 postgresql 集群的方式有很多种,数据库9.0以上原生的 standby,呼声很高的 guzz,老牌的 Slony-I,但看过了小日本仔的一篇 pdf 后,觉得用 Streaming replication + Hot Standby + pgpool-II 似乎比较适合我的口味。
  (1)我一向赞成数据库集群应该由数据库厂商提供
  (2)数据库集群对应用是透明的,可以视作一个数据库
  (3)这个方案是有优点的:

优势:
Write performance is good (10-20% overhead)
Automatic failover of slaves
Connection pooling and load balancing: boost performance
DDL replication
Large object replication

劣势:
Asynchronous replication
However replication delay is relatively low
  (4)截个图片
  
DSC0000.png
  (5)深入了解 pgpool2
  . 用户手册 http://pgpool.projects.postgresql.org/pgpool-II/doc/pgpool-zh_cn.html
  . 入门教程 http://pgpool.projects.postgresql.org/pgpool-II/doc/tutorial-zh_cn.html
  . 中文试用 http://blog.csdn.net/xtlog/article/details/4219353
  
DSC0001.png
  . Parallel_Mode 并发模式,传说中的 scale out 分表
DSC0002.png

  =====================================================================
  (二)从零开始安装
  (1)虚拟机安装 CentOS5.6,下载 http://www.thoughtpolice.co.uk/vmware/#centos 注意不要下 mini 版,mini 版几乎不能用。
  (2)创建目录:
  。/opt/postgres/data/5432/data  - 主库
  。/opt/postgres/data/5434/data  - 从库
  (3)下载 postgresql 9.1
  #wget http://oscg-downloads.s3.amazonaws.com/packages/postgres-9.1.0-1.i386.openscg.rpm
  #rpm -ivh postgres-9.1.0-1.i386.openscg.rpm
  #/etc/init.d/postgres-9.1-openscg start
  删除自动安装的文件
  #rm /etc/init.d/postgres-9.1-openscg
  (4)重新初始化数据库安装
  (4)修改防火墙

#iptables -I INPUT -p tcp --dport 5432 -j ACCEPT
#iptables -I INPUT -p tcp --dport 5434 -j ACCEPT
#iptables -I INPUT -p tcp --dport 5436 -j ACCEPT
#/etc/rc.d/init.d/iptables save
#/etc/init.d/iptables restart
   (5)修改配置文件,支持远程访问
  #vim /opt/postgres/9.1/data/pg_hba.conf
  修改成 host all all 0.0.0.0/0 md5
  (6)修改配置文件成主服务器
  修改 postgresql.conf:

###
listen_addresses = '*'
port = 5432
wal_level = hot_standby
max_wal_senders = 1
wal_keep_segments = 32
log_destination = 'stderr'
logging_collector = on
log_min_error_statement = error





(7)重启主服务

   #/opt/postgres/9.1/bin/postgres -D /opt/postgres/data/5432/data





(8)通过 DBeaver 类型的客户端工具连接数据库,测试连接成功。




(9)安装从数据库
  su postgres

/opt/postgres/9.1/bin/initdb -D /opt/postgres/data/5434/data
cd /opt/postgres/data/5434/data
vi postgres.conf
listen_addresses = '*'
port = 54321
hot_standby = on
vi recovery.conf
standby_mode = 'on'
primary_conninfo = 'host=127.0.0.1 port=5432 user=repl password=123456'

 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-302922-1-1.html 上篇帖子: Rails和PostgreSQL -- 为指定的schema写migration文件 下篇帖子: [postgresql] 如何锁定表,让所有语句都不能被执行
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表