一、Postgresql 备份策略

  • 备份时间:每天 05:10(根据备份量级可灵活调整)
  • 备份模式:全量备份
  • 备份保存天数:7 天
  • 备份地址:/home/postgres/postgresql_backup/backup

二、策略部署

2.1 部署树形图

$ tree /home/postgres/postgresql_backup
/home/postgres/postgresql_backup
├── backup
│   └── 2022_09_30_15_10_01_shr.dump
├── bin
│   ├── pg_archivecleanup.sh            # 清理 wal 脚本
│   └── postgresql_backup.sh            # 备份脚本
└── log├── archivecleanup.log├── pg_archivecleanup.log├── pg_dumpall.log└── postgresql_backup.log

2.2 备份脚本

#!/bin/bash# 备份日期
backup_date=`date +%F`
backup_time=`date +%H-%M-%S`
backup_week_day=`date +%u`echo "# ${backup_date} ${backup_time},week ${backup_week_day}" >> /home/postgres/postgresql_backup/log/pg_dumpall.log
# 进入备份文件保存路径
cd /home/postgres/postgresql_backup/backup
# 只保留时间早的7个,其余删除
ls -lt|grep .dump|awk '{if(NR>7){print $9}}'|xargs rm -rf
# 备份数据库名
dbname=$(date +%Y_%m_%d_%H_%M_%S_shr.dump)
echo "只保留时间早的 7 天备份,其余删除,当天备份数据库名: ${dbname}" >> /home/postgres/postgresql_backup/log/pg_dumpall.log
# 开始备份
/home/postgres/postgresql/bin/pg_dumpall --host=127.0.0.1 --port=3306 --username=postgres -c -f /home/postgres/postgresql_backup/backup/${dbname}
backup_0k=$?
if [ 0 -eq "${backup_0k}" ]; thenecho "${backup_date} ${backup_time} pg_dumpall is OK!" >> /home/postgres/postgresql_backup/log/pg_dumpall.log
elseecho "${backup_date} ${backup_time} pg_dumpall is NO!" >> /home/postgres/postgresql_backup/log/pg_dumpall.log
fi
# 恢复方式很简单,执行恢复命令即可:
# /home/postgres/postgresql/bin/psql --host=127.0.0.1 --port=3306 --username=postgres -f /home/postgres/postgresql_backup/backup/${dbname}
# 单表备份举例:/home/postgres/postgresql/bin/pg_dump --host=127.0.0.1 --port=3306 --username=postgres --dbname=hr0908 --table=ct_cp_cmpcalcachetable -c -f /home/postgres/showufei/ct_cp_cmpcalcachetable.sql
# 单表恢复举例:/home/postgres/postgresql/bin/psql --host=127.0.0.1 --port=3306 --username=postgres --dbname=hr0908 -f /home/postgres/showufei/ct_cp_cmpcalcachetable.sql

2.3 清理 wal 脚本

#!/bin/bash# 日期
backup_date=`date +%F`
backup_time=`date +%H-%M-%S`
backup_week_day=`date +%u`pgdata='/home/postgres/data/postgres_3306/'
ARCHIVELOCATION='/home/postgres/data/postgres_3306/'
OLDESTKEPTWALFILE=`/home/postgres/postgresql/bin/pg_controldata --pgdata=${pgdata} | grep "REDO WAL file" | awk -F ':    ' '{print $2}'`
echo "# ${backup_date} ${backup_time},周 ${backup_week_day}: 保留 ${OLDESTKEPTWALFILE} 之后的日志" >> /home/postgres/postgresql_backup/log/archivecleanup.log/home/postgres/postgresql/bin/pg_archivecleanup ${ARCHIVELOCATION} ${OLDESTKEPTWALFILE}
cleanup_0k=$?
if [ 0 -eq "${cleanup_0k}" ]; thenecho "${backup_date} ${backup_time}: 手动清理 wal 成功!" >> /home/postgres/postgresql_backup/log/archivecleanup.log
elseecho "${backup_date} ${backup_time}: 手动清理 wal 失败!" >> /home/postgres/postgresql_backup/log/archivecleanup.log
fi

三、计划任务

# postgres_3306 备份定时任务
10 5 * * * /bin/bash /home/postgres/postgresql_backup/bin/postgresql_backup.sh > /home/postgres/postgresql_backup/log/postgresql_backup.log 2>&1
# 手动清理 wal
55 4 * * * /bin/bash /home/postgres/postgresql_backup/bin/pg_archivecleanup.sh > /home/postgres/postgresql_backup/log/pg_archivecleanup.log 2>&1

PG 备份策略及 WAL 日志清理策略相关推荐

  1. kafka日志清理策略,compact和delete

    文章目录 1. kafka日志清理策略概述 2. kafka segment 2.1 segmnet 的作用 2.2 segment生成相关的配置 3. 日志清理delete策略 3.1 delete ...

  2. PostgreSQL:WAL日志归档策略

    文章目录 概述 参数配置 归档策略脚本 概述 今天分享一个PostgreSQL数据库配置wal日志归档的策略.所谓wal日志归档,就是把在线的wal日志备份出来.说起来简单,但是在正式的系统上需要一个 ...

  3. 清理offset_关于 kafka 日志清理策略的问题

    现象: 搭建了一个 kafka 服务, 使用 kafka-python 包正常生产数据, 但是 kafka 过五分钟就把我的 topic 删除掉. 但是配置 log 的已经配置了, 我认为 kafka ...

  4. PG数据库wal日志空间异常

    文章目录 问题描述 处理思路 处理过程 问题描述 PG数据库实例磁盘空间使用率高达97%,其中wal空间使用量占用32G,相对比较异常. 处理思路 wal日志是PG数据库的事务预写日志,对于数据库的一 ...

  5. Kafka日志清理之Log Deletion

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  6. PG数据库内核分析学习笔记_XLOG日志恢复策略

    PG数据库内核分析学习笔记_XLOG日志恢复策略 在PostgreSQL中,系统在崩溃后重新启动时会调用StartupXlog入口函数. // xlog.c /** This must be call ...

  7. kafka历史数据清理策略以及配置

    1.关于Kafka的日志 日志的英语是"log",但Kafka的数据文件也被称为log,所以很多时候会造成一定的歧义.在Kafka中,日志分为两种: 数据日志 操作日志 数据日志是 ...

  8. 技术分享|优炫数据库基于WAL日志备份及恢复

    背景 在数据库系统中,保证数据库可以由错误状态恢复到正确状态的机制,称为备份与恢复.数据库的备份是一个长期的过程,恢复可看作是备份的一个逆过程,恢复的效果.好坏,很大程度上是依赖于备份的策略.此外,数 ...

  9. logrotate日志轮转策略

    2019独角兽企业重金招聘Python工程师标准>>> 实战:logrotate 日志轮转及配置 1,编写系统日志的配置文件 /etc/rsyslog.conf 2,写入配置 [ro ...

最新文章

  1. Go 语言简介(上)— 语法
  2. ubuntu运行navicat没有反应的解决方法
  3. Android—设计模式原则及常见的设计模式
  4. 盲人编程_盲人如何编码
  5. 腾讯开源最大规模多标签图像数据集,刷新行业数据集基准
  6. perl 中部分正则表达式中匹配非空字符和正常使用字符
  7. 达摩院 2020 预测:量子霸权指日可待!
  8. flutter offset_用Flutter实现58App的首页
  9. 小前端眼里的大前端:GMTC 2018 参会小结
  10. 飞磨科技php,昆虫飞行信息系统(飞行磨)
  11. DPDK收发包全景分析
  12. c语言判断素数(c语言判断素数)
  13. Axure RP 8.0激活码 Mac Windows
  14. 电子政务建设模式的演进
  15. java普通工程打war包_Java项目打war包的方法
  16. sim800a指令_SIM900A 各功能指令 详细版
  17. java垃圾回收的具体时间_JVM垃圾回收机制是怎样的,何时触发YoungGC或FullGC操作?...
  18. 【数据可视化应用】绘制峰峦图(附R语言代码)
  19. smart原则_高效能宝宝养成记之七 SMART原则:梦想与空想只隔一个目标的距离
  20. vue.config.js 防止报错偷窥源码

热门文章

  1. SWIFT PLM 功能介绍-项目管理的特色
  2. 最小二乘法原理及Matlab代码实现
  3. 2022最新Android studio中文输入法以及红色报错解决方案
  4. a标签在线客服咨询、邮箱反馈、页面使用logo等功能
  5. +CWJAP:1 FAIL 配置不了wifi
  6. C++基础知识(二) 字符串
  7. 服务器安装虚拟交换机,为 Hyper-V 虚拟机创建虚拟交换机
  8. 关联规则中的支持度、置信度以及提升度
  9. 关于苹果实习生的工资,你怎么看?
  10. win10加装机械硬盘卡_电脑硬盘该不该分区?如果分该怎么分?点进来让小黑教你!...