zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    环境配置文件 ① /etc/profile、② ~/.bash_profile、③ ~/.bashrc、④ /etc/bashrc
    RHEL 7.0已发布CentOS 7即将到来
    《上海交通大学饮水思源paper(论文)板实用手册(第二版)》出炉
    SCI论文投稿Cover Letter的写作
    grub.cfg —— Window、Fedora、CentOS
    SCI新手成长策略
    计算机类SCI前三区期刊
    SCI期刊——导航
    SCI收录的外文期刊(计算机类)
    《嵌入式开发》——三次作业
  • 原文地址:https://www.cnblogs.com/codecc/p/5234073.html
Copyright © 2011-2022 走看看