问题
今天上服务器突然发现,pg数据库docker不见了,内心慌得一批因为有个数据库在docker中,虽然不常用但是也有很重要的数据在。看过之后docker确实不在了,幸好数据库映射到主机中存储也是万幸。下面说下我恢复的过程:
- 首先docker中push一个9.6版(要和原数据库版本一致)postgresql数据库。
#下载容器
docker pull postgres:9.6
#创建镜像
docker run -it --rm -v pgdata:/var/lib/postgresql/data -p 5432:5432 postgres:9.6 /bin/bash
- 开启数据库
#开启数据库
pg_createcluster 9.6 main --start
- 测试安装成功后关闭数据库。
cd /etc/postgresql/9.6/main/
nano postgresql.conf
#修改如下地方
data_directory = 自己数据的目录(一般为main/base结构)
启动数据库的时候一般会有如下问题:
Error: The cluster is[FAILd by group id XXX which does not exist … failed! failed!
这个问题虽然不是很大,但是很致命,因为感觉大家都在抄来抄去并没有解决这个问题的办法,经过一番google之后得到解决,其实就是数据文件的权限问题:
chown -R postgres:postgres /var/lib/postgresql
chown -R postgres:postgres /etc/postgresql
chown -R postgres:postgres /var/log/postgresql
chown -R postgres:postgres /var/run/postgresql
chmod 700 -R 需要的数据地址
最后推荐大家还是多google,效率真的会高很多。。。。。