本文主要针对PostgreSQL主备配置中经常提到得Hot Standby与Stream Replication两种方式的区别进行简单记录、说明。
首先,二者参数配置主要区别如下:
原理说明:
>> Hot Standby是基于热备生成的归档:当主库生成新的归档后,备库对归档进行转储、恢复。这也就表示,hot standby中,当发生宕机后,备库可能会有一个归档日志的数据丢失。
>> Stream Replication是基于WAL Record:当主库新写了一个Wal Record之后,自动对该record进行同步,备库接收后进行自动恢复
二者都配置好之后,通过进程也可以发现:
>> Hot Standby的备端可以看到如下进程:
postgres: startup process waiting for 000000010000000000000005
postgres: startup process recovering 000000010000000000000005
>> Stream Replication的备端看到的却是:
wal receiver process streaming 0/E0001C8
startup process recovering 00000001000000000000000E