部署postgresql数据库集群

发布: 2012-07-07 10:38

可把任意一台作为主服务器,提供读写功能,其他的服务器提供读取服务器,作为热备服务器使用。

如果主服务器有问题,可把其他任意一台从服务器转为主服务器

或者新安装一台服务器,从从服务器同步数据过来,然后再作为主服务器使用运行。

这种实现的是postgresql中的stream replication机制。属于异步复制,极端情况下可能丢失部分数据。

使用版本,postgresql 9.1,

pgbrounce-x.x.x

参与资料,

网络情况,

A: 172.24.202.242

B: 172.24.149.192

A上的设置, wal_level = 'hot_standby'

max_wal_senders = 5

B上的设置,

在data目录下创建一个recovery.conf

设置如下参数,standby_mode = 'on'

primary_conninfo = 'host=Aip port=5432 user=postgres password=123456'

restore_command = 'true'

archive_cleanup_command = 'true'

修改B上的postgresql.conf配置文件,开启hot_standby = 'on',这样,在同步过程,使得该从数据库可读取。但不能写入。

这样一个简单的stream replication主从服务器就完成了。

在从服务器的recovery.conf中,没有设置真实的restore_command,这要求,在该数据库启动时,数据已经与主服务器做了恢复了。

经测试,主服务器数据表可读写,并且写入的数据即时同步到从服务器。从服务器可读取数据,但不能写入数据。

这个简单测试与预期一致。

如果在启动从服务器时,从服务器的数据与主服务器不一致,这可能会出现什么问题。

再加一台从C服务器,测试一下。没有问题。


原文: http://qtchina.tk/?q=node/669

Powered by zexport