1. 普通模式和 link 模式的区别,线上大版本升级通常使用哪种模式,如果数据库很大比如10t,建议采用哪种模式?
-
普通模式:在普通模式下,pg_upgrade 会将旧版本的数据文件复制到新版本的数据目录中,并在新版本中重新初始化这些文件。这种方式适用于数据库相对较小的情况,因为它需要足够的磁盘空间来存储两份数据(旧版本和新版本)。
-
link 模式:在 link 模式下,pg_upgrade 不会复制数据文件,而是在新版本的数据目录中创建符号链接(symlink)指向旧版本的数据文件。这种方式适用于数据库较大的情况,因为它节省了磁盘空间,但需要确保旧版本的数据文件在升级过程中不会被修改或删除。
对于线上大版本升级,通常推荐使用 link 模式,因为它可以节省磁盘空间并减少升级过程中的数据复制时间。如果数据库非常大(例如10TB),使用 link 模式可以显著减少升级时间和资源消耗。
2. 普通模式下,会把旧版本的数据拷贝到新版本,这里数据拷贝指的是啥?
在普通模式下,数据拷贝指的是将旧版本数据库的数据文件(位于 $pgdata 目录中)复制到新版本数据库的数据目录中。这个过程会创建新版本的数据文件的副本,而不是直接修改旧版本的数据文件。这样可以确保在升级过程中,如果出现问题,可以回退到旧版本的数据库。
3. 2节点的主从的流复制下,如何升级,从pg 14升级到15
在主从复制的环境中,升级 PostgreSQL 版本需要谨慎操作,以确保数据的一致性和系统的可用性。以下是从 PostgreSQL 14 升级到 15 的一般步骤:
-
准备阶段:
- 确保备份当前数据库。
- 检查并应用所有必要的补丁和更新。
- 验证主从复制的配置和状态。
-
升级从节点:
- 停止从节点的复制。
- 在从节点上安装新版本的 PostgreSQL。
- 使用
pg_upgrade 在从节点上进行升级。
- 启动从节点并验证其正常运行。
-
升级主节点:
- 在主节点上停止复制。
- 在主节点上安装新版本的 PostgreSQL。
- 使用
pg_upgrade 在主节点上进行升级。
- 启动主节点并验证其正常运行。
-
重新配置复制:
- 在主节点上重新配置复制设置,确保从节点可以连接到新版本的主节点。
- 启动从节点的复制。
-
验证和测试:
- 验证主从复制是否正常工作。
- 进行充分的测试,确保所有功能正常。
在进行升级时,建议在非生产环境中先进行测试,以确保升级过程顺利,并准备好应对可能出现的问题。