PostgreSQL 流式复制 - 主服务器损坏

1 postgresql replication

我们在主数据库和从数据库之间有 PostgreSQL 9.3.9 流式复制。在复制时,Master 上是否会发生可能导致持久性问题或 Master 和 Slave DB 完全失败的问题?在复制时,我是否总是会保持持久性并准备好工作或恢复从属数据库?

Cra*_*ger 5

在复制时,Master 上是否会发生可能导致持久性问题或 Master 和 Slave DB 完全失败的问题?

是的,有。

任何在主服务器上的事务日志被归档或流式传输到副本之前破坏它们的事情都会这样做 - 我已经亲眼目睹了这种情况。根本原因是管理员错误,因为管理员kill -9删除了 postmaster,postmaster.pid然后删除了一个新的 postmaster。尽管如此,损坏的 WAL 还是被复制了。

损坏共享内存、翻转位等的内存错误可能会发生。

影响事务日志的严重文件系统问题可以做到这一点。

一个讨厌的 PostgreSQL 错误可以做到。我们实际上在 9.3 中也有其中之一,尽管它在 9.3.9 之前已修复。要了解更多关于它的信息,请搜索“multixact wrap-around”。

这就是为什么我强烈建议您使用 WAL 存档和定期基本备份保持时间点恢复。该pgbarman工具可以帮助与此有关。

定期的文本格式转储作为额外的保险也是一个好主意。

在复制时,我是否总是会保持持久性并准备好工作或恢复从属数据库?

不,因为某些类型的损坏可以复制到从站。

最明显的是,如果您DROP TABLE critical_production_data;系统会在您甚至可以说“哦,嘘……”之前顺从地将其复制给奴隶。

时间点恢复很重要。