mysql 增量备份shell简易脚本 – 21运维
通知: .-...

mysql 增量备份shell简易脚本

mysql 21运维 2959浏览 0评论

弄了一个香港的服务器搞着耍,没怎么耍都快长毛了,今天就拿它出来练练,反正闲着也是闲着。这次就搞一个mysql的增量备份。搞之前,先确定mysql开启了日志:

log-bin=mysql-bin
binlog_format=mixed
如下是随便写了一个脚本,按照每天进行日志备份。
注意:
1,这里是对日志文件每天都全部拷贝了,针对增删改操作较多的,那么日志较大的情况就最好不这么搞了,日志文件可能会很大。
2,操作之前最好先进行一次全量备份,要不只备份这些,数据库本身挂了,拿这个恢复也是有问题的。

#!/bin/bash
#author:21yunwei
today=`date +"%Y%m%d"`
datadir=/home/mysql/data
today_bkdir=/home/backup/mysql/$today
[ ! -d $today_bkdir ] && mkdir -p $today_bkdir &&  chown  -R mysql.mysql $today_bkdir
mysqladmin -hx.x.x.x  -uroot -pxxxxx flush-logs
total=`ls $datadir/mysql-bin.*  |wc -l`
total=`expr $total - 2`
for f in `ls $datadir/mysql-bin.*|head -n $total`
do
bf=`basename $f`
cp  $f $today_bkdir/$bf
done

执行结果:

[[email protected] 20160329]# ll
总用量 7712
-rw-r----- 1 root root    1146 3月  29 17:38 mysql-bin.000001
-rw-r----- 1 root root     539 3月  29 17:38 mysql-bin.000002
-rw-r----- 1 root root     535 3月  29 17:38 mysql-bin.000003
-rw-r----- 1 root root    1134 3月  29 17:38 mysql-bin.000004
-rw-r----- 1 root root 7846058 3月  29 17:38 mysql-bin.000005
-rw-r----- 1 root root     167 3月  29 17:38 mysql-bin.000006
-rw-r----- 1 root root     167 3月  29 17:38 mysql-bin.000007
-rw-r----- 1 root root     167 3月  29 17:38 mysql-bin.000008
-rw-r----- 1 root root     167 3月  29 17:38 mysql-bin.000009
-rw-r----- 1 root root     167 3月  29 17:38 mysql-bin.000010
-rw-r----- 1 root root     167 3月  29 17:38 mysql-bin.000011
-rw-r----- 1 root root     167 3月  29 17:38 mysql-bin.000012
-rw-r----- 1 root root     167 3月  29 17:38 mysql-bin.000013

 

补充内容:
1,可以根据实际需要写入到任务计划里边执行这个脚本。
2,从网上看到日志还有几个参数,这里记录下便于后续使用:

  [mysqld]
         binlog_format       = MIXED                 //binlog日志格式
         log_bin             =目录/mysql-bin.log    //binlog日志名
         expire_logs_days    = 7                //binlog过期清理时间
         #max_binlog_size    100m                    //binlog每个日志文件大小 最大值和默认是1个G
         binlog-do-db=game     #需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
         binlog-do-db=platform #
         #binlog-ignore-db=不需要备份的数据库,如果备份多个数据库,重复设置这个选项即可

转载请注明:21运维 » mysql 增量备份shell简易脚本

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址