我们在不同的服务器上进行postgresql复制。所以今天我在复制集群postgresql.conf
执行复制后,我使用以下命令重启postgresql:
pg_ctlcluster 9.2 main2 restart
但是没有重新启动,它给出了这个错误:
The PostgreSQL server failed to start. Please check the log output.
检查日志,我看到了:
2015-06-16 12:18:16 EEST [10655]: [2-1] LOG: received smart shutdown request
2015-06-16 12:18:16 EEST [10661]: [2-1] FATAL: terminating walreceiver process due to administrator command
2015-06-16 12:18:16 EEST [10658]: [1-1] LOG: shutting down
2015-06-16 12:18:16 EEST [10658]: [2-1] LOG: database system is shut down
现在检查日志它显示最后一次重启日志,但是当我尝试启动服务器时,日志不会更新。它说检查日志,但没有新信息,即使我尝试再次启动服务器。
P.S。我需要在主人身上做点什么吗?
更新
重新更改postgresql.conf
设置,开始复制。但是从错误来看,很难说出错了。
这里是我更改的设置(在更改之后,它们与在master上相同。当我评论它时,我才能开始复制):
shared_buffers = 1536MB
effective_cache_size = 3072MB
checkpoint_segments = 15
checkpoint_completion_target = 0.9
autovacuum = on
track_counts = on
work_mem = 25MB
正如我所说,在评论这些之后,我可以启动它。但是不明白为什么它不会让这些设置开始。
答案 0 :(得分:0)
如果我是你,如果升级是一个选项,我要做的第一件事就是升级到PostgreSQL 9.4(或更新版本)。在复制方面有一个很好的理由 - 一个名为"复制插槽的新功能" (见the announcement)。
简而言之:复制插槽比WAL存档更强大,更易于实现(显然,根据您的日志使用)。
在this post中,您会找到有关实施该功能的综合指南。