【DB吐槽大会】第20期 - PG pg_upgrade大版本升级不支持增量

简介: 大家好,这里是DB吐槽大会,第20期 - PG pg_upgrade大版本升级不支持增量

背景


1、产品的问题点

  • pg_upgrade可以通过迁移元数据来支持大版本升级, 但是不支持增量数据.

2、问题点背后涉及的技术原理

  • pg_upgrade升级大版本的主要过程:
  • 使用大版本创建实例
  • 停库(老、新实例都要停掉) 这里影响业务
  • 检查大版本和老版本之间的兼容性
  • 导出元数据(结构等)
  • 导入元数据到新实例
  • 割接数据文件指向

3、这个问题将影响哪些行业以及业务场景

  • 通用
  • 对停机时间非常敏感的客户, 例如金融,医疗等.

4、会导致什么问题?

  • 升级过程需要停库, 直到元数据导入完成, 建议等统计信息重新生成后开启给用户使用,
  • 元数据导入耗时取决于元数据多少(一般指表、索引等个数).
  • 统计信息重新生成的耗时取决于数据量的多少, 如果不等统计信息重新生成完成, 可能导致sql的执行计划不准确, 有性能问题.

5、业务上应该如何避免这个坑

  • 可以使用pglogical这类逻辑增量迁移的工具来实现大版本升级

6、业务上避免这个坑牺牲了什么, 会引入什么新的问题

  • pglogical有前置依赖
  • 必须有PK和UK
  • 必须开启wal level=logical, 需要重启, 同时会产生更多的wal日志
  • pglogical不支持DDL的同步, Sequence的同步等.
  • pglogical的使用门槛较高, 一般用户搞不定.

7、数据库未来产品迭代如何修复这个坑

  • 建议内核层支持pg_upgrade大版本增量升级
相关文章
|
前端开发 JavaScript Go
【golang之路】——govaluate
【golang之路】——govaluate
58507 5
【golang之路】——govaluate
|
3月前
|
运维 监控 网络协议
排障本身不慢,MTTR却一直降不下来?时间都耗在这三个流程断点上
本文剖析MTTR居高不下的三大非技术断点:信息传递失真、工单推进停滞、跨部门信号断档。指出问题本质是流程链路断裂,而非排障能力不足,并给出低成本、可落地的三步改进方案:加推进超时提醒、标准化服务台字段、打通业务上报与端到端探测。(239字)
406 1
排障本身不慢,MTTR却一直降不下来?时间都耗在这三个流程断点上
|
8月前
|
人工智能 安全 小程序
阿里云无影云电脑详细介绍:具体价格、使用及免费领取三个月申请流程
阿里云无影云电脑(Elastic Desktop Service)是一种安全高效的云上桌面服务,支持快速部署与弹性扩容,适用于办公、教育、设计等场景。产品分企业版和个人版:企业版适合组织使用,支持多配置及GPU图形处理,4核8G低至199元/年;个人版涵盖黄金到黑金多档,满足游戏、AI开发等需求,黄金款14元/月起。现可申请免费试用1个月。
1387 9
|
自然语言处理 数据可视化
Qt开发技术:Qt富文本(二)Qt文本光标操作、文档布局、富文本编辑、处理和Demo
Qt开发技术:Qt富文本(二)Qt文本光标操作、文档布局、富文本编辑、处理和Demo
Qt开发技术:Qt富文本(二)Qt文本光标操作、文档布局、富文本编辑、处理和Demo
|
7月前
|
自然语言处理 监控 数据可视化
你的大模型微调真的有效吗?90%的人都不知道的评估秘诀
本文系统探讨大模型微调效果的量化评估方法,涵盖损失函数监控、困惑度分析、任务专属指标(如BLEU/F1/ROUGE)、人工评估与A/B测试、消融实验及横向对比,强调多维协同、闭环反馈,助力科学优化微调效果。
|
存储 监控 Linux
在 CentOS 7 中进行磁盘分区和挂载的操作
【10月更文挑战第7天】本文详细介绍了在 CentOS 7 中进行磁盘分区和挂载的操作。通过具体案例,我们展示了如何使用 `fdisk` 创建分区、格式化分区、创建挂载点以及将分区挂载到指定目录。这些步骤不仅有助于有效管理磁盘空间,还能提高服务器的性能和可靠性。适合 IT 专业人员学习和参考。
800 3
|
Shell 开发工具 git
【Git】解决Untracked Files Prevent Checkout的问题
【Git】解决Untracked Files Prevent Checkout的问题
5277 0
|
存储 监控 网络安全
rsync 远程同步 基础介绍
rsync 远程同步 基础介绍
|
SQL 关系型数据库 Shell
pgbench 的使用命令
pgbench 是 PostgreSQL 的一个基准测试工具,用于评估数据库的性能。以下是一些常用的 pgbench 命令和选项: 初始化测试环境: bash Copy code pgbench -i -s [scale] [database_name] 其中 -i 用于初始化数据库,-s 指定比例因子,[database_name] 是要测试的数据库名。比例因子决定了数据的总量,例如 -s 10。 执行基准测试: bash Copy code pgbench -c [clients] -j [jobs] -t [transactions] [database_name] 其中 -
463 0
|
网络安全 Ubuntu 数据安全/隐私保护
ubuntu开启ssh
1、SSH分客户端openssh-client和openssh-server如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-serversudo apt-get install openssh-server   2、然后确认sshserver是否启动了:ps -e |grep ssh如果看到sshd那说明ssh-server已经启动了。
2677 0