【问题标题】:How do I convert a postgres 9.3 Slave to read-write without Impacting the Master如何在不影响主服务器的情况下将 postgres 9.3 从服务器转换为读写
【发布时间】:2017-04-30 05:03:35
【问题描述】:

我在 Ubuntu 上有一个 Postgres 9.3 主从流复制设置。
我想通过中断复制将 Slave 转换为读写。但是,我不希望 Master 受到任何影响,因为它是一个关键的生产。我想要的只是拥有 Master 的克隆,以便我可以测试 pg_upgrade。

我可以在从站上运行“pg_ctl 提升”,然后打开从站进行读/写吗?在 Slave 上运行“pg_ctl Promotion”对 Master 有影响吗?

非常感谢。

【问题讨论】:

  • 是的 - 只需在从站上运行 pg_ctl promote。所以它将停止从主人那里阅读。如果你没有级联副本,就是这样
  • 谢谢。所以看起来Master不会受到任何影响。它会影响从该 Master 复制的第二个 Slave 吗?是否在从站上使用恢复触发器文件与 pg_ctl 提升执行相同的操作?
  • 是的,promote 和 trigger_file 是相同的 - 在答案中链接了一些文档。大师将被释放一点- 唯一的影响。如果第二个从站正在从主站流式传输,则不会注意到其他从站升级

标签: postgresql replication


【解决方案1】:

来自docs

要触发日志传送备用服务器的故障转移,请运行 pg_ctl 提升或创建具有指定文件名和路径的触发器文件 通过 recovery.conf 中的 trigger_file 设置。如果你打算 使用 pg_ctl Promotion 进行故障转移,trigger_file 不是必需的。

所以pg_ctl promote -D data_dirtouch trigger_file 都平等地提升奴隶。从发送方停止发送的意义上讲,主站受到从站升级的影响。从主设备流式传输的其他从设备以相同的方式受到影响。推广是标准动作。

唯一具体案例would be cascaded replication

如果上游备用服务器被提升为新的主服务器, 下游服务器将继续从新的主服务器流式传输,如果 recovery_target_timeline 设置为“最新”。

如果你没有任何下游的“从属”,请鼓起勇气去推广它。

【讨论】:

  • 感谢 Vao Tsun。我运行了 pg_ctl 提升,它没有影响生产主机或第二个从机。我能够使用 pg_upgrade 成功升级。
猜你喜欢
  • 2012-03-04
  • 2015-03-27
  • 2013-11-03
  • 1970-01-01
  • 2014-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多