我目前使用的是 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/