Windows版 PostgreSQL 利用 pg_upgrade 进行大版升级操作
最近 PostgreSQL 15 版本正式发布了,新版本的各种特性和好处本文就不展开介绍了,主要介绍一下 Windows 环境下 PostgreSQL 大版本升级的方法,我们现在的几个数据库都是运行在 Windows服务器的 PostgreSQL 14,
首先准备一份新版本的 PostgreSQL 初始化,并调整好所有设置,关于这一步其实和安装一个全新的 PostgreSQL 操作差不多,可以看我之前 的一篇博文 Windows 系统 PostgreSQL 手工安装配置方法
不过在操作的时候对于新版本的PostgreSQL只要初始化之后,调整好对应的 postgresql.conf 就可以了,不需要去执行安装服务那些步骤,我们只需要一个调整好设置的 postgreSQL 实例就可以了,甚至都不需要启动它。
这个就是我们从 PostgreSQL官网下载的一份最新版的 PostgreSQL15 的压缩包,我们首先初始化实例
initdb -D "C:\Software\PostgreSQL15\data" -E UTF8 -U postgres --locale="Chinese (Simplified)_China.936" --lc-messages="Chinese_China.936" -A scram-sha-256 -W
这里需要注意的一个点是,设定密码时最好和老版本的实例 postgres 账户密码保持一致,实例化的时候参数中传递的编码格式 如 Chinese (Simplified)_China.936,Chinese_China.936 这些一定要和原来老版本的实例最好保持一直,密码加密格式最好也是和老版本的实例保持一直如 scram-sha-256,实例化之后根据自己的需要把 postgresql.conf 文件中的配置参数按照老版本中改动过的地方按照自己需求再调整一次,然后把 pg_hba.conf 直接复制到新版本中,原则就是新老版本尽量保持配置一致。
准备好这些之后就可以开始升级操作了,首先关闭老的实例,确保新老版本的两个实例都没有启动,都在关闭状态。
net stop PostgreSQL
检查新老实例版本所在的文件夹,我们的账户是都有完整的全部权限,我这里 cmd 命令是以 Administrator 账户运行的,所以我为两个文件夹都赋予了 Administrator 的完整权限
然后在新版本的 bin 下执行如下命令 cmd环境
cmd
set PGPASSWORD=xxxxxx (xxxx为postgres 的密码)
pg_upgrade -b "c:\Software\PostgreSQL\bin" -B "c:\Software\PostgreSQL15\bin" -d "c:\Software\PostgreSQL\data" -D "c:\Software\PostgreSQL15\data" -U postgres
注释:> pg_upgrade -b "旧的bin目录" -B "新的bin目录" -d "旧的data目录" -D "新的data目录" -U postgres
像上图的状态,就说明我们的升级命令运行成功了。
命令执行完成之后记得直接关闭 cmd 窗口。否则后面修改实例名称时会提示有占用。
这个时候我去把原来老的实例,修改一个名字,比如我这里老的实例原本路径为 C:\Software\PostgreSQL,我们修改这个文件夹名称为 C:\Software\PostgreSQL14 ,然后修改我们新版本的实例路径 C:\Software\PostgreSQL15 为 C:\Software\PostgreSQL 其实就是调整一下两个实例文件夹的名字,重命名一下。
重命名调整好之后,就可以启动我们的 PostgreSQL 服务了
net start PostgreSQL
启动之后切换到再次进入到 bin 目录运行
cmd
set PGPASSWORD=xxxxxx (xxxx为postgres 的密码)
vacuumdb -U postgres --all --analyze-in-stages
如果原先老的实例中有部分数据库用到了一些扩展比如 postgis 等,还需要执行一个扩展的升级命令如下:
psql --username postgres --file update_extensions.sql postgres
至此 Windows版 PostgreSQL 利用 pg_upgrade 进行大版升级操作 就讲解完了,有任何不明白的,可以在文章下面评论或者私信我,欢迎大家积极的讨论交流,有兴趣的朋友可以关注我目前在维护的一个 .NET 基础框架项目,项目地址如下
https://github.com/berkerdong/NetEngine.git
https://gitee.com/berkerdong/NetEngine.git
Windows版 PostgreSQL 利用 pg_upgrade 进行大版升级操作的更多相关文章
- postgresql利用pg_upgrade升级数据库(从8.4升级到9.5)
其他见:http://my.oschina.net/ensn/blog/636766 本文利用pg_upgrade实现将8.4.18版本升级到9.5.0版本,8.4.18版本为RedHat系统自带pg ...
- windows系统中 利用kibana创建elasticsearch索引等操作
elasticsearch之借用kibana平台创建索引 1.安装好kibana平台 确保kibana以及elasticsearch正常运行 2.打开kibana平台在Dev Tools 3.创建一个 ...
- 以windows服务方式快速部署免安装版Postgres数据库
目录 以windows服务方式快速部署免安装版Postgres数据库 1.下载Postgresql数据库免安装包 2.安装环境准备及验证 解压文件 测试环境依赖 3.创建并初始化数据目录 创建数据目录 ...
- Windows XP系统安装SQL Server 2005(开发版)图解
转自Windows XP系统安装SQL Server 2005(开发版)图解 安装前提:由于有些从网上的下载的项目需要导入SQL Server 2005的数据文件,因此,今天便安装了这个数据库,我的系 ...
- Windows Server 2003 SP2 R2 企业版/标准版/32与64位 CD-KEY
微软发布Windows Server 2003 R2版的目的是希望透过它填补Windows Server 2003 SP1和Longhorn Server之间的产品发布时间间隔.所以Windows S ...
- Windows Azure 社区新闻综述(#76 版)
欢迎查看最新版本的每周综述,其中包含有关云计算和 Windows Azure 的社区推动新闻.内容和对话.以下是本周的亮点. 文章.视频和博客文章 · 更新 Windows Azure 中的 SQ ...
- Windows下安装zip包解压版mysql
Windows下安装zip包解压版mysql 虽然官方提供了非常好的安装文件,但是有的时候不想每次再重装系统之后都要安装一遍MySQL,需要使用zip包版本的MySQL.在安装时需如下三步: 1. 新 ...
- 在 Windows 10 专业版、企业版或教育版上设置展台
原文: 在 Windows 10 专业版.企业版或教育版上设置展台 Set up a kiosk on Windows 10 Pro, Enterprise, or Education 适用于 Win ...
- 基于《仙剑奇侠传柔情版》利用Java的简单实现(一)
基于<仙剑奇侠传柔情版>利用Java的简单实现(一) 2018-12-01 23:55:36 by Louis 一,新建一个类GameFrame.class,具体代码如下: pack ...
随机推荐
- 在Centos7上将Apache(httpd)切换为Nginx的过程记录
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_129 近期要上线几个基于tornado+motor的移动端接口服务,众所周知,Apache和tornado天生八字不合,尤其apa ...
- MultiJittered采样类定义和测试
多重抖动在书上说的是水平和竖直方面随机交换. 类声明: #pragma once #ifndef __MULTIJITTERED_HEADER__ #define __MULTIJITTERED_HE ...
- Python 实现列表与二叉树相互转换并打印二叉树封装类-详细注释+完美对齐
# Python 实现列表与二叉树相互转换并打印二叉树封装类-详细注释+完美对齐 from binarytree import build import random # https://www.cn ...
- Angular 新建项目错误:The Schematic workflow failed. See above
记录踩坑填坑,有不正之处请指出 错误 解决方法1 npm config set registry https://registry.npmjs.org/ 也可使用淘宝镜像 npm config set ...
- Hive存储格式之RCFile详解,RCFile的过去现在和未来
我在整理Hive的存储格式和压缩格式,本来打算一篇发出来,结果其中一小节就有很多内容,于是打算写成Hive存储格式和压缩格式系列. 本节主要讲一下Hive存储格式最早的典型的列式存储格式RCFile. ...
- 除了Synchronized关键字还有什么可以保证线程安全?
除了Synchronized关键字还有什么可以保证线程安全? 日常使用Java开发时,多线程开发,一般就用Synchronized保证线程安全,防止并发出现的错误和异常,那么 除了Synchr ...
- 论文解读(GATv2)《How Attentive are Graph Attention Networks?》
论文信息 论文标题:How Attentive are Graph Attention Networks?论文作者:Shaked Brody, Uri Alon, Eran Yahav论文来源:202 ...
- 创建deploymen的几种方式
创建deployment方式有两种,一种是命令直接创建,一种是使用yaml文件 1. 直接使用命令方式: --record 参数用来记录版本,也可以忽略,建议带上 kubectl create dep ...
- C++ 初识函数模板
1. 前言 什么是函数模板? 理解什么是函数模板,须先搞清楚为什么需要函数模板. 如果现在有一个需求,要求编写一个求 2 个数字中最小数字的函数,这 2 个数字可以是 int类型,可以是 float ...
- TortoiseSVN 执行清理( cleanUp )失败的解决方案
TortoiseSVN 执行清理( cleanUp )失败的解决方案 今天碰到了一个比较棘手的问题,在这里做一下记录,以方便自己和有需要的朋友在之后碰到该类问题时有个参考. 现象 更新SVN时弹出清理 ...