Windows环境MySql差异备份
前言
备份上一次的完全备份后发生变化的所有文件。
差异备份是指在一次全备份后到进行差异备份的这段时间内
对那些增加或者修改文件的备份。在进行恢复时,我们只需对第一次全量备份和最后一次差异备份进行恢复。
一、开启日志
开启mysql服务器的二进制的日志功能(修改mysql安装目录下的my.ini文件)
server_id = 1 --服务器的标志符
log-bin=mysql-bin --开启二进制日志功能
重启mysql服务。
二、全量备份
查看数据库内容,然后全量备份
mysql -uroot -p --protocol=tcp --host=localhost --port=3307
show databases;
user test;
show tables;
select * from student;
三、完全备份
读数据库进行完全备份
mysqldump -uroot -p --host=localhost --port=3307 --single-transaction --default-character-set=utf8 --hex-blob --flush-logs --master-data=2 --set-gtid-purged=off test> test.sql
四、添加内容并修改
在表里添加新内容,并修改内容
五、模拟误删除
模拟误删数据库,误删后要立即刷新二进制文件
drop database test;
在mysql安装目录下的data目录查看bin文件:
刷新创建新的二进制文件:
mysqladmin -uroot -p --protocol=tcp --host=localhost --port=3307 flush-logs
六、恢复完全备份
恢复完全备份(恢复时先把test手动新建一下,确保数据库里有这个数据库)
create database test charset utf8;
恢复备份:
mysql -uroot -p --host=localhost --port=3307 --default-character-set=utf8 test < test.sql
查看表student表时,发现只恢复了没有修改数据前的内容:
七、恢复回滚
恢复到没有误删之前的数据库
查看正在使用文件:
show master status;
show binlog events in 'mysql-bin.000053';
恢复到误删之前的数据库:
把mysql-bin.000053放到mysql安装目录下的bin目录下。
.\mysqlbinlog.exe --skip-gtids=true --stop-position=519 --database=test mysql-bin.000053 | mysql -uroot -p --protocol=tcp --host=localhost --port=3307
在到数据库里面去查看数据是否恢复到第一次完全备份前:
时间仓促,如有错误欢迎指出,欢迎在评论区讨论,如对您有帮助还请点个推荐、关注支持一下
作者:博客园 - 凉年技术
出处:http://www.cnblogs.com/xxhxs-21/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
若内容有侵犯您权益的地方,请公告栏处联系本人,本人定积极配合处理解决。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?