欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

postgresql数据库备份还原

程序员文章站 2024-03-21 09:56:04
...

背景:
公司 原先将postgresql跑在docker容器内,
并且使用了dockerswarm拉力编排,portainer的可视化来管理
变更需求:
将postgresql 迁离swarm集群,单独使用docker run命令来运行

备份:

pg_dump -U 用户名 -h 数据库IP -d 需要备份的库名 -f 将备份文件输出到路径 

常用的选项包括:
-U 用户名
-h 数据库IP
-p 数据库端口
-W(稍后交互式输入密码)
-d 需要备份的库名
-f 将备份文件输出到路径


本次使用的命令

docker exec -it postgresql bash -c "pg_dumpall -U postgres  -h 0.0.0.0 -f /pg-bakup.sql"
#在容器内执行,备份所有库,并且不需要密码,将备份文件输出到根目录

docker cp postgresql:/pg-bakup.sql .
#将容器内备份文件 拷贝到宿主机的当前目录

docker run 起新容器

docker run -itd \
--restart=unless-stopped \
--name postgresql \
-v /data/nfs/postgresql/data:/var/lib/postgresql/data \
-e [email protected] \
-p 5433:5432  \
postgresql:12.5

导入数据

psql -h 0.0.0.0 -U postgres -f [dump.sql/*.dmp]
psql -h 数据库IP -U 用户名 -f 备份文件

相关标签: postgresql