gpt4 book ai didi

linux - 在从 Windows 托管数据库集群创建的 Linux 上恢复 pg_basebackup

转载 作者:可可西里 更新时间:2023-11-01 11:45:58 25 4
gpt4 key购买 nike

目前我正在研究如何为 HA postgresql 架构设置流复制。但这个问题也与我们在一般混合环境中进行备份/恢复和维护有关。

我们的“主要”postgresql 服务器在 Windows 机器上运行。我每天都使用 pg_dump 创建逻辑备份,使用 pg_basebackup 和 WAL 归档创建一个应该提供 PITR 的完整备份(我还没有测试过)。

下一步是设置一个从属机器,它通过流复制保存一个副本。由于对postgresql生态系统的更好支持,这台新主机运行的是Ubuntu Server 16.04 LTS。

  1. pg_basebackup -h <main host> -D <datadirectory> --xlog-method=stream我初始化了从数据目录。
  2. 然后我不得不修复表空间文件的一些符号链接(symbolic link),因为它们指向 Windows 路径而不是 Linux 文件系统。
  3. 接下来,我使用 standby_mode = on 创建了 recovery.conf 文件和连接信息
  4. 我已验证,服务器配置为 hot_standby = on并启动守护进程

现在我遇到了 postgres 告诉我的问题,“数据库语言环境(English_United_States.1252,显然是特定于 Windows 的)与操作系统不兼容”

好吧,我知道 1252 是 Windows 特定的语言环境,我应该在 Linux 上使用 en_US.UTF8,但在这样的混合环境中,我应该:

  • 在 Windows 上也使用 en_US.UTF8 语言环境初始化我们的主数据库?
  • 这可能吗?
  • 为什么 pg_basebackup 格式是特定于操作系统的,或者是否存在不是操作系统的备份格式?
  • 是否有任何命令行标志可以设置来翻译它?
  • 如果只使用 Linux(或什至只使用 Windows),我也很感激,但我担心我们的客户将在相当长的一段时间内依赖这两种操作系统。

最佳答案

您无法像 pg_basebackup 在不同架构上创建的那样恢复文件系统备份,例如在 Linux 上从 Windows 恢复备份。

在这种情况下,流复制也是不可能的。

从 PostgreSQL v10 开始,您可能会考虑逻辑复制。

关于linux - 在从 Windows 托管数据库集群创建的 Linux 上恢复 pg_basebackup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44796204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com