pgsql 版本升级和数据迁移(编译版)

最近给pgsql从16.0升级到16.4,有挺多细节

1.关闭pgsql

为了保证数据一致性和过渡平稳,还是需要暂停pgsql。

systemctl stop pgsql

2.备份现有数据

需要切换到pgsql的用户,通常用root是不行的

pg_dumpall > /xxx/xxx/backup.sql

3.重命名程序目录和数据目录(重要)

如果是默认的位置,那么命令如下

mv /usr/local/pgsql /usr/local/pgsql0
mv /var/pgsqldata /var/pgsqldata0

一定要迁移到其他目录,而不是直接覆盖,因为很容易搞错。

4.编译安装新版

编译安装的教程:链接

到make && make install就编译好了,下面是迁移数据
注意插件也需要重新安装

安装插件!!!

5.新版本的数据初始化

mkdir /var/pgsqldata
chown postgres:postgres /var/pgsqldata
chmod -R 750 /var/pgsqldata

切换到postgres,然后再进行初始化

su postgres
cd /var/pgsqldata
initdb

初始化之后不需要启动,如果不是初始化默认的/var/pgsqldata,可以适用指定目录initdb -D /xxx/xxx

6.升级数据目录(重要)

需要切换到postgres用户,还有进入可执行的目录,比如/tmp

cd /tmp
/usr/local/pgsql/bin/pg_upgrade -b /usr/local/pgsql0/bin -B /usr/local/pgsql/bin -d /var/pgsqldata0 -D /var/pgsqldata

/usr/local/pgsql/bin/pg_upgrade:这是 pg_upgrade 可执行文件的路径。新版本 PostgreSQL 的 pg_upgrade 工具的位置,因为它包含最新的升级工具代码

-b /usr/local/pgsql0/bin:

旧版本 PostgreSQL 的 bin 目录路径。
这个目录包含旧版本的 PostgreSQL 二进制文件(如 postgres、pg_ctl 等),pg_upgrade 需要知道旧二进制文件的位置以便与新版本进行兼容性检查。

-B /usr/local/pgsql/bin:

新版本 PostgreSQL 的 bin 目录路径。
这个目录包含新安装的 PostgreSQL 二进制文件。指定该路径以便 pg_upgrade 使用新版本的二进制文件进行升级。

-d /var/pgsqldata0:

旧版本 PostgreSQL 的数据目录路径。
此目录存储旧版本数据库的实际数据文件和元数据。pg_upgrade 将读取这些数据并将其迁移到新版本中。

-D /var/pgsqldata:

新版本 PostgreSQL 的数据目录路径。
这个目录将用于存储升级后的数据。pg_upgrade 会将旧数据目录中的数据迁移到这个新目录中,确保新版本 PostgreSQL 启动时可以直接使用这些数据。

一切正常后,会看到类似下面的提示,upgrade complete
在这里插入图片描述

7.修改pg_hba.conf文件和postgresql.conf

将旧的pg_hba.conf和postgresql.conf文件内容(我这里是/var/pgsqldata0)修改到新的数据目录里面去

8.启动pgsql

systemctl start pgsql

二、容易出现的报错和处理

1.新目录没有初始化

虽然是要从旧目录迁移数据,但是还是要初始化新版的数据目录

2.数据目录权限

无论是新的还是旧的目录,都需要700或750的权限

chmod -R 750 /var/pgsqldata
chmod -R 750 /var/pgsqldata0

3.没有关闭旧的程序

如果你不止开启了一个实例(多开pgsql),需要注意,否则无法正常进行
另外如果多个实例,有多个数据目录,则除了编译安装外,其他的数据迁移目录都要这样来一遍

4.插件没有安装

插件没有安装的情况是,是无法顺利迁移的,需要装的都要装

5.其他报错

如果有其他报错,通常会有个日志文件,读取其中就可以知道为什么迁移错误了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/914890.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS地理空间平台 manager 任意文件读取漏洞复现

0x01 产品描述: ‌ ArcGIS‌是一个综合的地理空间平台,由Esri开发,旨在为专业人士和组织提供全面的地理信息系统(GIS)功能。ArcGIS通过集成和连接地理环境中的数据,支持创建、管理、分析、映射和共享…

自定义springCloudLoadbalancer简述

概述 目前后端用的基本都是springCloud体系; 平时在dev环境开发时,会把自己的本地服务也注册上去,但是这样的话,在客户端调用时请求可能会打到自己本地,对客户端测试不太友好. 思路大致就是前端在请求头传入指定ip&a…

华为数通HCIA系列第5次考试-【2024-46周-周一】

文章目录 1、子网掩码有什么作用,和IP地址是什么关系,利用子网掩码可以获取哪些信息?2、已知一个IP地址是192.168.1.1,子网掩码是255.255.255.0,求其网络地址3、已知某主机的IP地址是192.168.100.200,子网掩…

[AGC016D] XOR Replace 题解

[AGC016D] XOR Replace 来自 qzmoot 同一机房的同学的题解。 模拟赛用不同的思路场切了。 题面大意:一个序列,一次操作可以将某个位置变成整个序列的异或和。 问最少几步到达目标序列。 来自梦熊的题面: 有一个长度为 n n n 的序列 a …

ubuntu 24.04运行chattts时cuda安装错误原因分析

使用ubuntu 24.04,按照2noise/ChatTTS官方流程安装依赖时报错。ChatTTShttps://github.com/2noise/ChatTTS 这是因为cuda版本不对,ChatTTS目前的版本,要求支持cuda 12.4及以上,但是如果nvidia显卡驱动版本较老,无法支…

力扣-Hot100-技巧【算法学习day.31】

前言 ###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴&am…

Spark的容错机制

1,Spark如何保障数据的安全 1、RDD容错机制:persist持久化机制 1)cache算子 - 功能:将RDD缓存在内存中 - 语法:cache() - 本质:底层调用的还是persist(StorageLevel.MEMORY_ONLY)&…

【漏洞分析】Fastjson最新版本RCE漏洞

01漏洞编号 CVE-2022-25845CNVD-2022-40233CNNVD-202206-1037二、Fastjson知多少 万恶之源AutoType Fastjson的主要功能是将Java Bean序列化为JSON字符串,这样得到的字符串就可以通过数据库等方式进行持久化了。 但是,Fastjson在序列化及反序列化的过…

推荐一款电脑清理和加速工具:Wise Care 365 Pro

Wise Care 365 Pro是一款可以清理注册表和磁盘垃圾文件,保护个人隐私记录,提高电脑使用安全的软件,是优化系统、提高Windows系统运行速度最好的选择!实时保护注册表不被其他程序未经许可地秘密修改。例如阻止程序更改您的浏览器主页&#xff…

微信小程序,点击bindtap事件后,没有跳转到详情页,有可能是app.json中没有正确配置页面路径

文章目录 1、index.wxml2、index.js检查点1. 确保目标页面存在2. 确保页面路径配置正确3. 检查页面接收参数productDetail.jsproductDetail.wxmlproductDetail.wxss 总结 1、index.wxml <!-- 商品搜索结果卡片容器 --><view class"search-result"><bl…

合理的止盈可以在盈利的时候保证期望的收益

吸取他人经验是每位交易者成长的必经之路。无论是新手还是老手&#xff0c;面对瞬息万变的市场&#xff0c;都需要不断学习。今天&#xff0c;我们特邀Eagle Trader的优秀交易员胡浩先生&#xff0c;分享他在交易中的实战经验与学习心得。在短暂的采访中&#xff0c;胡浩先生似…

ISAAC SIM踩坑记录--ROS2相机影像发布

其实这个例子官方和大佬NVIDIA Omniverse和Isaac Sim笔记5&#xff1a;Isaac Sim的ROS接口与相机影像、位姿真值发布/保存都已经有详细介绍了&#xff0c;但是都是基于ROS的&#xff0c;现在最新的已经是ROS2&#xff0c;这里把不同的地方简单记录一下。 搭建一个简单的场景&a…

【thm】 Investigating Windows

0x00 rdp连接目标机器 apt install rdesktop 我们直接在kali里面安装这个&#xff0c;然后去连接 rdesktop 10.10.187.161 然后直接输入用户名密码就可。 0x01 hacker的任务 查看系统的信息&#xff0c;我们直接在命令行中输入systeminfo就可以直接查看。 然后我们输入 Get…

Python爬虫知识体系-----requests-----持续更新

数据科学、数据分析、人工智能必备知识汇总-----Python爬虫-----持续更新&#xff1a;https://blog.csdn.net/grd_java/article/details/140574349 文章目录 一、安装和基本使用二、get请求三、post请求四、代理 一、安装和基本使用 和解析库urllib几乎一摸一样&#xff0c;但是…

Netty篇(入门编程)

目录 一、Hello World 1. 目标 2. 服务器端 3. 客户端 4. 流程梳理 &#x1f4a1; 提示 5. 运行结果截图 二、Netty执行流程 1. 流程分析 2. 代码案例 2.1. 引入依赖 2.2. 服务端 服务端 服务端处理器 2.3. 客户端 客户端 客户端处理器 2.4. 代码截图 一、Hel…

酯化反应干催化剂树脂

油酸酯和丙三醇的合成反应&#xff1a; 油酸酯和丙三醇的合成反应是一个酯化反应&#xff1a;酯化反应的基本原理和条件&#xff0c; 在这个反应中&#xff0c;丙三醇&#xff08;甘油&#xff09;和油酸反应生成三酸甘油酯&#xff08;油酸酯&#xff09;和水。这种反应通常在…

Java 值传递详解

目录 形参&实参 值传递&引用传递 为什么 Java 只有值传递&#xff1f; 案例 1&#xff1a;传递基本类型参数 案例 2&#xff1a;传递引用类型参数 1 案例 3&#xff1a;传递引用类型参数 2 引用传递是怎么样的&#xff1f; 为什么 Java 不引入引用传递呢&#x…

Hadoop(环境搭建篇)

这里我用的是ubnatu22.4的系统&#xff0c;请大家严格按照这个系统来安装 一、网络设置 1、打开虚拟机的编辑&#xff0c;并选择虚拟网络编辑器 2、点击更改设置 3、更改IP 二、更改主机名 1、打开终端 2、输入以下命令 hostnamectl set-hostname master 3、然后关闭终端在…

深入浅出研究AI协同办公领域发展和趋势

协同办公&#xff0c;又称OA&#xff0c;是指企业内部或外部各类人员之间利用信息技术来进行协作工作的一种形式。这种协作工作既可以由直接员工进行&#xff0c;也可以来自外部的咨询机构、合作伙伴或联营企业。协同办公的优势在于可以对资源进行有效管理和配置&#xff0c;各…

C语言数据结构与算法--简单实现栈的出栈与入栈

&#xff08;一&#xff09;栈的基本概念 栈(Stack)是限定仅在表尾进行插入和删除操作的线性表&#xff0c;如铁路调度。如下 图&#xff1a; &#xff08;二&#xff09;栈的的表现形式 栈有两种表示形式&#xff1a;栈的表示和实现、栈的 链式表示。 1&#xff0e;栈的表示…