欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Postgresql流复制

程序员文章站 2022-06-24 20:33:21
Postgresql流复制 简单理解: 简单来说,当用户提交请求来修改某个数据的时候,我们将这个修改的操作使用预写日志来保存(WAL),也就是先将用户要改动的结果保存在WAL中...
Postgresql流复制

简单理解:

简单来说,当用户提交请求来修改某个数据的时候,我们将这个修改的操作使用预写日志来保存(WAL),也就是先将用户要改动的结果保存在WAL中,然后再实际的去修改数据库。通过WAL我们可以解决服务器宕机出现的数据丢失的问题。这种将预写日志从主服务器传输到备用服务器,然后在备用服务器回放出预写日志中记录改动,这就是实现了主从复制。

而其中的传输预写日志有两种方法:存档式和流式。

存档式介绍:主服务器将预写日志主动拷贝到一个安全的位置(可以直接到备用服务器,也可以是第三台服务器),同时备用服务器定期扫描这个位置,并将预写日志拷贝到备用服务器端然后再回放。这样即使主服务器崩溃了,备用服务器也可以从这个安全的位置获取到一份完整的记录,以确保任何数据不会丢失。

流式复制介绍:主服务器直接通过TCP协议向备用服务器传输日志,避免了两次复制的开销,有利于减小备用服务器和主服务器直接的数据延时。但当主服务器崩溃时,未被传输到备用服务器的日志则会丢失,造成数据损失。