postgresql数据库升级

1.查看旧版本编译时参数

/*进入旧库,用以下sql查看编译参数*/
select
    name,
    setting,
    unit
from
    pg_catalog.pg_settings
where
    context = 'internal'

主要注意block_size,lc_collate,lc_ctype,segment_size,wal_block_size,wal_segment_size几个参数

2.上传新版本数据库源码并安装

# tar vxf postgresql-12beta1.tar.gz
# cd postgresql-12beta1
# ./configure --prefix=/usr/local/pgsql-12.0
# make -j 2
# make instal
# export PATH=$PATH:/usr/local/pgsql-12.0/bin/
# cd contrib/
# make all
# make install
# su - postgres
# cd /usr/local/pgsql-12.0/bin/
# ./initdb -D /pgdata/data_new

3.修改新旧pg_hba.conf文件,确保本地postgres用户可以无密码登录新旧数据库

# su - postgres
$ cd /pgdata/data
$ vi pg_hba.conf
#如下表明在本地所有用户可以无密码登录所有数据库,默认不用修改
---------------------------------------------------------------------------
# "local" is for Unix domain socket connections only
local   all             all                                     trust
--------------------------------------------------------------------------
# cd /pgdata/data_ne

4.关闭旧数据库

# su - postgres
$ pg_ctl stop

5.升级

# su - postgres
$ cd /tmp
$ mkdir upgrade_log
# -c选项的意思是只检查不升级
$ /usr/local/pgsql-12.0/bin/pg_upgrade -c -b /usr/local/pgsql-10.0/bin -B /usr/local/pgsql-12.0/bin -d /pgdata/data -D /pgdata/data_new
# 加入--link,使用硬链接,会增加速度,

猜你喜欢

转载自www.cnblogs.com/monkey6/p/11087786.html