我正在尝试为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文件。
有人知道我在哪里搞砸了吗?
我是不是该去买个便宜货,今天就到此为止?
提前感谢
发布于 2018-04-24 08:39:58
为了回答我自己的问题,问题在于dockerfile入口点脚本是如何调用的。相反,它们最终会根据我没有正确设置的变量作为主或从实例启动实例。
https://stackoverflow.com/questions/49135319
复制相似问题