搭建PG数据库一些归档的配置

Posted 李石岩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建PG数据库一些归档的配置相关的知识,希望对你有一定的参考价值。

说明

搭建PG数据库的时候,归档一般一份放在pg_wal目录,另外一份作为备份放在备份空间。
因为容灾的时候,灾备传输一般时应用pg_wal的目录,pg_wal目录受到设置的影响,有可能导致归档无法及时的应用,导致断掉。
这时候在备份的归档(我一般保留10天)就起到了作用。

搭建PG集群时,配置归档备份目录
首先我们脚本都放在/zdata/dbbak/scripts目录
cd /zdata/dbbak/scripts
vim archive.sh

#!/bin/bash

source /var/lib/pgsql/.bash_profile

DATE=`date +%Y%m%d`
DIR="/zdata/dbbak/archivedir/$DATE"
BACK="/zdata/dbbak/archivedir/"`date -d \'-10 day\' +%Y%m%d`

if [ -d "$BACK" ]; then
    rm -rf $BACK
    echo "success rm $BACK" >/zdata/dbbak/logs/pg_archive_logs
else 
    echo "the old backup file not exists!" >/zdata/dbbak/logs/pg_archive_logs
fi
(test -d $DIR || mkdir -p $DIR) && cp $1 $DIR/$2

archive_command = \'bin/bash /zdata/dbbak/scripts/archive.sh %p %f\' 

然后配置postgresql.conf

archive_mode = on               # enables archiving; off, on, or always
archive_command = \'/bin/bash /zdata/dbbak/scripts/archive.sh %p %f\' 

对数据库重启

sudo systemctl restart postgresql-11.service

归档目录每天会生成一个天数目录。

-bash-4.2$ ll
total 0
drwxr-xr-x 6 postgres postgres 72 Sep 13 17:53 dbbak
drwxrwxr-x 4 postgres postgres 34 Aug  5 15:57 pg
-bash-4.2$ cd dbbak/
-bash-4.2$ ll
total 0
drwxr-xr-x 3 postgres postgres 22 Sep 13 18:14 archivedir
drwxr-xr-x 2 postgres postgres  6 Aug  5 15:51 archivelog
drwxr-xr-x 2 postgres postgres  6 Aug  5 15:51 backups
drwxr-xr-x 2 postgres postgres 24 Sep 13 18:14 scripts
-bash-4.2$ cd archivedir/
-bash-4.2$ ll
total 4
drwxr-xr-x 2 postgres postgres 4096 Sep 13 18:33 20210913
-bash-4.2$ pwd
/zdata/dbbak/archivedir
-bash-4.2$ 

以上是关于搭建PG数据库一些归档的配置的主要内容,如果未能解决你的问题,请参考以下文章

pg 10 wal 归档同步配置

pg_archivecleanup 和流复制

PostgreSQL的流复制搭建

Oracle数据库从RMAN备份集片段还原指定单个归档日志进行日志挖掘分析

pg_restore - 从一个由 pg_dump 创建的备份文件中恢复 PostgreSQL 数据库。

均衡PG-小集群ceph的优化办法