postgresql - 以读写模式打开备用 Postgres 数据库进行测试

标签 postgresql postgresql-12 edb

我目前使用的是 Postgres 12.6 Enterprisedb 版本。我有一个灾难恢复数据库,它以只读模式与生产数据库同步。现在,我想暂时中断同步并以读写模式打开灾难恢复数据库一段特定的时间。之后,我计划将其同步回生产数据库。 PostgreSQL 中是否有任何可用机制允许我暂时暂停或停止预写日志记录 (WAL) 进程?另外,我也很好奇PostgreSQL是否有类似Oracle文件闪回功能的概念。

基本上中断以读写模式临时打开的同步,然后再次恢复与产品同步

最佳答案

如果您使用 12.6,则表明您不太关心数据的健康状况。今天更新到12.15。

您不需要暂停或停止复制;您必须“提升”备用数据库,使其成为一个可以读写的独立数据库。一种方法是调用 pg_promote() 函数。

将升级后的备用数据库恢复到原始状态的简单方法是删除数据目录并从新的 pg_basebackup() 开始。然而,有一个实用程序可以大大加快速度:pg_rewind。它将撤消自升级备用数据库以来发生的所有修改。

要使 pg_rewind 正常工作,有一些先决条件:

  • 您需要由于服务器分散而在两侧生成的所有 WAL(您可以使用 wal_keep_segments 来实现此目的)

  • 集群必须使用 initdb --data-checksums 创建才能具有数据校验和,或者 wal_log_hints 必须设置为 on

关于postgresql - 以读写模式打开备用 Postgres 数据库进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76370560/

相关文章:

postgresql - 为什么当我把它放到函数中时查询执行速度慢了 76 倍?

error-handling - 从JMS发送消息后如何捕获错误

postgresql - 从 Postgresql 中删除选定的表

Python 列表到 PostgreSQL 数组

postgresql - json_array_elements : invalid input syntax for integer

.net - EDB 文件格式

postgresql - 如何将 uuid 与 postgresql gist 索引类型一起使用?

sql - PostgreSQL 认为没有索引,当有

linux - PostgreSQL 查询在 LINUX 服务器上执行时间太长