postgresql大版本升级

postgresql升级有三种方式:pg_dump与restore,pg_upgrade,pg的Logical Replication,本文主要讲述pg_upgrade方式

步骤:

1.下载并安装新版数据库

下载:https://ftp.postgresql.org/pub/source/

安装:

cd /data/soft/
tar vxf postgresql-11.2.tar.gz
cd postgresql-11.2
#新数据库的监听端口不要与旧数据库监听端口相同
./configure --prefix=/usr/local/pgsql112 --with-pgport=5433
make -j `grep processor /proc/cpuinfo |wc -l`
make install

2.初始化新数据库

#创建新的数据文件目录
mkdir /pgdata/data112
chown -R postgres.postgres /pgdata/data112
su - postgres
cd /usr/local/pgsql112/
#字符集需要与旧库的字符集相同
#pgsql -l可以查看数据库字符集
#如果不设置locale,那么与运行initdb的系统环境中的locale相同,可以通过locale -a查看可用的locale,locale包含货币,日期,字符集等内容,-E制定字符集
./initdb  -D /pgdata/data112/   -U postgres

3.新旧数据库修改pg_hba.conf

在新旧数据库的升级过程中,新旧数据库会互相连接,为避免频繁认证,修改本地postgres认证

vi pg_hba.conf
#################################################
# "local" is for Unix domain socket connections only
local   all             all                                     trust
#修改为
# "local" is for Unix domain socket connections only
local   all             postgres                                     trust

4.停掉旧数据库

/usr/local/pgsql10.4/bin/pg_ctl stop -D /pgdata/data

5.使用pg_upgrade开始升级

5.1.创建升级目录

這個目錄postgres要有權限,并且不能夠在數據庫文件目錄中

$ cd /tmp

$ mkdir upgrade_log

5.2.升级前检查

$ /usr/local/pgsql112/bin/pg_upgrade -c -b /usr/local/pgsql104/bin -B /usr/local/pgsql112/bin -d /pgdata/data -D /pgdata/data112 -p 5432 -P 5433

小写字母之后都是旧数据库的,大写字母之后都是新数据库的,使用新数据库的pg_upgrade程序

5.3.升级

不适用--link方式,即将旧数据库的文件copy到新数据库目录中,使用link的话,不需要copy,直接使用硬链接

$ /usr/local/pgsql112/bin/pg_upgrade -b /usr/local/pgsql104/bin -B /usr/local/pgsql112/bin -d /pgdata/data -D /pgdata/data112 -p 5432 -P 5433

$ /usr/local/pgsql112/bin/pg_upgrade --link -b /usr/local/pgsql104/bin -B /usr/local/pgsql112/bin -d /pgdata/data -D /pgdata/data112 -p 5432 -P 5433

5.4.执行上一步生成的两个文件

上一步执行之后,会在当前目录下生成两个文件,一个收集统计信息,一个删除旧数据文件,根据实际情况执行

./analyze_new_cluster.sh

./delete_old_cluster.sh

6.修改配置文件,环境变量等

7.插件的升级

如果旧数据库安装了插件,那么在5.1检查的过程中会报错

7.1.查看旧数据库的插件

$ psql

postgres=# \dx

7.2.卸载插件

postgres=# drop extenions extension_name

7.3.升级完成后重新安装插件

原文地址:https://www.cnblogs.com/monkey6/p/10456580.html

时间: 2024-10-11 03:25:27

postgresql大版本升级的相关文章

Elasticsearch与Postgresql大数据检索性能对比

Elasticsearch与Postgresql数据检索性能对比与融合一般来说,影响数据库最大的性能问题有两个,一个是对数据库的读写操作,一个是数据库中的数据太大导致操作慢,对于前者我们可以适当借助缓存来减少一部分读操作,而针对一些复杂的报表分析和搜索可以交给hadoop和elasticsearch,对于写并发大,读也并发大,我们可以考虑分库分表,主从读写分离或者两者结合等方式来提高并发性和时效性,例如PG大并发写,大数据查看可以用elasticsearch与PG数据同步来读,可以启到很好的效果

大版本升级额外步骤

这里的大版本是指版本号的第2位数字,比如4.2.7.3升级到4.3.3.1,从4.2升级到4.3,会出现无法启动问题,提示catalog版本不兼容. 而如果只是在第2位数字之内的相同版本的升级没有此类问题:最前面的那个版本数字号由于目前还没有出现对应版本,所以没有相关问题. [[email protected] ~]$ gpstart -a 20141019:12:40:51:004622 gpstart:gtlions60:gpadmin-[INFO]:-Starting gpstart wi

PostgreSQL升级之pg_upgrade升级

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

PostgreSQL 利用pg_upgrade升级版本

参考:http://www.postgresql.org/docs/current/static/pgupgrade.html 概述 从低版本升级到 新版本,有几种可选的方案.一是使用pg_dump/pg_restore,该方法比较耗时,也即是停机时间比较长,特别是大数据量下,但是 稳定且易于操作.二是和MySQL那样利用复制的方式,停机时间短,但操作相对复杂.第三种就是利用pg_upgrade,重建系统表,相对停机时间较短. pg_upgrade 1. 语法 pg_upgrade -b old

百度地图技术大揭秘

在优亿开放日上,我们邀请过众多产品.运营方面的专家,但是工程师可能比较少一点,这次的活动,我们很高兴请到了百度地图高级研发工程师游东.游东具有四年以上的地图和导航开发经验,目前主要负责百度地图的SDK研发工作.在技术和开发上肯定是亲临第一线的高手. 我们整理了游东先生的演讲,希望给广大开发者提供实实在在的帮助. 一.百度地图介绍:高端手机实现陀螺仪导航 我们可以看到百度这一块对SDK重视还是比较大,我们的迭代版本速度也是比较快.一般来说一个小版本是一个月左右,如果大版本升级可能三个月左右的时间.

postgresql学习记录1

数据库9.3.5,系统fedora20,不同系统操作略有不同. 使用yum 命令安装即可:sudo yum install postgresql,postgresql-server 安装完毕后系统中会创建一个postgres的用户,切换到这个用户后进行数据库的初始化: 1 initdb --encoding=UTF-8 --no-locale -D /var/lib/pgsql/data/ 或者使用postgresql-setup initdb 命令. 紧接着启动服务:pg_ctl -D /va

Metasploit 渗透测试魔鬼训练营读书笔记(连续更新一)

1.1 什么是渗透测试 1.1.1 渗透测试的起源与定义 如果大家对军事感兴趣,会知道各国军队每年都会组织一些军事演习来锻炼军队的攻防战术与作战能力.在信息科技的发源地--美国的军事演习中,将美军称为"蓝军",将假想敌称为"红军",而这种军事演习的方式也在20世纪90年代时,由美国军方与国家安全局引入到对信息网络与信息安全基础设施的实际攻防测试过程中.由一群受过职业训练的安全专家作为"红队"(Red Team),对接受测试的防御方"蓝队

关于CDH6的一些介绍

一:cdh6 的介绍 二: cdh6 使用组件的版本与下载 一: cdh6 的介绍 1.1: cdh6 的发布 Cloudera在北京时间5月16日的半夜,在其社区(community.cloudera.com)对外宣布发布Cloudera Enterprise 6,Beta.咱们在5月没有等到CDH5.15,等到C6 beta也是不错的 C6相较于C5是一次各个组件的大版本升级,可以说是翻天覆地的,简单说你以前期待的Hadoop3的一些激动人心的新功能 1.2: cdh 6 版本的新功能 1.

版本管理 GitLab 的安装及管理 (CentOS 7)

一.前言 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目. 它拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释.可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库. 团队成员可以利用内置的简单聊天程序(Wall)进行交流. 它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找. 1.Git的家族成员 Git:是一种版本控制系统