码迷,mamicode.com
首页 > 数据库 > 详细

postgresql大版本升级

时间:2019-03-01 15:45:28      阅读:817      评论:0      收藏:0      [点我收藏+]

标签:根据   环境变量   class   postgresq   only   domain   res   usr   info   

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.升级完成后重新安装插件

 

postgresql大版本升级

标签:根据   环境变量   class   postgresq   only   domain   res   usr   info   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!