1、版本概况
2、确认当前PostgreSQL版本
2.1、登录docker,查看PostgreSQL的dockerID docker ps -a
docker@Server:/# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a582d8fa5d99 postgres:9.6 "docker-entrypoint.s…" 2 days ago Up 2 days 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp postgres-9.6
68056b843c64 tznb/kodbox:1.15 "./run.sh" 13 months ago Up 13 months 0.0.0.0:8180->80/tcp, :::8180->80/tcp Kodbox
52f6f5b9f083 tencentci/discuz "docker-php-entrypoi…" 13 months ago Up 13 months 0.0.0.0:32771->80/tcp, :::32771->80/tcp, 0.0.0.0:32770->443/tcp, :::32770->443/tcp Discuz
7522b12afd04 mongo "docker-entrypoint.s…" 13 months ago Up 13 months 0.0.0.0:27017->27017/tcp, :::27017->27017/tcp mongo
8e9fbd5b9c88 mysql "docker-entrypoint.s…" 13 months ago Up 11 months 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysqlServer
176440f4d000 wangbinxingkong/fast "/fast/dockercurl" 13 months ago Up About a minute 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp FASTOS
2.2、进入PostgreSQL docker exec -it a582d8fa5d99 bash
docker@Server:/# docker exec it a582d8fa5d99 bash
docker@a582d8fa5d99:/#
2.3、登录PostgreSQL
docker@server:~# docker exec -it a582d8fa5d99 bash
docker@a582d8fa5d99:/# psql -Upostgres
psql (9.6.24)
Type "help" for help.
postgres=#
postgres=# select version();
version
-----------------------------------------------------------------------------------------------------------------------------------
---
PostgreSQL 9.6.24 on x86_64-pc-linux-gnu (Debian 9.6.24-1.pgdg90+1), compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-b
it
(1 row)
postgres=#
3、备份postgres-9.6版本的数据
docker@server:~# docker exec -t postgres-9.6 pg_dumpall -c -U postgres > backup.sql
docker@server:~# ls
docker@server:~# backup.sql
docker@server:~#
4、检查升级文件:在线更新PostgreSQL至16.2版本
docker@server:~# docker pull postgres:16.2
16.2: Pulling from library/postgres
b0a0cf830b12: Pull complete
dda3d8fbd5ed: Pull complete
283a477db7bb: Pull complete
91d2729fa4d5: Pull complete
9739ced65621: Pull complete
ae3bb1b347a4: Pull complete
f8406d9c00ea: Pull complete
c199bff16b05: Pull complete
e0d55fdb4d15: Pull complete
c1cb13b19080: Pull complete
873532e5f8c7: Pull complete
050d9f8c3b1c: Pull complete
710e142705f8: Pull complete
cb628c265f09: Pull complete
Digest: sha256:4aea012537edfad80f98d870a36e6b90b4c09b27be7f4b4759d72db863baeebb
Status: Downloaded newer image for postgres:16.2
docker.io/library/postgres:16.2
5、还原备份文件: 停止旧服务postgres-9.6,并删除容器postgres-9.6
docker@server:~# docker stop postgres-9.6
docker@server:~# docker rm postgres-9.6
docker@server:~# ls
docker@server:~#
6、PostgreSQL升级:指定服务名称为:postgres-16.2,数据目录为:/data/postgres ;端口为:5432
docker@server:~# docker run --name postgres-16.2 -v /data/postgres:/var/lib/postgresql/data -e POSTGRES_PASSWORD=postgres:5432 -d postgres:16.2
36468032051c70c990339c17d0797g8h9shhfhjg09jghj35a0deaa5
7、初始化PostgreSQL数据库
docker@server:~# docker exec -t postgres-16.2 psql -U postgres -c "CREATE EXTENSION hstore;"
docker@server:~# CREATE EXTENSION
8、还原数据库
docker@server:~# docker exec -t postgres-16.2 psql -U postgres -f backup.sql
docker@server:~#
9、再次查看PostgreSQL版本
方法1:登录pgsql查看PostgreSQL版本 说明:安装postgres服务时,名称设置为postgres-16.2,则可以用该服务名称登录PostgreSQL
docker@shenyang:/# docker exec -it postgres-16.2 bash
docker@364b8d32a51c:/# psql -Upostgres
psql (16.2 (Debian 16.2-1.pgdg120+2))
Type "help" for help.
postgres=#
postgres=# select version();
version
---------------------------------------------------------------------------------------------------------------------
PostgreSQL 16.2 (Debian 16.2-1.pgdg120+2) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
(1 row)
postgres=#
方法2:使用pg_ctl工具查看PostgreSQL版本
docker@364b8d32a51c:/# pg_ctl -V
pg_ctl (PostgreSQL) 16.2 (Debian 16.2-1.pgdg120+2)
docker@364b8d32a51c:/#
10、是不是感觉很简单呀?接下来就可以正常使用PostgreSQL16.2版本的数据库了。
关注小哥不迷路!!!
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




