前言:
而今大家对“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数据库增量备份