一、docker安装postgresql
1. 拉取postgres
docker pull postgres
2. 创建容器
注:默认登录账户postgres, 密码123456, 对外暴露端口5432, 卷映射:可在物理机修改数据库配置文件
引用文章查看👀
docker run --name postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 -v /mydata/postgres/pgdata:/var/lib/postgresql/data -d postgres
二、安装 postgresql-client(容器内部安装)
注:安装后可使用 pg_dump 与 pg_restore 命令
注:pg_dump版本要与postgresql数据库版本对应
注:可使用
select version()
查看数据库版本
# 在容器内部安装 pg_dump 和其他需要的 PostgreSQL 工具
apt-get update
apt-get install postgresql-client
三、备份
注:备份
pg_dump -h <数据库ip> -p <连接端口号> -U <登录用户> -Fc -f "/usr/local/<sql文件名>.sql" --encoding=UTF8 --inserts <数据库名称>
四、还原
1. 准备工作
- 使用pgadmin创建新库和用户。且与老库的库名称与用户名相同
注:创建时可参照老库配置,通过属性查看
2. 导入
- 准备工作完成后执行导入
注:-U <还原时使用的用户名称>。可使用的用户, 不用与老库中导出时所用的用户相同
注:-d <要还原的库名称>。
pg_restore -U <还原时使用的用户名称> -d <要还原的库名称> "/usr/local/<备份的数据库文件名称>.sql"
- 异常情况
注:这种情况是新库用户与老库用户不同导致的error错误。创建相同用户这种错误可以避免
总结
1. 简洁重整备份还原流程
网上文章大多大概一说,细节不够明显。这里通过总结将具体步骤进行了列出。为在后期使用提供方便。
2. 分析报错, 解决报错原因
对导入报错的原因进行解析,并测试。测试过程通过对新库重新创建后,再执行还原脚本测试问题原因,解决问题。