容器化postgres备份策略

1. 策略和背景

1.1 背景

  • 使用docker-compose管理的postgres数据库需要备份
  • 工作目录在 /data/postgres

1.2 备份策略

  • 要备份的库

shu_han 库

  • 每日备份

每天23:00备份一次

  • 每小时临时备份

每个小时临时备份一次,每天凌晨删除一天之前的备份

2. docker-compose的修改

2.1 挂载备份目录

  • 进入工作目录(背景中有说明,是/data/postgres,后文不赘述)
  • 创建dump目录存储每天备份文件
  • dump目录下创建tmp目录,备份每小时临时备份文件
  • 挂载备份目录
    docker-compose.yml文件中添加如下内容
    volumes:
      - ./dump:/dump  #添加这一行

2.2 备份脚本

  • 创建备份脚本

在工作目录中添加备份脚本文件dump.sh,内容如下

#!/bin/bash
#####定义变量#######
dateTag=`date +%Y%m%d%H%M`
dumpDir=$1
dbUser="root"
ipAddr="10.251.132.85"
dbPort=5432
dbPasswd="liubei@161"
#dbName="clf_all_data"

####### 定义要备份库库 #################
#要备份的库名一行一个
backDbList=(
xi_shu
)

#######开始备份##########
cd ${dumpDir}
### 备份各库##

for dbName in ${backDbList[@]};
do
  PGPASSWORD=${dbPasswd} pg_dump -h ${ipAddr} -p ${dbPort} -U ${dbUser} -d ${dbName} -f ${dbName}.sql
  tar -czf ${dbName}-${dateTag}.tar.gz ${dbName}.sql
  rm -rf ${dbName}.sql
done

  • 挂载备份脚本

在docker-compose.yml文件添加如下内容

    volumes:
      - ./dump.sh:/dump.sh  #添加这一行

3.3 重启容器

3. 定时任务

策略:
1)每日备份到 /data/pg_dump的文件保留15天
2)每小时备份到 /data/dump/tmp的文件保留1天

###########################
#     posgre 备份相关     #
###########################
#每小时临时备份
30 * * * * /usr/bin/docker  exec pgdump11 bash -c "./dump.sh /dump/tmp"
#每日备份
00 23 * * *  /usr/bin/docker  exec  pgdump11 bash -c  "./dump.sh /dump"
#每小时备份文件保留1天
00 01 * * * /bin/find /data/postgres/dump/tmp   -name \*.tar.gz -mtime +1| xargs -I {} rm -rf {}
#保留15天备份
05 01 * * * /bin/find /data/postgres/dump   -name \*.tar.gz -mtime +15| xargs -I {} rm -rf {}

在这里插入图片描述

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄德公笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值