Windows版 PostgreSQL 利用 pg_upgrade 进行大版升级操作

PostgreSQL 12.2 版本升级到 16.4 版本 postgresql 12.2 版本升级到 16.4 版本的介绍 阅读详情
AI摘要

本文介绍利用pg_upgrade进行PostgreSQL大版升级操作。升级前要保证新旧数据库安装登录名一致并停止实例,修改文件权限和pg_hba.conf配置;执行pg_upgrade命令时需配置防火墙;完成后恢复pg_hba.conf验证方式。

利用 pg_upgrade 进行大版升级操作

注意

在安装数据库时,请保证新旧数据库安装时使用的登录名一致,建议保持默认的"postgres"就行,如果将安装时的登录名禁用请将其所有权限打开。
安装完成后将所有的数据库实例停止。
在这里插入图片描述

修改文件权限

将新旧版本的安装文件夹和data文件夹的权限改为完全控制
在这里插入图片描述

pg_hba.conf配置修改

将新旧数据库中data文件中 pg_hba.conf 验证方式改为"trust"

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

执行pg_upgrade命令

配置防火墙,管理员运行CMD,进入新版本bin目录

pg_upgrade -b "D:\PG\PostgreSQL\16\bin" -B "D:\PG\PostgreSQL\17\bin" -d "D:\PG\NanFangPG\data" -D "D:\PG\nanfang17\data" -U postgres

pg_upgrade -b “旧的bin目录” -B “新的bin目录” -d “旧的data目录” -D “新的data目录” -U postgres
在这里插入图片描述
完成

恢复修改的配置

将新旧数据库中data文件中 pg_hba.conf 验证方式改为"scram-sha-256"

# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
PostgreSQL-大版本升级(pg_dumpall方式) 通过一次全库的转储和恢复的过程,新版本的数据库会 比较纯净,一些遗留的、未能回收的垃圾都可以清理干净。使用 pg_dumpall 方式升级,也就是转储方式升级,实际上是将数据库在旧版本中先备份,行升级,还可以通过逻辑复制的方式进行版本升级,为数据库版本升级提供了更多的便利。大版本的升级可以将数据以存。备份结束后在新版本中进行还原的过程,需要有一定时间的停机维护窗口,升级持续的时。间主要取决于数据量的大小和磁盘的写入速度,如果数据量很大,升级会持续很长时间,一份升级前的副本,以应对意外时的快速回滚。 阅读详情

相关推荐

PostgreSQL版本选择与升级避坑指南:从安装到生产实践

数据库版本管理是系统稳定运行的基石,掌握版本号规则与官方支持窗口是做出正确选型的前提。PostgreSQL主版本引入新功能,小版本则负责安全修复,理解这一机制能帮助你在稳定与创新间找到平衡。在实际工程场景中,新项目可优先采用最新稳定版以延长生命周期,存量系统则应遵循小版本追新、大版本稳走的原则。针对Windows环境,安装包选择、服务启动失败排查、便携版潜在风险都是高频问题,需要结合日志与端口检查系统化解决。跨大版本升级可借助pg_dump逻辑备份或pg_upgrade物理迁移,配套扩展兼容性验证不可或缺。

weixin_31220401的博客 322

postgresql数据库升级,小版本及大版本 pg_upgrade

使用pg_upgrade的link模式升级:首先需要了解旧版本有哪些Extension及表空间,当使用链接模式运行pg_upgrade之后,pg_upgrade程序会把旧版本数据目录中的pg_control文件重命名为pg_control.old,如果仍然想运行旧版本的数据库实例,需要把pg_control.old重命名回pg_control。在普通模式下,会把旧版本的数据拷贝到新版本中,所以如果使用普通模式升级,要确保有足够的磁盘空间存储新旧两份数据;6)使用pg_upgrade普通模式升级。

jnrjian的博客 6345

PostgreSQL 17发布:稳定性提升与升级实操全解析

数据库系统是现代应用架构的核心基础设施,PostgreSQL作为功能强大的开源关系型数据库,凭借其MVCC并发控制和WAL日志机制,在高并发事务处理中表现出色。PostgreSQL 17作为年度大版本,重点打磨底层架构,通过优化索引扫描、重构VACUUM内存管理,进一步提升了系统稳定性与查询性能。针对升级决策,文章结合pg_upgrade工具详解了安全迁移流程与参数调优要点,并介绍了逻辑复制、增量排序、SQL/JSON增强等新特性。无论是在线交易场景还是数据分析负载,PostgreSQL 17都提供了更平滑

weixin_32183107的博客 241

PostgreSQL升级之pg_upgrade升级

PostgreSQL中的升级,如果针对小版本的升级,比如9.6.1升级到9.6.2(当前的最新版本),只需要用9.6.2版本的软件替换9.6.1版本的软件即可,不需要做额外的操作,因为整个大版本是相互兼容的,内部存储形式也是兼容的。但如果涉及到跨大版本升级比如9.4.11升级到9.6.2,这种直接替换软件就不行了,因为跨版本的内部存储形式发生了变化。官方给了三种升级的方式来解...

weixin_34237596的博客 456

PostgreSQL 17发布:核心特性、部署实战与升级避坑指南

在数据库技术持续演进的背景下,关系型数据库的性能优化与运维效率成为企业关注的核心。PostgreSQL 作为开源数据库的代表,其每次大版本更新都牵动着开发者和DBA的神经。PostgreSQL 17 在底层架构上进行了渐进式增强,重点改进了VACUUM清理机制与WAL写入路径,显著提升了高并发场景下的写入稳定性;同时将增量备份能力从插件纳入内核,配合逻辑复制冲突检测等新特性,大幅降低了生产环境的运维复杂度。此外,JSON_TABLE函数的引入让半结构化数据查询更加灵活,而pgvector等生态工具则拓展了其

weixin_29973493的博客 240

Ubuntu 22.04 安装 PostgreSQL 实战指南:从 apt 到 systemctl 精准控制

PostgreSQL 是一款功能强大的开源关系型数据库,其在 Linux 系统中的部署远不止执行一条安装命令。理解其与包管理器 apt 的协同机制、systemctl 对服务单元的分层管理逻辑,是实现稳定运行的基础。Ubuntu 22.04 默认采用 systemd 初始化系统,并以 postgresql@14-main.service 等实例化单元精准控制集群生命周期,而非笼统的 postgresql.service。这种设计提升了运维可控性,也要求开发者掌握配置文件(postgresql.conf、pg

weixin_30776273的博客 637

Windows下PostgreSQL 17升级到18

PostgreSQL 18升级指南摘要 本文详细介绍了从PostgreSQL 17升级到18的完整步骤。首先需下载安装PostgreSQL 18并停止旧版本服务。关键步骤包括:通过管理员CMD设置密码,使用pg_upgrade工具进行升级(需注意校验和设置),初始化新数据库系统。升级完成后需启动新服务并更新数据库统计信息,最后验证版本并清理旧数据。整个过程涉及多个命令行操作,包括vacuumdb统计更新和版本验证查询,确保数据迁移完整性和新版本正常运行后,方可卸载旧版本。

duckSoup_2001的博客 135

PostgreSQL绿色版安装与配置全攻略

本文详细介绍了PostgreSQL绿色版的安装与配置全流程,包括下载解压、初始化数据库、启动服务、连接使用及常见问题解决。绿色版PostgreSQL无需安装,解压即用,特别适合开发者和需要便携数据库的场景,同时保持与标准版相同的功能和性能。

weixin_29313423的博客 461

【postgresql 笔记】

postgresql 笔记

Python1996的博客 236

Ubuntu 20.04 安装 PostgreSQL 15:避坑指南与生产就绪配置

PostgreSQL 是开源关系型数据库的工业级标准,其版本演进(如15.x)持续增强 JSONB、并行查询、逻辑复制等核心能力。理解 PostgreSQL 原理需从安装方式切入:APT 仓库提供便捷但版本滞后,手动编译可获最新特性却易陷依赖与权限陷阱,而 PGDG 官方第三方仓库则在版本新鲜度与系统集成间取得平衡。技术价值在于通过精准的 initdb 参数、pg_hba.conf 认证策略及 postgresql.conf 性能调优,使单机实例具备开发与轻量生产承载力。典型应用场景覆盖 Web 后端(Dj

weixin_34178244的博客 402

23、PostgreSQL 13 主要版本升级方法详解

本文详细介绍了将 PostgreSQL 升级到 13 版本的三种主要方法:使用 pg_dumpall、使用 pg_dump 和 pg_restore 以及使用 pg_upgrade。每种方法都提供了具体的操作步骤和工作原理,并对它们的优缺点进行了对比分析。文章还讨论了升级前的准备工作、注意事项以及实际案例,帮助用户根据实际需求选择最合适的升级方案,确保数据库的平稳升级。

jwt8token的博客 180

使用pg_upgrade工具为PostgreSQL进行版本升级

公司的测试环境和生产环境都是9.2.4版本,而开发环境是9.0.18版本。 PS: 不知道公司里的其它同事,是如何做数据库迁移的,利用第三方可视化工具备份数据库,然后恢复到其它高版本的环境?反正我没成功过。 我是用cmd命令调用PostgreSQL的pg_dump+pgsql工具操作才成功的。 在自己电脑上,切换到PostgreSQL的bin目录cd /d C:\Program Fi...

weixin_30902251的博客 421

PostgreSQL 9.1.3 Windows x64 安装配置与数据迁移实战

PostgreSQL作为开源关系型数据库的常青树,其9.1系列虽已停止维护,仍广泛存在于银行、制造、教育等行业的遗留系统中。在Windows x64平台部署这类老版本时,需掌握图形安装器与二进制包两种方式,理解initdb初始化、pg_ctl启停、postgresql.conf和pg_hba.conf调优等核心原理,才能保障服务稳定运行。通过pg_dump实现逻辑备份、利用pg_upgrade规划跨版本迁移,既能应对紧急数据恢复,也能为系统平滑演进提供路径。同时,针对中文编码、服务权限、连接认证等高频故障,

weixin_29201933的博客 312

postgresql大版本升级

原文地址:http://blog.youkuaiyun.com/yangzhawen/article/details/51006625 环境:   当前版本:pg 9.4.6 安装路劲为:/data/pg946/   目标版本:pg 9.5.1 安装路劲为:/data/pg951/         **************************************************

Silence Ray的博客 3773

Theil-Sen Median斜率估计和Mann-Kendall趋势分析:以多年NPP数据为例

一、理论 Theil-Sen Median方法又称为Sen斜率估计,是一种稳健的非参数统计的趋势计算方法。该方法计算效率高,对于测量误差和利群数据不敏感,适用于长时间序列数据的趋势分析。其计算公式为: Mann-Kendall(MK)检验是一种非参数的时间序列趋势性检验方法,其不需要测量值服从正太分布,不受缺失值和异常值的影响,适用于长时间序列数据的趋势显著检验。其过程如下:对 于 序 列Xt = x1,x2,⋯xn,先确定所有对偶值( xi , xj ,...

丑唐的修炼之旅 8万+

不写代码,Cursor 10分钟开发1个APP!保姆级教程喂饭来了

做出第一个能运行的app,那种成就感真的很棒。虽然过程可能有点折腾,但只要耐心一点,问题都能解决。记住,遇到问题不要慌,现在有AI帮忙,大部分问题都能快速解决。重要的是迈出第一步,开始动手实践。你的第一个app可能很简单,但这是一个很好的开始。随着经验积累,你能做出的东西会越来越酷。现在就开始行动吧,说不定下个月你就能向朋友炫耀你自己做的app了!

chenhong007的博客 1548

windows上upgrade postgres

一、背景 更新前使用的postgres版本是9.3版本,官方不再支持了. 基于IT安全的要求,需要升级到更高版本,于是打算升级到10.11版本 升级生产环境的数据库版本,一定得慎重再慎重,不然随便出了一点小问题,线上的应用就没办法使用了,而我也是一次升级Postgres,就更加得小心翼翼了. 首先,肯定得参考官方文档,然后在自己的服务器上做测试 在实际操作中,由于是第一次更新数据库,所以遇到...

汪康的博客 782

基于Active-HDL的HDL设计录入与仿真

作者:毛茏玮 / Saint 掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a 微博:https://weibo.com/5458277467/profile?topnav=1&wvr=6&is_all=1 GitHub:github.com/saint-000 优快云: https://me.youkuaiyun.com/qq_4053...

一个会写代码的烤鸭 7780
上一篇: Redis笔记
下一篇: Qt 关于获取postgres time with time zone类型字段存在无效值的情况
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值