mysql二进制日志增量备份脚步

 代码如下 复制代码

#!/bin/bash
#定义用户名及密码
host=
user=
userPWD=
#定义数据库
database=

mysqladmin -h$host -u$user  flush-logs
daily_databakDir=/backdir
#定义MYSQL数据目录
mysqlDataDir=/mysql5.5/data

eMailFile=$daily_databakDir/email.txt
#eMail=

DATE=`date +%Y%m%d%H%M%S`
logFile=$daily_databakDir/mysql$DATE.log
#echo "       " > $eMailFile
#echo "-----------------------" >> $eMailFile
#echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile
#echo "-------
#
#------------------" >> $eMailFile
TIME=$(date "-d 40 day ago" +%Y%m%d%H%M%S)
StartTime=$(date -d "-60 minute" +"%Y-%m-%d %H:%M:%S")
echo “Delete 40 days before the log” >>$eMailFile
mysql -h$host -u$user  -e "purge master logs before ${TIME}" && echo "delete 40 days before log" |tee -a $eMailFile #删除10天前的2进制文件

filename=`cat $mysqlDataDir/mysql-bin.index |awk -F "/" '{print $2}'` # 2进制文件
for i in $filename
do
#echo "$StartTime start backup binlog" >> $eMailFile
mysqlbinlog -h$host -u$user -d $database --start-datetime="$StartTime" $mysqlDataDir/$i >> $daily_databakDir/daily$DATE.sql |tee -a $eMailFile
done
if [ $? = 0 ]
then

# 删除mtime>32的增量日志备份文件
find $daily_databakDir -name "*.log" -type f -mtime +32 -exec rm {} ; > /dev/null 2>&1

cd $daily_databakDir
tar -cvzf $daily_databakDir/$database$DATE.tar.gz daily$DATE.sql
# >>/dev/null 2&1
#scp 至另一台服务器
echo "Daily backup succeed" >>$eMailFile
else
echo "Daily backup fail"  >>$eMailFile
#mail -s "MySQL Backup" $eMail < $eMailFile #备份失败之后发送邮件通知
fi
cat $eMailFile > $logFile

# 删除mtime>32的增量日志备份文件
find $daily_databakDir -name "*.log" -type f -mtime +32 -exec rm {} ; > /dev/null 2>&1

时间: 2024-11-01 07:48:41

mysql二进制日志增量备份脚步的相关文章

MySQL 二进制日志(Binary Log)

    同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等.二进制日志,也叫binary log,是MySQL Server中最为重要的日志之一,本文主要描述二进制日志.   1.MySQL日志文件系统的组成   a.错误日志:记录启动.运行或停止mysqld时出现的问题.   b

MySQL二进制日志(binary log)总结

原文:MySQL二进制日志(binary log)总结   本文出处:http://www.cnblogs.com/wy123/p/7182356.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他)    提示max_binlog_cache_size空间不足,因为开启了二进制日志,之前是默认设置没有大批量的事务性操作,没有遇到该问题,这一次一开始就遇到一个较大的事务性操作就失败了.之后修改binlog_cac

mysql二进制日志文件恢复数据库_Mysql

二进制日志的文件的作用     mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句.如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所做的操作,再和数据库备份配合使用,即可再现用户操作,使数据库恢复. 二进制日志文件的弊端 二进制日志文件开启后,所有对数据库操作的记录均会被记录到此文件, 所以,当长时间开启之后,日志文件会变得很大,占用磁盘空间. 使用二进制日志文件恢复数据库 开启日志文件 mysql默认是不开启日志文件的

linux中关闭与删除mysql二进制日志的方法

1.删除mysql二进制日志 # mysql -uroot -p密码 -e"reset master;" 2.关闭二进制日志 编辑文件: vi /etc/my.cnf 注释如下代码: #log-bin=mysql-bin #binlog_format=mixed 3.重启mysql服务器 service mysql restart 友情提示,二进制日志文件可以非常方便的给我们数据进行备份哦,如果你系统出严重问题我们通常利用二进制文件进行数据恢复操作哦.

mysql 利用binlog增量备份,还原实例

mysql 利用binlog增量备份,还原实例 张映 发表于 2010-09-29 分类目录: mysql 一,什么是增量备份 增量备份,就是将新增加的数据进行备份.假如你一个数据库,有10G的数据,每天会增加10M的数据,数据库每天都要备份一次,这么多数据是不是都要备份呢?还是只要备份增加的数据呢,很显然,我只要备份增加的数据.这样减少服务器的负担. 二,启用binlog vi my.cnf log-bin=/var/lib/MySQL/mysql-bin.log,如果是这样的话log-bin

MySQL二进制日志总结

二进制日志简单介绍   MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句.二进制日志(binary log)中记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间.执行时长.操作数据等其它额外信息,但是它不记录SELECT.SHOW等那些不修改数据的SQL语句.二进制日志(binary log)主要用于数据库恢复和主从复制,以及审计(audit)操作.   官方文档关于二进制日志(binary log)的介绍如

MySQL 二进制日志格式深入理解

MySQL二制进日志用于记录数据库的变更记录,这里从结构上讨论一下日志的格式. 每个日志都包含4个字节的magic number 和event的描述包 日志有前四个字节是magic number: oxfe ox62 0×69 0x6e = 0xfe 'b"i"n' 转成整数:1852400382  用处就是读4个字节对比不是这个数,说明就不是二进制日志,就不用处理了.  log_event.sh中可以查到  /* 4 bytes which all binlogs should be

删除MySQL二进制日志具体方法

服务器上的120G SSD硬盘空间用了92%,检查后发现,原来是 MySQL的二进制日志没有及时清除,占用了大量的空间,于是直接用命令:reset master 一把删干净了.  代码如下 复制代码 reset master 如果MySQL服务器上的数据库做了replication,就不要使用该命令,而是应该用:purge binary logs 命令.purge 比较温和,通常有两种执行方式:  代码如下 复制代码 purge binary logs to     'mysql-bin.010

mysql数据库完美增量备份脚本

是否因为mysql太大,来回备份浪费资源带宽而发愁,如果想解决这个麻烦就需要增量备份,下面是张小三资源网修改的一份mysql的增量备份脚本,我已做了相关注释,大家自行修改下就可以用了. vi /etc/my.cnf开启日志及定期清理日志 log-bin=mysql-bin binlog_format=mixed //二进制日志自动删除的天数.默认值为0,表示"没有自动删除" expire_logs_days = 5 全备份脚本: #!/bin/bash # Name:qbk全备份脚本