如何解决一个PostgreSQL 9.3从站,无法跟上主人?

如何解决一个PostgreSQL 9.3从站,无法跟上主人?,第1张

概述我们有一个主从复制配置如下. 主人: postgresql.conf的复制配置如下(为简洁起见,注释行): max_wal_senders = 1 wal_keep_segments = 8 在奴隶: 与master相同的postgresql.conf. recovery.conf如下所示: standby_mode = 'on'primary_conninfo = 'h 我们有一个主从复制配置如下.

主人:

postgresql.conf的复制配置如下(为简洁起见,注释行):

max_wal_senders = 1            wal_keep_segments = 8

在奴隶:

与master相同的postgresql.conf. recovery.conf如下所示:

standby_mode = 'on'primary_conninfo = 'host=master1 port=5432 user=replication password=replication'trigger_file = '/tmp/postgresql.trigger.5432'

当初始设置时,我们进行了一些简单的测试,并确认复制正在运行.然而,当我们做了初始的数据加载时,只有一些数据被提供给从站.

奴隶的日志现在已经填满了这样的消息:

< 2015-01-23 23:59:47.241 EST >LOG:  started streaming WAL from primary at F/52000000 on timeline 1< 2015-01-23 23:59:47.241 EST >FATAL:  Could not receive data from WAL stream: ERROR:  requested WAL segment 000000010000000F00000052 has already been removed< 2015-01-23 23:59:52.259 EST >LOG:  started streaming WAL from primary at F/52000000 on timeline 1< 2015-01-23 23:59:52.260 EST >FATAL:  Could not receive data from WAL stream: ERROR:  requested WAL segment 000000010000000F00000052 has already been removed< 2015-01-23 23:59:57.270 EST >LOG:  started streaming WAL from primary at F/52000000 on timeline 1< 2015-01-23 23:59:57.270 EST >FATAL:  Could not receive data from WAL stream: ERROR:  requested WAL segment 000000010000000F00000052 has already been removed

经过对#postgresql IRC频道的一些分析和帮助之后,我得出结论,奴隶无法跟上主人.我提出的解决方案如下.

主人:

>设置max_wal_senders = 5
>设置wal_keep_segments = 4000.是的,我知道这是非常高的,但我想监控情况,看看会发生什么.我有主人的空间.

在奴隶:

>将配置文件保存在数据目录中(即pg_hba.conf pg_IDent.conf postgresql.conf recovery.conf)
>清除数据目录(rm -rf /var/lib/pgsql/9.3/data/*).这似乎是pg_basebackup需要的.
>运行以下命令:
pg_basebackup -h master -D /var/lib/pgsql/9.3/data –username = replication – 密码

我错过了什么吗?有没有更好的方法来使奴隶最新的w / o必须重新加载所有的数据?

任何帮助是极大的赞赏.

处理 streaming replication streaming replication的两个重要选择:

> wal_keep_segments应该设置得足够高,以允许从属在合理的滞后之后赶上(例如,高更新量,从机脱机等).
> archive_mode启用可用于恢复早于wal_keep_segments的文件的WAL归档.从属服务器只需要一种方法来检索WAL段. NFS是最简单的方法,但是从scp到http到磁带的任何 *** 作都可以工作,只要它可以脚本化.

# on masterarchive_mode = onarchive_command = 'cp %p /path_to/archive/%f' # on slaverestore_command = 'cp /path_to/archive/%f "%p"'

当从站不能从主站直接拉出WAL段时,它将尝试使用restore_command来加载它.您可以将从站配置为使用archive_cleanup_commandsetting自动删除段.

如果从属设备遇到需要的下一个WAL分段从主机和归档中丢失的情况,则无法一致地恢复数据库.唯一合理的选择是擦洗服务器,并从新鲜的pg_basebackup重新开始.

总结

以上是内存溢出为你收集整理的如何解决一个PostgreSQL 9.3从站,无法跟上主人?全部内容,希望文章能够帮你解决如何解决一个PostgreSQL 9.3从站,无法跟上主人?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1170510.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存