Mysql 二进制日志增量备份(windows)
1.二进制日志开启
修改Mysql 安装目录下的my.ini文件
在[mysqld] 下添加:
server-id = 1
log-bin =F:/mysql/logs/binlog.log //二进制日志存放文件
log-bin-index =F:/mysql/logs/binlog.index //二进制日志索引文件
binlog_format =Statement //格式 STATEMENT,ROW,MIXED
expire_logs_days=7//文件有效期
binlog-do-db=xmis_a//只记录某个数据库的二进制日志
2.mysqlbinlog 插件介绍
1> -start-datetime=datetime
从二进制日志中第1个日期时间等于或晚于datetime参量的事件开始读取。该值格式应符合DATETIME或TIMESTAMP数据类型。例如:
2>-stop-datetime=datetime
从二进制日志中第1个日期时间等于或晚于datetime参量的事件起停止读。·
3>-start-position=N
从二进制日志中第1个位置等于N参量时的事件开始读。
4>–stop-position=N
从二进制日志中第1个位置等于和大于N参量时的事件起停止读。
# at 123(开始位置)
#16 16:22:09 server id 1 end_log_pos 154(结束位置) CRC32 0xe3862612
5.输出二进制文件
mysqlbinlog --no-defaults 源二进制文件
6.导出二进制文件
mysqlbinlog --no-defaults 源二进制文件 > 目标文件
7.导入二进制文件
mysqlbinlog --no-defaults 源二进制文件 | mysql -u xx -p
按时间导入
mysqlbinlog --no-defaults --start-datetime=’xxxx’ --stop-datetime=’xxxx’ 源二进制文件 | mysql -u xx -p
按位置导入
mysqlbinlog --no-defaults --start-position=N1 --stop-position=N2 源二进制文件 | mysql -u xx -p
3.增量备份
增量备份的实现主要依赖完全备份+二进制日志。完全备份是数据库原有的数据,二进制日志是记录该数据库增删该等操作记录(查除外)
1>完全备份
mysqldump --single-transaction --flush-logs --master-data=2 > 备份文件
备份文件中会出现下列提示,它告诉我们,下次开始记录二进制的文件从binlog.000009开始
-- Position to start replication or point-in-time recovery from
--
-- CHANGE MASTER TO MASTER_LOG_FILE='binlog.000009', MASTER_LOG_POS=154;
--
2>恢复备份
1>> 先将完全备份的文件导入
mysql -u -xxx -p < 备份文件
2>>导入二进制文件(记录完全备份时,到当前时间,数据库所经历的增删改)
mysqlbinlog —database=’xmis’ 二进制文件 | mysql -u xx -p