首页
解决方案
技术服务
专业数据库维保服务 大数据维保服务
一体机
Oracle数据库一体机 PolarDB数据库一体机 瀚高数据库一体机 崖山数据库一体机 海扬数据库一体机 高斯数据库一体机 金仓数据库一体机
产品
CLup乘数云统一平台 CData高性能数据库云一体机 CPDA高性能双子星数据库机 CBackup数据库备份恢复云平台 CMiner: PostgreSQL中的CDC CSYun超融合虚拟机产品 ZQPool数据库连接池 ConshGuard数据保护产品 APCC: Greenplum管理平台
文档
文章
客户及伙伴
中启开源
关于我们
登录
×
修改密码

概述

今天分享一个PostgreSQL数据库配置wal日志归档的策略。所谓wal日志归档,就是把在线的wal日志备份出来。说起来简单,但是在正式的系统上需要一个完备的归档策略,以备系统所需稳定

参数配置

在开启wal日志归档,首先需要设置几个参数

注意:wal_level和archive_mode参数修改都需要重新启动数据库才可以生效。而修改archive_command则不需要。所以一般配置新系统时,无论当时是否需要归档,这要建议将这两个参数开启

归档策略脚本

这次分享的策略是使用一个shell脚本来管理归档:
在postgres家目录下,分别创建bin,log目录。bin目录存放此脚本,log则记录执行日志
归档策略是 在/data下的 archivedir中,按日期为名归档日志,保留20天。20天前的自动删除

archive_command参数的配置为:

  1. archive_command ='/bin/bash /home/postgres/bin/pg_archive.sh %p %f'

脚本内容为

  1. #!/bin/bash
  2. source /home/postgres/.bash_profile
  3. DATE=`date +%Y%m%d`
  4. DIR="/data/archivedir/$DATE"
  5. BACK="/data/archivedir/"`date -d '-20 day' +%Y%m%d`
  6. if [ -d "$BACK" ]; then
  7. rm -rf $BACK
  8. echo "success rm $BACK" > /home/postgres/logs/pg_archive_logs
  9. else
  10. echo "the old backup file not exists!" > /home/postgres/logs/pg_archive_logs
  11. fi
  12. (test -d $DIR || mkdir -p $DIR) && cp $1 $DIR/$2