暂无图片
pg_upgrade的两者模式有啥区别?
我来答
分享
暂无图片 匿名用户
pg_upgrade的两者模式有啥区别?


1: 普通模式和link模式的区别,线上大版本升级通常使用那种模式,如果数据库很大比如10t,建议采用啥种模式 ?

2:普通模式下,会把旧版本的数据拷贝到新版本,这里数据拷贝指的啥?


$pgdata目录中的数据吗? 还是老版本的安装软件的目录


3:2节点的主从的流复制下,如何升级,从pg 14升级到15 

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
goodbuger

1. 普通模式和 link 模式的区别,线上大版本升级通常使用哪种模式,如果数据库很大比如10t,建议采用哪种模式?

  • 普通模式:在普通模式下,pg_upgrade 会将旧版本的数据文件复制到新版本的数据目录中,并在新版本中重新初始化这些文件。这种方式适用于数据库相对较小的情况,因为它需要足够的磁盘空间来存储两份数据(旧版本和新版本)。

  • link 模式:在 link 模式下,pg_upgrade 不会复制数据文件,而是在新版本的数据目录中创建符号链接(symlink)指向旧版本的数据文件。这种方式适用于数据库较大的情况,因为它节省了磁盘空间,但需要确保旧版本的数据文件在升级过程中不会被修改或删除。

对于线上大版本升级,通常推荐使用 link 模式,因为它可以节省磁盘空间并减少升级过程中的数据复制时间。如果数据库非常大(例如10TB),使用 link 模式可以显著减少升级时间和资源消耗。

2. 普通模式下,会把旧版本的数据拷贝到新版本,这里数据拷贝指的是啥?

在普通模式下,数据拷贝指的是将旧版本数据库的数据文件(位于 $pgdata 目录中)复制到新版本数据库的数据目录中。这个过程会创建新版本的数据文件的副本,而不是直接修改旧版本的数据文件。这样可以确保在升级过程中,如果出现问题,可以回退到旧版本的数据库。

3. 2节点的主从的流复制下,如何升级,从pg 14升级到15

在主从复制的环境中,升级 PostgreSQL 版本需要谨慎操作,以确保数据的一致性和系统的可用性。以下是从 PostgreSQL 14 升级到 15 的一般步骤:

  1. 准备阶段

    • 确保备份当前数据库。
    • 检查并应用所有必要的补丁和更新。
    • 验证主从复制的配置和状态。
  2. 升级从节点

    • 停止从节点的复制。
    • 在从节点上安装新版本的 PostgreSQL。
    • 使用 pg_upgrade 在从节点上进行升级。
    • 启动从节点并验证其正常运行。
  3. 升级主节点

    • 在主节点上停止复制。
    • 在主节点上安装新版本的 PostgreSQL。
    • 使用 pg_upgrade 在主节点上进行升级。
    • 启动主节点并验证其正常运行。
  4. 重新配置复制

    • 在主节点上重新配置复制设置,确保从节点可以连接到新版本的主节点。
    • 启动从节点的复制。
  5. 验证和测试

    • 验证主从复制是否正常工作。
    • 进行充分的测试,确保所有功能正常。

在进行升级时,建议在非生产环境中先进行测试,以确保升级过程顺利,并准备好应对可能出现的问题。

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
postgresql 备机回放wal很慢, 这个和哪个参数可以控制?
回答 1
这个默认都很快不用参数调整控制。看看其他方面。CPU负荷,IO符合等等。
PostgreSQL 一个存储过程中,多个子存储过程,怎么让它们出错了还继续执行?
回答 2
子存储过程出错时,使用beginendexception异常处理机制可以决定是否继续执行后续的子存储过程或回滚整个事务。
pg_dump 如何能获得建库语句
回答 1
使用pgdump命令导出PostgreSQL数据库时,默认情况下只包含数据库中数据的备份信息,不包含创建数据库的语句。如果您想要获取建库语句,可以结合pgdumpall和grep命令来实现。以下是一个
Postgresql update后的returning的结果集有没有办法保存?
回答 1
从v9.6开始可以使用COPY保存,例如copy(updatexxxsetb'ccc'wherea100returning)tostdout;
地理数据如何做表分区啊?
回答 2
不需要分区。如果要分大家都是按照时间维度来做。
请教一个问题: PostgreSQL中的relname怎么理解?
回答 1
已采纳
如何理解pgclass.relname:pgclass中的class这个在一些高级语言中概念都是通用的,面向对象编程,抽象的概念就是class,实体化的概念是object。在关系型数据库中术语是rel
PostgreSQL 设置密码登录
回答 1
将pghba.conf文件中localallall    trust修改为localallall   md5重启生效
postgresql 15 大量插入的时候会崩溃,怎么处理?
回答 1
1.查看报错信息,定位原因;2.优化参数提高缓冲区大小;3.减少每次事务提交的数据量,减少分批插入数据大小;4.确定io速度是否正常;5.减少插入并发进程数量;
Windows下postgresql性能如何提升?
回答 1
具体不清楚您的问题,但是根据您的描述,建议可以从以下方面入手,希望可以帮助到你1、使用EXPLAIN查看执行计划2、及时更新执行计划中使用的统计信息3、明确用join来关联表4、关闭自动提交5、多次插
PostgreSQL delete 一张表后,磁盘没有减少怎么办?
回答 4
涨姿势了