我正在尝试使用流式复制为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并称它为一天吗?
提前致谢
答案 0 :(得分:0)
为了回答我自己的问题,问题在于如何调用dockerfile入口点脚本。相反,他们最终会根据我未正确设置的变量将实例作为主设备或从设备启动。