PostgreSQL 的高可用方案里,PITR 热备算是个比较稳的方式,尤其适合你想做个冷静点但不想停服务的场景。嗯,用 WAL 日志做恢复,虽然步骤多点,但数据安全性确实高。再配个触发器复制数据变化,也挺灵活,改动少,部署快。
基于语句的复制方案也还不错,比如你用中间件来做主从复制控制,不改 PostgreSQL 源码,省事省力。适合不太想折腾底层的同学。不过遇到高并发时会有些卡,这点要注意。
源码级改造的复制方案,适合对系统理解比较深的开发者,比如需要自定义复制逻辑的。用这种方式做数据分发或者异地多活,灵活性会高多,但学习曲线也陡一些。
数据仓库场景下,如果你是跑任务比较多,可以考虑那种异步复制或多副本集群的玩法,比如配合一些中间件来做分片读写分离,响应也快,数据一致性也能保证。
你要是刚开始搞这块,推荐先看看Keepalived + PG 复制这篇文章,部署步骤清楚,对新手蛮友好。想更深入点的,可以读PostgreSQL 高可用架构探析,里面讲了不少实战经验。
还有个蛮全的视频教程:PostgreSQL 数据库工程师实战培训,主从、复制、高可用全都带你撸一遍,想系统掌握的不妨看看。
如果你在做分布式系统或者数据库冗余设计,不妨先从触发器复制或者 PITR 入手,简单实用。等玩熟了,再去折腾源码改造或中间件也不迟。