注册网站的步骤,智慧农业项目方案,湖南seo公司,上海做网站较好的公司问题
现在需要从Docker容器中备份整个PostgreSQL后#xff0c;然后#xff0c;使用备份文件在另外一个pg的docker容器中恢复过来。
步骤
备份旧容器中的PG
# 登录到旧的PG容器中
docker exec -it postgres bash
# 备份数据库
pg_dumpall -c -U postgres dump_date %…问题
现在需要从Docker容器中备份整个PostgreSQL后然后使用备份文件在另外一个pg的docker容器中恢复过来。
步骤
备份旧容器中的PG
# 登录到旧的PG容器中
docker exec -it postgres bash
# 备份数据库
pg_dumpall -c -U postgres dump_date %Y-%m-%d_%H_%M_%S.sql
# 退出容器
exit
# 退出容器后复制出备份文件到主机中
docker cp postgres:/dump_2024-10-26_05_58_04.sql dump_2024-10-26_05_58_04.sql这里主要是用pg_dumpall备份整个pg实例具体命令解释如下
-c备份的sql文件中包含DROP语句-U: 数据库用户名。
创建新的PG容器
准备好备份文件之后然后停止老的PG容器创建新的PG容器。
# 停止老的PG容器
docker stop postgres
# 创建新的PG容器
docker run --name postgres2 -e POSTGRES_PASSWORD密码 -p 5432:5432 -d postgres -c max_connections800恢复数据
# 复制备份数据文件到新PG容器中
docker cp dump_2024-10-26_05_58_04.sql postgres2:/
# 登录到新PG容器中
docker exec -it postgres2 bash
# 恢复备份数据库
psql -f dump_2024-10-26_05_58_04.sql -U postgres postgres收尾
新pg容器没问题后可以删除旧pg容器然后更名新pg容器即可。
# 删除旧pg容器
docker rm postgres
# 改名老pg容器
docker rename postgres2 postgres总结
到此docker迁移pg还是挺容易的。这里少了一个pg容器应当映射到持久化磁盘中这点不要学我以后有机会再说吧。
参考
PostgreSQL 9.4.4 中文手册pg_dumpallHow to persist and backup data of a PostgreSQL Docker container