零宕机时间完成PostgreSQL重大版本升级

2025-01-29
零宕机时间完成PostgreSQL重大版本升级

Instant团队分享了他们如何零宕机时间完成PostgreSQL从版本13到16的重大升级经验。他们尝试了原地升级和蓝绿部署,但都失败了,最终采用手动方式,通过创建一个新的PostgreSQL 16副本,逐步切换订阅和写入,并巧妙地设计了一个算法,在短暂暂停新事务后,确保所有活动事务完成并无数据丢失,最终实现了零宕机升级。过程中他们遇到了自定义函数搜索路径问题、序列数据复制问题等挑战,并分享了宝贵的经验教训。