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)截个图片


Arch-03-17- 用 pgpool-II 搭建 PostgreSQL 集群_第1张图片

 

(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


Arch-03-17- 用 pgpool-II 搭建 PostgreSQL 集群_第2张图片

 

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

 

Arch-03-17- 用 pgpool-II 搭建 PostgreSQL 集群_第3张图片

 

 

=====================================================================

(二)从零开始安装

(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'
 

 

 


  • Arch-03-17- 用 pgpool-II 搭建 PostgreSQL 集群_第4张图片
  • 大小: 134 KB
  • PostgreSQL集群.pdf (807.7 KB)
  • 下载次数: 138
  • Arch-03-17- 用 pgpool-II 搭建 PostgreSQL 集群_第5张图片
  • 大小: 17.1 KB
  • Arch-03-17- 用 pgpool-II 搭建 PostgreSQL 集群_第6张图片
  • 大小: 8 KB
  • 查看图片附件

你可能感兴趣的:(Arch-03-17- 用 pgpool-II 搭建 PostgreSQL 集群)