主从设备延迟(激活同步提交)和pg_xlog在一个单独的磁盘中

时间:2015-03-20 17:49:53

标签: postgresql database-replication postgresql-9.3 pgpool repmgr

我们正准备将repmgr添加到现有的Postgresql 9.3两节点流复制群集中。

以前我们有一个严重的问题影响了我们的主要业务,问题是主设备和从设备之间的延迟,我们通过调整配置解决了以下问题:

master postgresql config:

archive_timeout = 60
synchronous_commit = on
synchronous_standby_names = 'slave1'
archive_command = 'test ! -f /walshare/%f && cp %p /walshare/%f'

slave recovery.conf:

standby_mode = 'on'
primary_conninfo = 'host=master port=5432 user=repuser password=xxx application_name=slave1'
restore_command = 'cp /walshare/%f "%p"' 

slave1 mount / walshare通过NFS从master:

postgres@slave1:~$ mount -t nfs
master:/walshare on /walshare type nfs (rw,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800,addr=xx.xx.xx.xx,clientaddr=xx.xx.xx.xx)

通过激活同步提交,我们最终解决了主从之间的延迟问题。

我们不想重新配置由repmgr管理的当前集群,以便于管理任务和故障转移。

我创建了一个新的虚拟机(使用PG-9.4),并计划将数据库从旧集群迁移到新集群。

为了避免pg_xlog磁盘空间问题,我决定将pg_xlog目录放在与PGDATA逻辑卷相同的卷集上的单独逻辑卷中。

/dev/mapper/datavg-pgsqllv mounted on /var/lib/pgsql
/dev/mapper/datavg-pgxloglv mounted on /var/lib/pgsql/9.4/data/pg_xlog

我的问题是:

  1. 该repmgr是否本机激活同步提交,还是应该在master postgresql.conf中手动添加?
  2. 启用同步提交时,如果slave没有响应,Master会失败,repmgr如何处理如情况?
  3. 当repmgr创建新的slave(clone master)时,是否会删除/var/lib/pgsql/9.4/data/pg_xlog并重新创建一个新的?
  4. 在同一卷上使用pgsqllv和pgxloglv不会影响I / O性能吗?我应该为pg_xlog使用专用磁盘吗?
  5. 在repmgr官方文档之后,wal_keep_segments = 5000需要80 GB需要pg_xlog,80Gb是fixe还是最小空间我应该创建足够大的100Gb逻辑卷,例如manage pg_xlog磁盘空间增长?
  6. 感谢你的帮助,

1 个答案:

答案 0 :(得分:0)

在repmgr讨论组中已经给出了答案:

https://groups.google.com/forum/#!topic/repmgr/DQ3W4BiiRAY