小乔 发表于 2016-11-20 12:10:27

Arch-03-17- 用 pgpool-II 搭建 PostgreSQL 集群

  (一)方案
  尽管做数据库 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)截个图片
  

  (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
  

  . Parallel_Mode 并发模式,传说中的 scale out 分表

  =====================================================================
  (二)从零开始安装
  (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]
查看完整版本: Arch-03-17- 用 pgpool-II 搭建 PostgreSQL 集群