温馨提醒

亲爱的游客,你的浏览器太旧啦.都啥年代了.为了你的安全,为了你的体验,为更好的浏览本页, 赶紧更新一把吧.....本博客不支持ie8以下浏览器,如果你使用的是ie浏览器,请您更新到ie8或以上版本.

推荐使用谷歌浏览器(chrome)或火狐浏览器(Firefox),点击下方按键进行安装

码农部落

  ——好记性,不如烂博客!

mysql增量备份

增量备份
定义:mysql数据库会以二进制的形式,自动把用户对mysql数据库的操作,记录到文件,当用户希望恢复的时候可以使用备份文件,进行恢复。
增量备份会记录那些语句(dml语句,创建表的语句,不会记录select语),会记录操作语句本身和操作时间。
注意:mysql从版本5.1开始才支持增量备份。
步骤:
(1) 配置my.ini 文件 或者my.conf 启用二进制备份。
定位到:[mysqld] 加入下面的语句。

[mysqld]
port=3306
#这里指定备份文件保存的位置
log-bin=d:/binlog/mylog expire_logs_day=7

expire_logs_day=7 代表日期过期时间

(2) 重新启动后,会得到如下文件。
mylog.index 索引文件,用于记录有哪里增量备份文件
mylog.000001 存放用户对数据库操作的文件
我们先运行几条sql语句看看;

create database temp;   
use temp;   / 
create table test(id int primary key auto_increment,name varchar(32))engine=myisam charset utf8;   
insert into test values(null,'aaa');  

(3) 可以使用mysqlbinlog 程序来查看 备份文件的内容
mysqlbinlog 备份文件路径
mysql_bak_1
(4) 实验开始,我们先执行几次下面的语句:

insert into test values(null,'aaaa');
过半分钟后,再执行:
insert into test values(null,'aaaa');
drop tables test;

(5) 恢复数据
先看一下日志文件:
mysql_bak_2
每一个操作前,都会有一个时间和位置。
按时间来恢复:
我们恢复到drop表之前:
mysqlbinlog –stop-datetime=”2014-01-01 19:26:27″ d:\binlog\mylog.000001 |mysql -uroot –p
主要参数要两个:
–stop-datetime 代表从备份头部开始,恢复到指定的时间点。
–start-datetime 代表从某个时间点开始,恢复到最后。
也可以两个参数一起用,代表一个要恢复的范围,按位置来恢复原理也是一样的。

按位置来恢复
我们恢复到drop表之前:
mysqlbinlog –stop-position=”2188″ d:\binlog\mylog.000001 |mysql -uroot –p

个人建议用位置来恢复。
(5) 如何在工作中将全备份和增量备份配合使用。
方案:每周一做一个全备份(mysqldump ),启用增量备份,把过期时间设置为大于7的。

码农部落
声明:本博客文章多数为博主笔记,绝无版权问题,欢迎转载(能注明出处更好),有任何问题,请在下方评论框留言.


发表评论

电子邮件地址不会被公开。 必填项已用*标注