hot_standby
PostgreSQL数据库是通过在数据目录下建一个特殊的文件来指示数据库启动在主库模式还是在备库模式,在PostgreSQL 12版本之前是通过文件“recovery.conf”来指示数据库启动在备库模式的(当然需要在recovery.conf中配置一些合适的内容才可以),从PostgreSQL 12版本开始把recovery.conf中的配置项全部移到postgresql.conf配置文件中,不再使用recovery.conf文件。当然为了指示该数据库是备库,还需要在数据目录下建一个名为“standby.signal”的空文件。
如果我们在postgresql.conf中配置了“hot_standby”为“on”,说明备库是“Hot Standby”,即可以只读的,如果配置“hot_standby”为“off”,说明备库是“Warm Standby”,psql是无法连接这个备库的,连接时会报如下错误:
[postgres@pg01 ~]$ psql
psql: FATAL: the database system is starting up
若备份数据库在接收主数据库同步数据和应用同步数据时不能提供只读服务,则该备份数据库称为Warm Standby Server;而如果备份数据库在接收和应用主数据库同步数据时也能提供只读服务,则该备份数据库称为Hot Standby Server。Hot Standby功能是PostgreSQL 9.0版本开始提供的新功能。