龙空技术网

小白入门必知必会-PostgreSQL增量备份

霸都运维 103

前言:

而今大家对“sql数据库增量备份”大体比较关怀,小伙伴们都需要剖析一些“sql数据库增量备份”的相关内容。那么小编也在网络上收集了一些有关“sql数据库增量备份””的相关资讯,希望小伙伴们能喜欢,同学们快快来学习一下吧!

一、增量备份基础

1.1 概念

PostgreSQL在做写入操作时,对数据文件做的任何修改信息,首先会写入WAL日志(预写日志),然后才会对数据文件做物理修改。

当数据库服务器意外宕机,数据库在启动时会首先读取WAL日志,对数据文件进行恢复,基于此,从理论上讲,如果有一个数据库的基础备份(全备),再配合WAL日志,是可以将数据库恢复到任意时间点的。

二、增量备份实现

PostgreSQL安装可以参考文章:

2.1 开启WAL归档

修改配置文件

vim /web/data_5432/postgres.conf

wal_level = replica

archive_mode = on

archive_command = 'test ! -f /data/backup/archive/%f && /usr/bin/lz4 -q -z %p /data/backup/archive/%f.lz4'

创建数据归档目录并授权

mkdir -p /data/backup/archive

chown -R postgres.postgres /data/backup/archive

重启数据库

su - postgres

/web/pgsql/bin/pg_ctl -D /web/data_5432 -l /web/data_5432/logfile -mf restart

2.2 写一个增量备份的脚本

vim increase.sh

#!/bin/bash

# 定义备份文件存储目录

BACKUP_DIR=/data/backup

# 定义WAL日志备份目录

WAL_ARCHIVE_DIR=/data/backup/archive

# 获取当前时间戳

NOW=$(date +"%Y-%m-%d-%H-%M-%S")

# 创建一个新的增量备份目录

INC_BACKUP_DIR=$BACKUP_DIR/inc_backup/$NOW

mkdir -p $INC_BACKUP_DIR

chown -R postgres.postgres $INC_BACKUP_DIR

# 开始增量备份

/web/pgsql/bin/pg_basebackup -Ft -Pv -Xf -z -Z5 -U postgres -p 5432 -D $INC_BACKUP_DIR

# 清除无用的日志文件

find $WAL_ARCHIVE_DIR -mtime +7 -type f -delete

# 删除旧的增量备份

find $BACKUP_DIR/inc_backup -mtime +7 -type d -exec rm -rf {} \;

2.3 创建定时任务

crontab -e

00 01 * * 1-6 /web/increase.sh >/dev/null 2>&1

至此,PostgreSQL增量备份梳理完成,感谢观看。

标签: #sql数据库增量备份