postgresql中利用pg_basebackup做定时备份

定时任务
问题提出:
       生产环境怎么备份,开发测试环境怎么备份,使用全备,归档备,什么时候备,保留多
长时间?
个人看法:
      生产环境每天全备一次,归档打开保存。
开发测试,可以 3~5 天一次全备,归档打开保存。
具体根据生产环境,开发测试环境以及应用沟通的结果去制定相应脚本和策略。
远程备份脚本
[postgres@node2 ~]$ cat pg_basebackup.sh
#! /bin/sh
DEST_NODE_HOST=node1
PRIMARY_NODE_HOST=$(hostname)
PRIMARY_NODE_PORT=5432
REPLUSER=postgres
DEST_DIR=/data/backup/$(date +"%d-%m-%Y")
echo "创建每日备份目录并赋予权限"
ssh -tt ${DEST_NODE_HOST}
"rm -rf ${DEST_DIR} && mkdir -p ${DEST_DIR} && chown
postgres:postgres ${DEST_DIR}"
echo "开始远程 pg_basebackup 备份"
ssh -tt ${DEST_NODE_HOST} "${PGHOME}/bin/pg_basebackup -h ${PRIMARY_NODE_HOST}
-p ${PRIMARY_NODE_PORT} -U ${REPLUSER} -D ${DEST_DIR} -Fp -Xs -cfast -P -v"
echo "$(date +"%d-%m-%Y")的备份已完成"
查看定时任务,生产环境每天凌晨备份。
 
[root@node2 ~]# crontab -l
0 0 * * * su - postgres -c 'sh /home/postgres/pg_basebackup.sh node1' >>/tmp/crontab.log

每天凌晨 2 点删除 5 天之前的归档和基础备份文件。

[postgres@node1 ~]$ crontab -l
0 2 * * * sudo find /data/archive/wal/* -mtime +5 -name "*" -exec rm -Rf {} \;
0 2 * * * sudo find /data/backup/* -mtime +5 -name "*" -exec rm -Rf {} \;

查看定时任务完成情况
[txadmin@node2 txdb4.0]$ cat /tmp/crontab.log
创建每日备份目录并赋予权限
远程 pg_basebackup 备份 pg_basebackup: 开始基础备份,等待检查点完成
pg_basebackup: 已完成检查点
pg_basebackup: 预写日志起始于时间点 : 0/37000028, 基于时间轴 55
pg_basebackup: 启动后台 WAL 接收进程
pg_basebackup: 已创建临时复制槽 "pg_basebackup_85801"
34074/34074 kB (100%), 1/1 表空间
pg_basebackup: 预写日志结束点 : 0/37000100
pg_basebackup: 等待后台进程结束流操作 ...
pg_basebackup: 同步数据到磁盘 ...
pg_basebackup: 基础备份已完成
27-12-2021 的备份已完成
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值