美文网首页
mysql 自动备份

mysql 自动备份

作者: adonisjph | 来源:发表于2016-08-30 16:25 被阅读62次

    环境

    centos 6.5
    mysql 5.7.14

    实现功能

    备份所有数据库,并且保留最近五天的数据。

    
    #!/bin/sh  
    # mysql_backup.sh: backup mysql databases and keep newest 5 days backup.  
    #  
    # db_user is mysql username  
    # db_passwd is mysql password  
    # db_host is mysql host  
    # —————————–  
    db_user="root"  
    db_passwd="12345678"  
    db_host="localhost"  
    
    # the directory for story your backup file.  
    backup_dir="/home/mysqlbackup"  
    
    # date format for backup file (dd-mm-yyyy)  
    time="$(date +"%d-%m-%Y")"  
    
    # mysql, mysqldump and some other bin's path  
    MYSQL="/usr/bin/mysql"  
    MYSQLDUMP="/usr/bin/mysqldump"  
    MKDIR="/bin/mkdir"  
    RM="/bin/rm"  
    MV="/bin/mv"  
    GZIP="/bin/gzip"  
    
    # check the directory for store backup is writeable  
    test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0  
    
    # the directory for story the newest backup  
    test ! -d "$backup_dir/backup.0/" && $MKDIR "$backup_dir/backup.0/"  
    
    # get all databases  
    all_db="$($MYSQL -u $db_user -h $db_host -p$db_passwd -Bse 'show databases')"  
    for db in $all_db  
    do  
    $MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db --skip-lock-tables | $GZIP -9 > "$backup_dir/backup.0/$time.$db.gz"  
    done  
    
    # delete the oldest backup  
    test -d "$backup_dir/backup.5/" && $RM -rf "$backup_dir/backup.5"  
    
    # rotate backup directory  
    for int in 4 3 2 1 0  
    do  
    if(test -d "$backup_dir"/backup."$int")  
    then  
    next_int=`expr $int + 1`  
    $MV "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int"  
    fi  
    done  
    exit 0;
    
    

    需要注意的是,备份目录在备份动作执行前,需要手动创建,然后通过root账号,使用crontab执行定时任务。

    可能出现的问题

    The 'INFORMATION_SCHEMA.GLOBAL_STATUS' feature is disabled: see the documentation for 'show_compatibility_56'
    解决方法:进入mysql命令模式,执行以下sql语句

    set @@global.show_compatibility_56=ON;
    

    相关文章

      网友评论

          本文标题:mysql 自动备份

          本文链接:https://www.haomeiwen.com/subject/ssafettx.html