• 技术文章 >数据库 >mysql教程

    MySQl备份恢复策略(完全+增量备份策略)

    2016-06-07 15:52:51原创558

    #!/bin/sh # Name:mysqlFullBackup.sh # PS:MySQL DataBase Full Backup. # Write by:i.Stone # Last Modify:2007-11-17 # # Use mysqldump --help get more detail. # # 定义变量,请根据具体情况修改 # 定义脚本目录 scriptsDir=`pwd` # 定义数据库目录 my

    #!/bin/sh


    # Name:mysqlFullBackup.sh


    # PS:MySQL DataBase Full Backup.


    # Write by:i.Stone


    # Last Modify:2007-11-17


    #


    # Use mysqldump --help get more detail.


    #


    # 定义变量,请根据具体情况修改


    # 定义脚本目录


    scriptsDir=`pwd`


    # 定义数据库目录


    mysqlDir=/usr/local/mysql


    # 定义用于备份数据库的用户名和密码


    user=root


    userPWD=111111


    # 定义备份目录


    dataBackupDir=/tmp/mysqlbackup


    # 定义邮件正文文件


    eMailFile=$dataBackupDir/email.txt


    # 定义邮件地址


    eMail=alter@somode.com


    # 定义备份日志文件


    logFile=$dataBackupDir/mysqlbackup.log


    DATE=`date -I`



    echo "" > $eMailFile


    echo $(date +"%y-%m-%d %H:%M:%S" >> $eMailFile


    cd $dataBackupDir


    # 定义备份文件名


    dumpFile=mysql_$DATE.sql


    GZDumpFile=mysql_$DATE.sql.tar.gz



    # 使用mysqldump备份数据库,请根据具体情况设置参数


    $mysqlDir/bin/mysqldump -u$user -p$userPWD \


    --opt --default-character-set=utf8 --extended-insert=false \


    --triggers -R --hex-blob --all-databases \


    --flush-logs --delete-master-logs \


    --delete-master-logs \


    -x > $dumpFile



    # 压缩备份文件


    if [[ $? == 0 ]]; then



    tar czf $GZDumpFile $dumpFile >> $eMailFile 2>&1



    echo "BackupFileNameGZDumpFile" >> $eMailFile



    echo "DataBase Backup Success!" >> $eMailFile



    rm -f $dumpFile



    # Delete daily backup files.



    cd $dataBackupDir/daily



    rm -f *



    # Delete old backup files(mtime>2).



    $scriptsDir/rmBackup.sh



    # 如果不需要将备份传送到备份服务器或备份服务器为Windows,请将标绿的行注释掉


    # Move Backup Files To Backup Server.


    #适合Linux(MySQL服务器)到Linux(备份服务器)



    $scriptsDir/rsyncBackup.sh



    if (( !$? )); then


    echo "Move Backup Files To Backup Server Success!" >> $eMailFile


    else


    echo "Move Backup Files To Backup Server Fail!" >> $eMailFile


    fi



    else



    echo "DataBase Backup Fail!" >> $emailFile


    fi


    # 写日志文件


    echo "--------------------------------------------------------" >> $logFile


    cat $eMailFile >> $logFile


    # 发送邮件通知


    cat $eMailFile | mail -s "MySQL Backup" $eMail

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:txt文件导入mysql 下一篇:MySQL添加用户、删除用户与授权的方法
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• MySQL流程控制之while、repeat、loop循环• 怎样解决mysql深分页问题• MySQL事务的ACID特性及并发问题知识点总结• 一起来聊聊数据库拉链表• mysql游标有什么用
    1/1

    PHP中文网