Mysql日常备份和增量备份脚本(Linux)

北大青鸟大学城校区logo 北大青鸟大学城校区
招生简章校园环境师资力量就业明星招生问答软件工程师北京大学学历学员项目联系我们 报名通道

免费在线咨询通道>>

免费在线报名通道>>

北大青鸟报名电话
当前位置:北大青鸟 > 软件教程 > 数据库教程 >

Mysql日常备份和增量备份脚本(Linux)

标签:   分类:数据库教程


你是否在寻找一个mysql备份脚本? 软件开发

适合对象 软件开发网

本文是在linux下,mysql 4.1.14版本下测试的,经过适当修改可能适合mysql 4.0,5.0及其其他版本.

本文适合于没有启动复制功能的mysql,如果启动了复制,可能不需要采取这种备份策略或者需要修改相关参数.

每个人的备份策略都可能不同,所以请根据实际情况修改,做到举一反三,不要照搬照抄,可能会造成不必要的损失. 软件开发网

希望你明白这个脚本要干什么工作! 软件开发网

脚本描述

每7天备份一次所有数据,每天备份binlog,也就是增量备份. http://www.mscto.com

(如果数据少,每天备份一次完整数据即可,可能没必要做增量备份) http://www.mscto.com

作者对shell脚本不太熟悉,所以很多地方写的很笨 :) http://www.mscto.com

开启 bin log

http://www.mscto.com

在mysql 4.1版本中,默认只有错误日志,没有其他日志.可以通过修改配置打开bin log.方法很多,其中一个是在/etc/my.cnf中的mysqld部分加入:

[mysqld]

            log-bin 

这个日志的主要作用是增量备份或者复制(可能还有其他用途).

如果想增量备份,必须打开这个日志.

对于数据库操作频繁的mysql,这个日志会变得很大,而且可能会有多个.

在数据库中flush-logs,或者使用mysqladmin,mysqldump调用flush-logs后并且使用参数delete-master-logs,这些日志文件会消失,并产生新的日志文件(开始是空的).

所以如果从来不备份,开启日志可能没有必要. http://www.mscto.com

完整备份的同时可以调用flush-logs,增量备份之前flush-logs,以便备份最新的数据.

完整备份脚本

如果数据库数据比较多,我们一般是几天或者一周备份一次数据,以免影响应用运行,如果数据量比较小,那么一天备份一次也无所谓了. http://www.mscto.com

下载假设我们的数据量比较大,备份脚本如下:(参考过网络上一个mysql备份脚本,致谢 :))

#!/bin/sh

            # mysql data backup script

            # by scud http://www.jscud.com

            # 2005-10-30

            #

            # use mysqldump --help,get more detail.

            #

            BakDir=/backup/mysql

            LogFile=/backup/mysql/mysqlbak.log

            DATE=`date  %Y%m%d`

            echo " " >> $LogFile

            echo " " >> $LogFile

            echo "-------------------------------------------" >> $LogFile

            echo $(date  "%y-%m-%d %H:%M:%S") >> $LogFile

            echo "--------------------------" >> $LogFile

            cd $BakDir

            DumpFile=$DATE.sql

            GZDumpFile=$DATE.sql.tgz

            mysqldump --quick --all-databases --flush-logs

            --delete-master-logs --lock-all-tables > $DumpFile

            echo "Dump Done" >> $LogFile

            tar czvf $GZDumpFile $DumpFile >> $LogFile 2>&1

            echo "[$GZDumpFile]Backup Success!" >> $LogFile

            rm -f $DumpFile

            #delete previous daily backup files:采用增量备份的文件,如果完整备份后,则删除增量备份的文件.

            cd $BakDir/daily

            rm -f *

            cd $BakDir

            echo "Backup Done!"

            echo "please Check $BakDir Directory!"

            echo "copy it to your local disk or ftp to somewhere !!!"

            ls -al $BakDir

若有疑问请拨打北大青鸟咨询热线:010-80146691或点击免费在线咨询!
  • xml地图 网站地图 招生简章 合作企业 学员项目 联系我们
  • 关闭窗口