千家信息网

负责数据库的备份,实现周一 之 周六增量备份,周日全量备份

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,1、mysql全量备份、增量备份。开启mysql的logbin日志功能。在/etc/my.cnf文件中加入以下代码:[mysqld]log-bin ="/home/mysql/logbin.log"b
千家信息网最后更新 2026年10月31日负责数据库的备份,实现周一 之 周六增量备份,周日全量备份

1、mysql全量备份、增量备份。开启mysql的logbin日志功能。在/etc/my.cnf文件中加入以下代码:

[mysqld]

log-bin ="/home/mysql/logbin.log"

binlog-format = ROW

log-bin-index ="/home/mysql/logindex"

binlog_cache_size=32m

max_binlog_cache_size=512m

max_binlog_size=512m

重启mysql即可。其中路径 /home/mysql的用户和组要改成mysql。

2、增量备份

在/home/mysql/目录下建立以下目录:

mkdir -p/home/mysql/backup/daily

增量备份脚本

cd /home/mysql

vi binlogbak.sh

#!/bin/bash

export.UTF-8

BakDir=/home/mysql/backup/daily

BinDir=/home/mysql

LogFile=/home/mysql/backup/binlog.log

BinFile=/home/mysql/logindex.index

mysqladmin -uroot -proot123flush-logs

#这个是用于产生新的mysql-bin.00000*文件

Counter=`wc -l $BinFile |awk'{print $1}'`

NextNum=0

#这个for循环用于比对$Counter,$NextNum这两个值来确定文件是不是存在或最新的。

for file in `cat $BinFile`

do

base=`basename $file`

#basename用于截取mysql-bin.00000*文件名,去掉./mysql-bin.000005前面的./

NextNum=`expr $NextNum + 1`

if [ $NextNum -eq $Counter ]

then

echo $base skip! >> $LogFile

else

dest=$BakDir/$base

if(test -e $dest)

#test -e用于检测目标文件是否存在,存在就写exist!到$LogFile去。

then

echo $base exist! >> $LogFile

else

cp $BinDir/$base $BakDir

echo $base copying >>$LogFile

fi

fi

done

echo `date +"%Y年%m月%d日%H:%M:%S"` Bakup succ! >> $LogFile

赋予binlogbak.sh执行权限

chmod a+x/home/mysql/binlogbak.sh

3、全量备份

vi databak.sh

#!/bin/bash

export.UTF-8

BakDir=/home/mysql/backup

LogFile=/home/mysql/backup/bak.log

Date=`date +%Y%m%d`

Begin=`date +"%Y年%m月%d日%H:%M:%S"`

cd $BakDir

DumpFile=$Date.sql

GZDumpFile=$Date.sql.tgz

mysqldump -uroot -proot123--all-databases --flush-logs --delete-master-logs --single-transaction >$DumpFile

tar -czvf $GZDumpFile $DumpFile

rm $DumpFile

count=$(ls -l *.tgz |wc -l)

if [ $count -ge 5 ]

then

file=$(ls -l *.tgz |awk '{print$9}'|awk 'NR==1')

rm -f $file

fi

#只保留过去四周的数据库内容

Last=`date +"%Y年%m月%d日%H:%M:%S"`

echo 开始:$Begin 结束:$Last$GZDumpFile succ >> $LogFile

cd $BakDir/daily

rm -f *

赋予databak.sh 执行权限

chmod a+x/home/mysql/databak.sh

4、开启定时任务

crontab -e

#每个星期日凌晨3:00执行完全备份脚本

0 3 * * 0/home/mysql/databak.sh >/dev/null 2>&1

#周一到周六凌晨3:00做增量备份

0 3 * * 1-6/home/mysql/binlogbak.sh >/dev/null 2>&1

使上述定时任务生效

crontab /etc/crontab

查看定时任务

crontab -l

完成。


备份 文件 增量 任务 权限 目录 脚本 数据 数据库 两个 代码 内容 功能 文件名 日志 星期 用户 目标 路径 中加 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州淘业互联网络科技 互联网与未来科技 朗涯互联网科技 深圳艾佳互联网科技 青岛中康互联网医疗科技有限公司 互联网金融科技公司干啥的 佳云科技和互联网广告 互联网软件和科技 互联网公司科技股 南平创想时代互联网科技有限公司 开一家科技互联网公司需要多少钱 互联网科技人工智能实验室 本届互联网博览会上的黑科技 国大互联网教育科技有限公司薪资 中天科技中国工业互联网 21世纪互联网科技成就 万物互联网智能科技 科技和互联网行业的特点 互联网对科技影响 前海云享互联网科技 广东猪兼强互联网科技有限公司 科技信息互联网 郑州华宇互联网科技 须眉科技是互联网公司吗 宁波青枫互联网科技有限公司 互联网科技有哪些公司 成都互联网科技公司工作好不好 深圳育鹏互联网科技有限公司招聘 信承诺互联网科技有限公司 互联网高科技行业有哪些企业
0