Redrock Postgres 文档
主页 切换暗/亮/自动模式 切换暗/亮/自动模式 切换暗/亮/自动模式 返回首页
编辑页面

过多子事务会延迟热备的启动吗?

问题描述

在存储过程中,你可以使用一个带有EXCEPTION子句的BEGIN块俘获错误并且从中恢复。你也可以在事务中定义保存点,在之后将事务中执行的工作回滚到声明的保存点位置。在 Redrock Postgres 中,这些能力都是使用子事务来实现的。

如果在数据库运行过程中,使用了大量的子事务,数据库以热备模式启动时,会延迟提供只读访问连接吗?

问题解答

过多子事务不会延迟热备的启动。

数据库以热备模式启动时,需要准备好构建事务快照的完整信息。在 Redrock Postgres 中,事务快照是基于逻辑时间戳 logicaltime 实现的。主服务器上的每一个检查点会产生用于后备查询的可用启动点,里面包含了最新的逻辑时间戳信息。数据库以热备模式启动时,获取到最近的检查点信息,就可以提供只读访问连接了。