Werner Asked: 2023-06-29 05:29:21 +0800 CST2023-06-29 05:29:21 +0800 CST 2023-06-29 05:29:21 +0800 CST 更好地理解 PG 日志和复制流程 772 我一直在使用 PG 和复制,但我不太清楚该过程的确切顺序。 请纠正我的理解: 我对数据库执行更新 SQL 语句。 更改被写入为事务,并且该事务被放置在日志缓冲区中。 日志缓冲区在提交时刷新到 WAL 日志,然后在流式复制的情况下流式传输到备用数据库。 然后事务被写入缓存,然后写入磁盘。 这是正确的理解吗? postgresql 1 个回答 Voted Best Answer Laurenz Albe 2023-06-30T13:07:57+08:002023-06-30T13:07:57+08:00 正确的流程是: 在共享缓冲区中的数据被修改之前,事务重做信息被写入 WAL 缓冲区 主数据库的 WAL 发送方读取此信息并将其发送到备用数据库的 WAL 接收方,无需等待COMMIT主数据库上的任何其他操作 重做信息写入备用数据库上的 WAL 并刷新到磁盘 然后,在备用数据库上应用重做信息,从而修改共享缓冲区中的数据
正确的流程是:
在共享缓冲区中的数据被修改之前,事务重做信息被写入 WAL 缓冲区
主数据库的 WAL 发送方读取此信息并将其发送到备用数据库的 WAL 接收方,无需等待
COMMIT
主数据库上的任何其他操作重做信息写入备用数据库上的 WAL 并刷新到磁盘
然后,在备用数据库上应用重做信息,从而修改共享缓冲区中的数据