1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > MySQL 数据库备份一键执行脚本 --- 全库备份和增量备份

MySQL 数据库备份一键执行脚本 --- 全库备份和增量备份

时间:2022-02-10 13:47:36

相关推荐

MySQL 数据库备份一键执行脚本 --- 全库备份和增量备份

文章目录

1. 全库备份2. 增量备份3. 开启定时任务

1. 全库备份

vim all_db_bak.sh#!/bin/bash#MySQL 全库备份PATH="/usr/local/mysql/bin:$PATH"BAK1=/bak1BAK2=/bak2TIME=$(date +"%F:%H:%M:%S")USER=rootPASS=123456if [ ! -d $BAK1 -o ! -d $BAK2 ];thenmkdir $BAK1mkdir $BAK2mysqldump -u$USER -p$PASS --all-databases > /$BAK1/all_${TIME}.sqlcp $BAK1/all_${TIME}.sql $BAK2echo -e "\033[32mMySQL数据已全库备份到 ${BAK2} 目录\033[0m"elsemysqldump -u$USER -p$PASS --all-databases > /$BAK1/all_${TIME}.sqlcp $BAK1/all_${TIME}.sql $BAK2echo -e "\033[32mMySQL数据已全库备份到 ${BAK2} 目录\033[0m"fi

2. 增量备份

开启 mysql 的 logbin 日志功能

[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

建立以下目录

mkdir -p /home/mysql/backup/daily

增量备份脚本

vim binlogbak.sh#!/bin/bashPATH="/usr/local/mysql/bin:$PATH"export LANG=en_US.UTF-8BakDir=/home/mysql/backup/dailyBinDir=/home/mysqlLogFile=/home/mysql/backup/binlog.logBinFile=/home/mysql/logindex.index#注意修改密码mysqladmin -uroot -p123456 flush-logs#这个是用于产生新的 mysql-bin.00000* 文件Counter=`wc -l $BinFile |awk '{print $1}'`NextNum=0#这个 for 循环用于比对 $Counter,$NextNum 这两个值来确定文件是不是存在或最新的for file in `cat $BinFile`dobase=`basename $file`#basename用于截取mysql-bin.00000*文件名,去掉./mysql-bin.000005前面的./NextNum=`expr $NextNum + 1`if [ $NextNum -eq $Counter ]thenecho $base skip! >> $LogFileelsedest=$BakDir/$baseif(test -e $dest)#test -e用于检测目标文件是否存在,存在就写exist!到$LogFilethenecho $base exist! >> $LogFileelsecp $BinDir/$base $BakDirecho $base copying >> $LogFilefifidoneecho `date +"%Y年%m月%d日 %H:%M:%S"` Bakup succ! >> $LogFile

3. 开启定时任务

vim /etc/crontab#每个星期日凌晨 3:00 执行完全备份脚本0 3 * * 0 /home/mysql/all_db_bak.sh >/dev/null 2>&1#周一到周六凌晨3:00做增量备份0 3 * * 1-6 /home/mysql/binlogbak.sh >/dev/null 2>&1crontab /etc/crontab #使上述定时任务生效crontab -l #查看定时任务

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