700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > mysql 数据增量备份_MySQL数据库之mysql全量备份 增量备份实现方法

mysql 数据增量备份_MySQL数据库之mysql全量备份 增量备份实现方法

时间:2022-10-31 15:07:28

相关推荐

mysql 数据增量备份_MySQL数据库之mysql全量备份 增量备份实现方法

本文主要向大家介绍了MySQL数据库之mysql全量备份、增量备份实现方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

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

[mysqld]log-bin="/home/mysql/logbin.log"binlog-format=ROWlog-bin-index="/home/mysql/logindex"binlog_cache_size=32mmax_binlog_cache_size=512mmax_binlog_size=512m

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

2、增量备份

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

mkdir-p/home/mysql/backup/daily

增量备份脚本

cd/home/mysqlvibinlogbak.sh#!/bin/bashexportLANG=en_US.UTF-8BakDir=/home/mysql/backup/dailyBinDir=/home/mysqlLogFile=/home/mysql/backup/binlog.logBinFile=/home/mysql/logindex.indexmysqladmin-uroot-proot123flush-logs#这个是用于产生新的mysql-bin.00000*文件Counter=`wc-l$BinFile|awk'{print$1}'`NextNum=0#这个for循环用于比对$Counter,$NextNum这两个值来确定文件是不是存在或最新的。forfilein`cat$BinFile`dobase=`basename$file`#basename用于截取mysql-bin.00000*文件名,去掉./mysql-bin.000005前面的./NextNum=`expr$NextNum+1`if[$NextNum-eq$Counter]thenecho$baseskip!>>$LogFileelsedest=$BakDir/$baseif(test-e$dest)#test-e用于检测目标文件是否存在,存在就写exist!到$LogFile去。thenecho$baseexist!>>$LogFileelsecp$BinDir/$base$BakDirecho$basecopying>>$LogFilefifidoneecho`date+"%Y年%m月%d日%H:%M:%S"`Bakupsucc!>>$LogFile

赋予binlogbak.sh执行权限

chmoda+x/home/mysql/binlogbak.sh

3、全量备份

?

vidatabak.sh#!/bin/bashexportLANG=en_US.UTF-8BakDir=/home/mysql/backupLogFile=/home/mysql/backup/bak.logDate=`date+%Y%m%d`Begin=`date+"%Y年%m月%d日%H:%M:%S"`cd$BakDirDumpFile=$Date.sqlGZDumpFile=$Date.sql.tgzmysqldump-uroot-proot123--all-databases--flush-logs--delete-master-logs--single-transaction>$DumpFiletar-czvf$GZDumpFile$DumpFilerm$DumpFilecount=$(ls-l*.tgz|wc-l)if[$count-ge5]thenfile=$(ls-l*.tgz|awk'{print$9}'|awk'NR==1')rm-f$filefi#只保留过去四周的数据库内容Last=`date+"%Y年%m月%d日%H:%M:%S"`echo开始:$Begin结束:$Last$GZDumpFilesucc>>$LogFilecd$BakDir/dailyrm-f*

赋予databak.sh执行权限

chmoda+x/home/mysql/databak.sh

4、开启定时任务

?

vi/etc/crontab#每个星期日凌晨3:00执行完全备份脚本03**0/home/mysql/databak.sh>/dev/null2>&1#周一到周六凌晨3:00做增量备份03**1-6/home/mysql/binlogbak.sh>/dev/null2>&1

使上述定时任务生效

crontab/etc/crontab

查看定时任务

crontab-l

完成。

本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。