0

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

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

掌握 postgresql 配置:

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

从属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 通过 NFS 从 master 挂载 /walshare:

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 是本机激活同步提交,还是应该在主 postgresql.conf 中手动添加它?
  2. 开启同步提交,如果slave没有响应,Master会失败,repmgr如何处理这种情况?
  3. 当 repmgr 创建新的从属(克隆主)时,它是否删除 /var/lib/pgsql/9.4/data/pg_xlog 并重新创建一个新的?
  4. 在同一个卷组上拥有 pgsqllv 和 pgxloglv 不会影响 I/O 性能?我应该为 pg_xlog 使用专用磁盘吗?
  5. 按照 repmgr 官方文档,wal_keep_segments = 5000 这需要 pg_xlog 需要 80 GB,80Gb 是固定的,或者我应该创建足够大的逻辑卷 100Gb 的最小空间,例如管理 pg_xlog 磁盘空间增长?

感谢您的帮助,

4

1 回答 1

0

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

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

于 2015-04-15T15:26:27.443 回答