mysql17---增量备份

本文详细介绍MySQL增量备份的方法,包括配置my.ini或my.conf文件以开启增量备份,通过mysqlbinlog工具查看并利用备份文件恢复数据库至特定时间点或位置。
复制代码
mysql增量备份:

全备份是:
(增量备份一定要看日志的时间和位置节点)
mysql数据库会以二进制的形式,把用户对mysql数据库的操作记录到文件中,不用使用定时器了。当用户希望恢复的时候,可以使用备份文件进行恢复。

会记录dml语句,创建表的语句。不会记录select语句(对数据库本身没有影响)。
会记录1.操作语句本身。2.操作的时间。3.操作的位置。

如何使用增量备份文件进行恢复。

步骤:
1.配置my.ini或者my.conf文件,开启增量备份。(同一个机器可以安装2个mysql,只要版本号不一样就可以)
#指定增量备份文件路径
server-id=1
log-bin=D:\MYSQL\mysql-5.7.20-winx64\binlog\mylog

2.重启mysql,得到文件:(我的是在mysql的根木生成的,并没有在mylog目录生成)
mylog.index是索引文件,记录的是有哪些备份文件。
mylog.000001是备份文件,真正存放对数据库操作的文件。

可以使用mysqlbinlog查看备份文件的内容 :mysqlbinlog 文件路径
$ mysqlbinlog /d/MYSQL/mysql-5.7。(mysql把每一个操作的时间和位置记录下来,可以根据时间的位置来恢复)(每次增加一条记录文件的修改时间就会改变)

/*
# at 794      
#180109 16:13:17 server id 1  end_log_pos 825 CRC32 0x4c8f791e  Xid = 21
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;*/


3.现在把表aaa删掉。根据日志把文件aaa恢复。如果能恢复到drop之前就可以了。

# at 3176        //位置
#180109 16:22:08 server id 1  end_log_pos 3292 CRC32 0x6f838f66         Query   thread_id=5     exec_time=0     error_code=0
SET TIMESTAMP=1515486128/*!*/;          //时间点
DROP TABLE `aaa` /* generated by server */
/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;

mysqlbinlog --stop-datetime="2018-01-09 16:49:56"  D:\MYSQL\mysql-5.7 | mysql -uroot -p   //截止到这个时间

mysqlbinlog --start-datetime="" d:/binlog/mylog.00001 | mysql -uroot -p  //从这个时间开始

mysqlbinlog --stop-position="3176"  d:/binlog/mylog.00001 | mysql -uroot -p   //截止到这个位置,就可以恢复了。

mysqlbinlog --stop-position="6500"  D:\MYSQL\mysql-5.7 | mysql -uroot -p


备份文件也要备份。一周一个全备份(mysqldump)。那么这个增量备份的过期时间大于等于7天。
复制代码


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/8252535.html,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值