PostgreSQL版本快速升级

PostgreSQL版本快速升级

写在前面

  PostgreSQL9.5版本支持数据分片的功能,为以后做分布式考虑,准备将生产环境的9.1版本升级至9.5。中间需要做数据迁移。

  在迁移操作中,为保证数据完整性,一般需要在数据库停止的情况下进行备份恢复操作,在数据量小的情况下,通过pg_dumpall的方式备份恢复也是很迅速的,但如果数据量大的情况,再使用这种方式将会耗去大量的时间,特别在生产环境中,长时间的停止使用数据库是非常致命的。

  PostgreSQL提供了pg_upgrade的命令用于数据库版本的升级,使用link模式可以快速对数据进行迁移操作。

操作步骤:

  1、安装新版本数据库

    /PATH/TO/postgresql-9.5.1-1-linux-x64.run,根据提示进行数据库安装操作。

  2、停止旧版本的数据库

    /etc/init.d/postgresql-9.1 stop ,根据实际情况停止数据库运行

  3、检查旧数据的区域支持格式

    区域支持在初始化数据库时被指定,不可更改,因此需要将新的数据库的区域支持更改成与旧数据库一样,否则pg_upgrade操作会报错。

    a、查看旧数据库的区域支持,主要是lc-collate,lc-ctype两个参数,进入数据库,使用\l,可以查看

    b、使用initdb指定区域支持初始化新的数据库。

   /PATH/TO/9.5/bin/initdb --lc-collate=zh_CN.utf8 --lc-ctype=zh_CN.utf8 --lc-messages=zh_CN.utf8 --lc-monetary=zh_CN.utf8 --lc-numeric=zh_CN.utf8 --lc-time=zh_CN.utf8 -D /PATH/newdata/

  4、通过link mode 进行快速的数据库升级,要使用link模式需确保新旧数据目录在同一个文件系统底下

    先介绍下pg_upgrade的几个常用参数:使用pg_upgrade --help可以查看详细参数配置

    -d, --old-datadir=DATADIR      指定旧数据文件所在目录

    -D, --new-datadir=DATADIR    指定新数据文件所在目录

    -b, --old-bindir=BINDIR           指定旧版本可执行命令目录

    -B, --new-bindir=BINDIR         指定新版本可执行命令目录

    -k, --link                                使用link模式进行更新(即使用硬链接的方式将新数据文件指向旧数据文件的真实存放位置,减去了copy的时间)

    /PATH/TO/9.5/bin/pg_upgrade -d /PATH/TO/olddata -D /PATH/TO/newdata -b /PATH/TO/9.1/bin -B /PATH/TO/9.5/bin --link

    若没报错,则完成。

  5、启动新数据库

    

参考:

http://www.postgresql.org/docs/9.5/static/pgupgrade.html

时间: 2024-10-29 03:51:50

PostgreSQL版本快速升级的相关文章

Nginx 版本快速升级切换

前言:本文章适合有Linux基础者阅读,需掌握源码方式安装nginx(文中作者直接省略了nginx的源码安装过程) 1.当前系统环境 系统 主机名 IP地址 Centos 7.4 xmh 10.0.0.200 2.nginx版本当前版本:nginx-1.12.2新版本:nginx-1.14.2本文章使用源码包方式安装nginx nginx存放:/application nginx命名:以nginx版本命名 需求:需要将正在运行的nginx-1.12.2版本快速切换到nginx-1.14.2 3.

SequoiaDB版本在线升级介绍说明

1.前言 在SequoiaDB数据库发展过程中,基本保持每半年对外发行一个正式的Release版本.并且每个新发布的Release版本相对老版本而言,性能方面都有很大的提高,并且数据库也会在新版本中加入很多新的功能,希望能够提高数据库开发的易用性. 在SequoiaDB发展过程中,越来越多的开发者了解到它,并且对它发生兴趣.现在已经有越来越多的用户在学习.研究SequoiaDB,并且也有越来越多的企业用户在对SequoiaDB经过充分测试后,决定将SequoiaDB部署在企业的生产环境中,利用S

nginx1.8.0版本平滑升级新版本1.9.7

首先查看现在环境nginx的版本为1.8.0 编译的参数只指定了安装路径: [[email protected] sbin]# ./nginx -V nginx version: nginx/1.8.0 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) configure arguments: --prefix=/usr/local/nginx 平滑升级步骤如下: 下载nginx1.9.7版本,解压并进入解压后的目录 [[email pro

芯片解密助推智能设备快速升级

原文:芯片解密助推智能设备快速升级 在国人为小米.华为等智能品牌的火爆市场而自豪时,也许很多人都不知道,像市场上的很多智能手机.平板电脑的旗舰机型所采用的芯片大多是高通.英特尔.联发科提供的,其中高通芯片在国内智能设备市场占据了最高的份额.智能设备的升级改进离不开芯片的突破,芯片解密是其中的一把好手,不仅能快速推进国产芯片的技术研发水平,还能实现智能设备的自主升级与维护. 芯片解密打破外国垄断 虽然中国的手机市场已经极速扩张并大有抢占国外市场份额的势头,但对国外芯片的依赖度却也只增不减.国内手机

【大话QT之十二】基于CTK Plugin Framework的插件版本动态升级

应用需求: 某些场景下我们可能面临这样的问题,在运行着的应用程序不能终止的情况下,升级某个功能(或添,或减,或修改).在不采用CTK Plugin Framework插件系统架构的情况下这将是很困难的,我们需要停止运行程序,然后在相关代码中作出修改,然后再重新编译,再重新启动我们的程序.而如果是基于CTK Plugin Framework插件系统架构构建的系统,则很容易的实现插件的动态升级.在[大话Qt之四]ctkPlugin插件系统实现项目插件式开发中,我对ctkPlugin做了简单介绍,在次

史上最全phpwind版本,从phpwind1.0到phpwind8所有版本和升级补丁包

phpwind提供开源论坛与移动社区APP建站系统,基于成熟稳定的领先技术与服务支持,实现社区产品从PC到手机的移动化延伸,数据融合互通,一站式交付,多终端覆盖,从社区互动到移动社交,用户体验自然过渡史上. 本文章最全phpwind版本,从phpwind1.0到phpwind8所有版本和升级补丁包下载 下载地址:http://www.51xyyx.com/3609.html 下载地址:http://www.51xyyx.com/3609.html 原文地址:https://www.cnblogs

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

快速升级PHP5.4、MySql5.5版本WDCP面板一键包

指定一键安装包环境升级PHP5.4版本 wget http://soft.sindns.net/wdcp/php_up54.sh sh php_up54.sh 直接登录SSH,下载和执行脚本自动会升级PHP5.4版本. 我们等呀等,看到这样的界面,就表示升级完毕. 刷新PHPINFO,然后我们可以看到当前的PHP版本已经到5.4.下面就好办了,是不是? 升级MYSQL5.5版本 比较稳定的还是直接升级到5.5版本,为了文章的连贯性,直接在这里也提一下MYSQL的升级. wget http://s

华为S7706升级到S7700-V200R008C00SPC500版本快速配置记录

1.首先下载S7700-V200R008C00SPC500.rar升级包,包括升级文件 和升级指南,TFTP用的升级文件传输工具3CDaemon. 2.解压S7700-V200R008C00SPC500压缩包. 3.配置电脑和S7706互通配置: PC:ip add:10.33.33.2/255.255.255.252 S7706 Config: vlan 33 int vlan 33 ip add 10.33.33.1 255.255.255.252 int gig3/0/30 port li