我有 postgresql 9.4。
我知道关于 DBA 和 SO 有很多答案,我知道 wiki 和文档。
但是无论如何,我无法以简单的方式理解拥有主 postgresql 服务器和从主服务器更新的从属 postgresql 服务器的正确方法是什么(尽快,以减少数据丢失)。
此外,我还需要一种方法来在主控失败的情况下自动将从属提升为主控。
我应该使用Repmgr吗?或者我应该只使用 Postgresql 的函数?
谢谢
我有 postgresql 9.4。
我知道关于 DBA 和 SO 有很多答案,我知道 wiki 和文档。
但是无论如何,我无法以简单的方式理解拥有主 postgresql 服务器和从主服务器更新的从属 postgresql 服务器的正确方法是什么(尽快,以减少数据丢失)。
此外,我还需要一种方法来在主控失败的情况下自动将从属提升为主控。
我应该使用Repmgr吗?或者我应该只使用 Postgresql 的函数?
谢谢
正确的做法是设置双机热备。
使用 Repmgr 只是您方便的问题。您可以使用它,或者您可以设置触发文件创建,或使用
pg_ctl
例如来推广。这是你的选择。Repmgr 不参与数据从 master 到 slave 的流式传输过程,它只是一个管理工具。还,
小心“主控失败时自动提升从属”。您绝对应该知道自己在做什么,并且应该非常严格地定义“失败”。如果你没有超大型集群,那么最好不要让故障转移完全自动化。
小心“数据丢失”。你应该知道,只有在服务器端出现故障,或者网络/磁盘/等出现问题时,流式复制才会拯救你。如果有人会来到您的数据库并键入 ,它不会帮助您
DROP DATABASE
。语句的更改将立即流式传输到 slave,DB 将在任何地方丢失。避免 SQL 语句造成数据丢失的唯一方法是有效备份。