docker升级pg13升级到pg15

本文详细描述了如何使用Docker容器技术,从旧版本PostgreSQL(13.11)升级到15版本,包括创建目录、运行容器、数据迁移和权限设置的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前安装的是13.11,测试将版本升级到15

#建个存放东西的目录先

mkdir -p /pgupdate/{'new_data','old_bin','old_data','old_lib','old_share'}

cd /pgupdate

#run一个15的容器把data目录弄出来

docker run -d --name pg15 -e POSTGRES_PASSWORD=123456 postgres:latest

#将13.11容器中的data,bin这些拉出来

docker cp pg13:/usr/share/postgresql/13/ old_share/

docker cp pg13:/usr/lib/postgresql/13/lib/ old_lib/

docker cp pg13:/var/lib/postgresql/data old_data/

docker cp pg13:/usr/lib/postgresql/13/bin/ old_bin/

docker cp pg15:/var/lib/postgresql/data new_data/

#生成一个临时的15版本容器升级数据

docker run -it --name newtemp  \
-v $(pwd)/old_bin/bin:/usr/lib/postgresql/13/bin \
-v $(pwd)/old_share/13:/usr/share/postgresql/13 \
-v $(pwd)/new_data/data:/data/new_data \
-v $(pwd)/old_data/data:/data/old_data \
-v $(pwd)/old_lib/lib:/usr/lib/postgresql/13/lib 
-e PGDATA:/data/new_data  \
--privileged=true postgres:latest /bin/bash

#设置用户和权限

chmod -R 0700 /data/

chown -Rf postgres:postgres /data

#登录postgres用户,升级数据

su - postgres

/usr/lib/postgresql/15/bin/pg_upgrade -b /usr/lib/postgresql/13/bin/ -B /usr/lib/postgresql/15/bin/ -d /data/old_data/ -D /data/new_data/ -c

/usr/lib/postgresql/15/bin/pg_upgrade -b /usr/lib/postgresql/13/bin/ -B /usr/lib/postgresql/15/bin/ -d /data/old_data/ -D /data/new_data/

#ok至此,数据已经处理完毕,退出容器,新数据在new_data下,开新容器挂载即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fmnsliudi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值