【发布时间】:2018-03-06 16:10:35
【问题描述】:
我正在尝试使用流复制为 postgres 10 和 docker 设置基本的主从配置
由于官方 docker 映像提供了一个 docker-entrypoint-initdb.d 文件夹来放置初始化脚本,我认为开始将我的准备代码放在这里是一个不错的主意。
我想要做的是在启动从机处于待机模式之前自动恢复数据库的方式,所以我运行
rm -rf /var/lib/postgresql/data/* && pg_basebackup 'host=postgres-master port=5432 user=foo password=foo' -D /var/lib/postgresql/data/
这成功了。
然后服务器按照docker初始化脚本关闭并重新启动,弹出一条消息说
主备数据库系统标识符不同
现在我已经在网上坐了一段时间了,我得到的唯一两个解释是我的 recovery.conf 文件配置错误,看起来像这样
standby_mode = 'on'
primary_conninfo = 'host=postgres-master port=5432 user=foo password=foo'
trigger_file = '/tmp/postgresql.trigger'
连接字符串与我用于基本备份的连接字符串相同。
第二种解决方案是备份命令可能被搞砸了,但备份后我添加到数据文件夹中的唯一内容是recovery.conf 文件。
有人知道我在哪里搞砸了吗?
我应该去repmgr并收工吗?
提前致谢
【问题讨论】:
标签: postgresql docker kubernetes replication database-replication