首页 > 其他分享 >pg大版本升级

pg大版本升级

时间:2024-09-14 12:27:16浏览次数:3  
标签:bin pg16.4 postgresql -- 版本升级 export pg home

文章目录

一、升级计划

pg14.9 -> pg16.4

查看当前版本信息:

psql -V
pg_config
select version();

在这里插入图片描述

原来环境变量:

export PGHOME=/home/postgresql/pg14.9    #修改为--prefix设置的路径
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib$LD_LIBRARY_PATH
export PGDATA=/home/postgresql/pgdata  #本机原先存在的数据目录,根据实际情况替换
export PGPORT=5432
export PATH=$PGHOME/bin:$PATH:.

二、升级步骤

pg16.4版本安装包获取:https://www.postgresql.org/ftp/source/
在这里插入图片描述
在这里插入图片描述
下载完成之后上传安装包到服务器
在这里插入图片描述

1、安装目标版本数据库

在这里插入图片描述
上传完成之后发现权限是root,需要解压之后并更改权限

# root用户执行
cd /home/postgresql
chown -R postgres:postgresql /home/postgresql/postgresql-16.4.tar.bz2
# postgres用户执行
tar -xvf postgresql-16.4.tar.bz2

在这里插入图片描述

编译&安装:

# postgres用户执行
mkdir -p /home/postgresql/pg16.4
cd /home/postgresql/postgresql-16.4
# 编译
./configure --prefix=/home/postgresql/pg16.4 --with-libxml --without-readline --without-icu
# 安装
make && make install

编译过程报错缺少包
在这里插入图片描述

# root用户安装包之后再次执行,编辑以及安装操作
yum install libxml2 libxml2-devel

在这里插入图片描述
在这里插入图片描述

检查是否安装到目录pg16.4下
在这里插入图片描述
编译插件:

cd /home/postgresql/postgresql-16.4/contrib
make && make install

在这里插入图片描述
指定新的数据目录,记住只初始化数据库,不启动,确认好字符编码字符集
在这里插入图片描述

mkdir /home/postgresql/pgdata16
/home/postgresql/pg16.4/bin/initdb  -D /home/postgresql/pgdata16 -E UTF8 --locale=en_US.utf8 -U postgres

在这里插入图片描述

2、源库备份并关闭

pg_dumpall -U postgres -f /home/postgres/dumpall_data.sql
# 备份之后记得关闭源生产库
pg_ctl stop 

在这里插入图片描述

3、版本兼容性检查

# 检查新旧数据库版本兼容性,要确保所有选项都OK
cd /home/postgresql/pg16.4/bin/
./pg_upgrade --old-datadir /home/postgresql/pgdata --new-datadir /home/postgresql/pgdata16 --old-bindir /home/postgresql/pg14.9/bin/ --new-bindir /home/postgresql/pg16.4/bin/ --check

在这里插入图片描述
确保检查结果都是OK,如有异常,根据检查结果进行分析处理。

4、升级数据库

cd /home/postgresql/pg16.4/bin/
./pg_upgrade --old-datadir /home/postgresql/pgdata --new-datadir /home/postgresql/pgdata16 --old-bindir /home/postgresql/pg14.9/bin/ --new-bindir /home/postgresql/pg16.4/bin/

在这里插入图片描述
在这里插入图片描述
记住这里的两条命令,现在不执行后边会执行

# 不执行不执行
/home/postgresql/pg16.4/bin/vacuumdb --all --analyze-in-stages
/home/postgresql/pg16.4/bin/delete_old_cluster.sh

5、修改环境变量

vi .bash_profile

export PGHOME=/home/postgresql/pg16.4     #修改为--prefix设置的路径
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib$LD_LIBRARY_PATH
export PGDATA=/home/postgresql/pgdata16  #本机原先存在的数据目录,根据实际情况替换
export PGPORT=5432
export PATH=$PGHOME/bin:$PATH:.

更换参数文件及白名单
更换postgresql.config 、pg_hba.conf文件

mkdir /home/postgresql/pgdata16/pg_log

cat >> /home/postgresql/pgdata16/postgresql.conf <<"EOF"
listen_addresses = '*'
port=5432
unix_socket_directories = '/tmp'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on   #日志循环
EOF

# pg_hba文件将原pgdata下的拷贝过来就行

在这里插入图片描述

三、升级后的收尾

1、检查升级效果

pg_ctl start
select version();

在这里插入图片描述

2、重新收集统计信息

# 这里是升级数据库那里没执行的命令
/home/postgresql/pg16.4/bin/vacuumdb --all --analyze-in-stages

在这里插入图片描述

3、删除源数据库的数据

/home/postgresql/pg16.4/bin/delete_old_cluster.sh

到此升级完成。检查一下数据库数据是否正常即可。
在这里插入图片描述

标签:bin,pg16.4,postgresql,--,版本升级,export,pg,home
From: https://blog.csdn.net/yushaoyyds/article/details/142170129

相关文章

  • 高频和FPGA通信
    在高频交易(High-FrequencyTrading,HFT)环境中,FPGA(Field-ProgrammableGateArray)的使用已经成为提高交易速度和效率的关键技术。FPGA能够在硬件级别执行特定的计算和处理任务,这使得它们在处理大量数据和执行复杂算法时具有显著的速度优势。以下是FPGA在高频交易中的应用以......
  • 设计一款芯片-FPGA图像处理
    构建一个基于7nm技术的图像处理芯片,用于实时图像处理(包括降噪、去雾、边缘优化等功能),涉及到从无晶圆厂(fabless)设计到芯片生产的完整流程。这个过程包括多个关键步骤,每一步都对最终产品的性能和可靠性至关重要。以下是这一流程的概述:需求分析和预研●功能定义:明确芯片需......
  • ceph之pg inactive
    查看故障查看ceph状态通过ceph的输出,发现osd.7提示slowops,同时有1个pg处于inactive状态。故障处理确定osd状态通过以上命令确定osd.7属于ceph03节点。确定pg状态通过以上命令,发现pg7.1dstuck状态。查看ceph日志查看ceph03节点的ceph日志,/var/log/ceph/cep......
  • HttpClient 和 HttpGet 都设置了,setConnectTimeout 和 setReadTimeout/setSocketTimeo
    在使用ApacheHttpClient时,如果你分别在HttpClient和HttpGet(或其他请求对象)上都设置了setConnectTimeout和setReadTimeout(也叫setSocketTimeout),那么最终生效的配置是HttpGet(或请求对象)的配置优先,即请求对象上的超时设置会覆盖全局HttpClient的设置。具体规则说明:H......
  • ipguard的安装与加解密配置
    控制策略的好与坏与目标明确性、环境适应性、实施效果、资源配置、数据支持、反馈机制、利益相关者需求、风险管理、技术支持以及组织文化等多个因素密切相关。1.IP-Guard安装基础条件1.1.资源信息介绍机器信息CPU内存磁盘空间windowsserver20164vcpu8GRAM......
  • 在Ubuntu 20.04上安装pgAdmin 4
    在Ubuntu20.04上安装pgAdmin4可以通过以下步骤完成:1.更新系统首先,确保系统是最新的。打开终端并运行以下命令:sudoaptupdate&&sudoaptupgrade2.安装依赖项pgAdmin4需要一些额外的依赖库。运行以下命令以确保这些库被安装:sudoaptinstallcurlca-certifi......
  • 基于FPGA与RK3588的多通道低延时3G-SDI视频信号
    目录简介主要用途:项目简介:详细过程:BT1120视频时序转CEA861视频像素编码格式转换低延时处理MIPI接口处理视频处理模块​​​​​​​简介主要解决 RK3588支持多种视频格式输入,但是没有支持多路SDI接口的设计方案,系统利用实现四路SDI视频图像的采集。传输。处理,以......
  • PDshell16反向pgsql中 Unable to list the columns. SQLSTATE = 22003不良的类型值 sh
    问题原因:pdshell逆向pg的sql脚本滞后,与pg新版本不兼容,解决方案:修改掉不兼容的sql代码1、Database->EditCurrentDBMS,如下 2、PostgreSQL9.x->Script->Objects找到Column和Key;如下 3、将Column->SqlListQuery选项里SELECT中的c.attnotnull替换为cast(nullif(c.att......
  • Recovery Catalog Schema Upgrade Fails With ORA-02298 On Constraint ROUT_F3
    OracleDatabase-EnterpriseEdition-Version19.16.0.0.0andlaterRecoveryCatalogschemaupgradetoversion19.16 failsWithORA-02298onconstraintROUT_F3RMAN>upgradecatalogrecoverycatalogispartiallyupgradedto19.16.00.00errorcreatingu......
  • 使用 nuxi upgrade 升级现有nuxt项目版本
    title:使用nuxiupgrade升级现有nuxt项目版本date:2024/9/10updated:2024/9/10author:cmdragonexcerpt:摘要:本文介绍了如何使用nuxiupgrade命令升级Nuxt3项目,包括打开终端、运行升级命令、使用选项、测试项目等步骤,以及升级前的注意事项,如备份代码、检查文......