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 备份文件
上一篇: Activiti创建数据库表
下一篇: Linux防火墙-单机防火墙