目前我正在研究如何为HA postgresql体系结构设置stream式复制。 但是这个问题对于我们在一般的混合环境中的备份/恢复和维护也是相关的。
我们的“主”postgresql服务器运行在Windows机器上。 我每天都在使用pg_dump创build逻辑备份,并且使用pg_basebackup和WAL归档来创build一个应该提供PITR的完整备份(我还没有testing过)。
下一步是build立一个通过stream式复制保存副本的从机。 由于更好的支持postgresql生态系统,这个新的主机运行的是Ubuntu Server 16.04 LTS。
pg_basebackup -h <main host> -D <datadirectory> --xlog-method=stream
我初始化了从机数据目录。 standby_mode = on
和connectioninfo创build了recovery.conf文件 hot_standby = on
并启动了守护进程 现在我遇到问题,因为postgres告诉我, “数据库语言环境(英语_United_States.1252明显是Windows特定的)是不兼容的操作系统”
那么,我知道,1252是一个Windows特定的语言环境,我应该在Linux上使用en_US.UTF8,但在像这样的混合环境中,我应该:
您不能恢复像pg_basebackup
在不同架构上创建的文件系统备份,例如从Linux上的Windows恢复备份。
在这种情况下,流式响应也是不可能的。
从PostgreSQL v10开始,您可能会考虑逻辑复制。