博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 全量与增量交替备份
阅读量:6477 次
发布时间:2019-06-23

本文共 1603 字,大约阅读时间需要 5 分钟。

hot3.png

1:mysql开启log_bin功能

vim /etc/my.cnf
log-bin=/data/mysql/data

#!/usr/bin/bash

#define:MySQL full backup and incremental backup
#date:2017.02.09
#author:

basename="/data/scripts/mysql_back"

mysql_bak_dir="/data/mysql_bak"
get_log_dir="/data/mysql/data"
today=`date +"%Y%m%d"`

###数据库信息

mysql_ip="127.0.0.1"
mysql_user="root"
mysql_passwd="root"
mysql_path="/bin"

logdir="/data/log/mysql"          #日志路径

log=$logdir/log"$today".log                            #日志文件 
is_font=1                                      #终端是否打印日志: 1打印 0不打印 
is_log=1                                       #是否记录日志: 1记录 0不记录
[[ -d $logdir ]]||mkdir -p $logdir             #确保日志目录存在

datef(){
    date "+%Y-%m-%d %H:%M:%S"
}

print_log(){

    if [[ $is_log -eq 1  ]];then
        [[ -d $logdir ]] || mkdir -p $logdir
        echo -e "[ $(datef) ] $1" >> $log
    fi
    if [[ $is_font -eq 1  ]];then
        echo -e "[ $(datef) ] $1"
    fi
}

####日期判断
Date=`date|awk '{print $1}'`

full_bakck() {

    print_log "mysql 全量备份"
    print_log "获取当前最新binlog"
    log_bin_name=`ls -lt $get_log_dir/log.*|head -n 1|awk '{print $9}'`
    while true
    do
        $mysql_path/mysqldump -h $mysql_ip -u$mysql_user -p$mysql_passwd  --single-transaction --all-databases --flush-logs > $mysql_bak_dir/backup_sunday_1_PM"$today".sql
        if [[ $? -eq 0 ]];then
            print_log "mysql全量备份成功,备份名:backup_sunday_1_PM"$today".sql,二进制日志:$log_bin_name" 

                    break

        fi
    done
}

incremental_back() {

    print_log "mysql 增量备份"
    log_bin_name=`ls -lt $get_log_dir/log.*|head -n 1|awk '{print $9}'`
    $mysql_path/mysqladmin -h $mysql_ip -u$mysql_user -p$mysql_passwd  flush-logs
    print_log "mysql 增量备份成功,二进制日志:$log_bin_name"
}

case $Date in 
Sun)
    full_bakck
    ;;
Mon|Tue|Wed|Thu|Fri|Sat)
    incremental_back
    ;;
*)
    echo "Usage 获取的日期格式有问题,请检查"
    ;;
esac

 

转载于:https://my.oschina.net/u/2343310/blog/834774

你可能感兴趣的文章
常见端口 HTTP代码
查看>>
理解Mysql的单索引和复合索引
查看>>
Linux 工程师新法宝:在 Visual Studio 上用 C++ 写 Linux
查看>>
Postgre Sql获取最近一周、一月、一年日期函数
查看>>
p4377 [USACO18OPEN]Talent Show
查看>>
快速排序 Gnu glibc qsort_r
查看>>
MyBatis Generator 详解 专题
查看>>
程序员的视角:java 线程(转)
查看>>
VisualSVN
查看>>
自定义Section
查看>>
在.NET开发中的单元测试工具之(2)——xUnit.Net
查看>>
Go之类型判断
查看>>
第二百五十二节,Bootstrap项目实战-首页
查看>>
Gray Code
查看>>
python 依照list中的dic的某key排序
查看>>
机器学习--详解人脸对齐算法SDM-LBF
查看>>
js中几种实用的跨域方法原理详解
查看>>
Go语言的基准测试简单示例
查看>>
PLSQL连接Oracle 数据库配置详解
查看>>
load函数
查看>>