PostgreSQL:WAL日志归档策略

您所在的位置:网站首页 数据库开启归档模式命令 PostgreSQL:WAL日志归档策略

PostgreSQL:WAL日志归档策略

2024-06-21 13:06| 来源: 网络整理| 查看: 265

文章目录 概述参数配置归档策略脚本

概述

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

参数配置

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

wal_level = replica 该参数的可选的值有minimal,replica和logical,wal的级别依次增高,在wal的信息也越多。由于minimal这一级别的wal不包含从基础的备份和wal日志重建数据的足够信息,在该模式下,无法开启wal日志归档

archive_mode = on 上述参数为on,表示打开归档备份,可选的参数为on,off,always 默认值为off,所以要手动打开

archive_command = ‘cp %p /pgdata/10/archive_wals%f’ 该参数的默认值是一个空字符串,他的值可以是一条shell命令或者一个复杂的shell脚本。在shell脚本或命令中可以用 “%p” 表示将要归档的wal文件包含完整路径的信息的文件名,用“%f” 代表不包含路径信息的wal文件的文件名

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

归档策略脚本

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

archive_command参数的配置为:

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

脚本内容为

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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3