PostgreSQL数据库分片与零停机升级全解析
1. 数据库分片策略
数据库分片是提升数据库性能和可扩展性的重要手段。虽然示例中仅使用了两个模式分片,但该过程可很好地扩展到任意数量的预分配段。使用特定方法重新定位模式十分容易,且不必局限于将一台服务器仅拆分为两个。不过,一旦以这种方式拆分服务器,就无法有效地将它们重新组合。
在进行数据库分片时,若应用程序在设计时就考虑到分片,这种数据库分片方式将发挥最佳效果。更理想的做法是,在向任何分片插入数据之前,预先创建所有逻辑分片。原因在于,如果已有包含大量数据的现有模式,如多年积累的外键、客户信息和客户活动数据,将这些数据重新分配到分片模式的所有必要表中会极其困难,很可能需要完全手动迁移。
同样,如果应用程序一开始只使用少量分片,而不是从一开始就分配最大数量的分片,后续也会面临问题。例如,在2048个活动分片中仅使用4个,且这4个已分布在4台物理服务器上,后续就需要创建新的分片并再次手动分配数据。
相反,如果从一开始就创建所有2048个分片,客户从一开始就被分配到相应分片,数据也插入到正确的分片中。即使所有分片最初都在一台服务器上,也可使用特定方法进行扩展。若想立即扩展到四台服务器,只需创建三个副本并将分片均匀分配到每个系统即可。
对于可能需要高事务量的系统,尽早采用这种架构非常重要,否则实现水平可扩展性及其相关可用性的道路将漫长而艰难。
2. 零停机升级概述
对于PostgreSQL等数据库集群服务,主要版本升级是对高可用性的终极考验。随着时间推移,升级过程有了显著改进。早期版本的升级过程如下:
| 版本范围 | 升级方法 |
|
超级会员免费看
订阅专栏 解锁全文
798

被折叠的 条评论
为什么被折叠?



