冷备PG数据库并且直接使用Docker运行的方法

PG数据库冷备以及使用Docker恢复运行的方法


总结: Docker运行命令

docker run -d --name postgres5433 --restart always -e POSTGRES_USER='postgres' -e POSTGRES_PASSWORD=Test20131027 -e ALLOW_IP_RANGE=0.0.0.0/0 -v /postgresindocker/data:/var/lib/postgresql/data -p 5433:5432  postgres:10.9
  • 注意1: -p 可以指定端口,本内容含义为在host暴露5433作为pg数据库的服务
  • 注意2: 冷备份的数据库版本要与postgres的数据库版本一致, 可以在可以上网的机器上面docker pull postgres:14.0 pull相关的镜像.
  • 注意3: 需要指定-v参数. postgresql的数据文件和参数文件一般存在于同一个目录,叫容易处理.

备份的过程:

  • 获取数据文件.
如果是 rpm包或者是 deb包安装并且直接初始化的pg数据库
可以使用: systemctl status postgresql-12 或者是 systemctl status postgresql@12-main(ubuntu) 的命令获取启动脚本
根据配置里面 -D 参数指定的目录, 获取PG数据库指向的目录信息. 
可以关闭服务,如果非常繁忙, 可以在午夜或者是其他可以停机的时间进行处理
注意 不关闭服务 复制出来的文件有概率出现异常, 建议还是停止pg服务比较好.
  • 复制数据文件到指定路径.
与命令中一直, 可以将PG数据库的data目录存放于
 /postgresindocker/
 目录下即可.
如果是 root 用户 容器 可以不关注该目录以及下级目录的属主或者是权限.
如果是其他用户运行容器,建议设置为 postgresql的属主和权限.

说明:

定期进行冷备份可以快速恢复环境, 但是建议保证数据文件的完备.
数据库较小时可以如此进行, 数据库较大时建议采用其他方式并行处理.
原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/15529808.html