centos Postgresql11升级Postgresql14
1.下载pgsql14的源码包进行安装
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql14 –y
yum install postgresql14-server -y
附带安装
yum install postgresql14-libs
yum install postgresql14-contrib
yum install postgresql14-devel
2.创建数据目录
mkdir -p /data/pgsql14/
移动目录
mv /var/lib/pgsql/14/* /data/pgsql14/
chown -R postgres:postgres /data/pgsql14/
chmod 700 /data/pgsql14/data -R
3.初始化数据库
使用postgres用户执行:su - postgres
/usr/pgsql-14/bin/initdb -D /data/pgsql14/data
ctrl+D键退出postgres用户
关闭新版本:
systemctl stop postgresql-14
关闭旧版本:
systemctl stop postgresql-11
先检查一遍新旧数据库是否存在不兼容情况,若兼容则会全部显示ok如下图,如果有异常,会报错,执行脚本:
--old-datadir /data/pgsql/data 老数据库存放目录
--new-datadir /data/pgsql14/data/ 新数据库存放目录
/usr/pgsql-14/bin/pg_upgrade --old-datadir /data/pgsql/data --new-datadir /data/pgsql14/data/ --old-bindir /usr/pgsql-11/bin/ --new-bindir /usr/pgsql-14/bin/ --check
全部ok可执行升级:
/usr/pgsql-14/bin/pg_upgrade --old-datadir /data/pgsql/data --new-datadir /data/pgsql14/data/ --old-bindir /usr/pgsql-11/bin/ --new-bindir /usr/pgsql-14/bin/
vim /usr/lib/systemd/system/postgresql-14.service
进行修改:
Environment=PGDATA=/data/pgsql14/data/(改为自己data目录地址)
修改后保存文件,并重新加载:systemctl daemon-reload
vi /data/pgsql14/data/pg_hba.conf
# IPv4 local connections:
#host all all 127.0.0.1/32 ident
host all all 0.0.0.0/0 md5
vi /data/pgsql/data/postgresql.conf
修改
listen_addresses listen_addresses = '*'
有需求修改port
#port = 5432
启动新版本
- 先按ctrl+D键退出postgres用户
- 启动pg14
systemctl start postgresql-14
设置开机启动
systemctl enable postgresql-14
关闭11开机启动
systemctl disable postgresql-11