对于需要确保mysql数据库完整性的网站,mysql的二进制日志至关重要。比如你做了mysql数据库的主从备份,你认为这应该能确保mysql从数据库是最新的内容了,这的确没错,但有一种情况,比如你误删除了数据,或者被黑客入侵而清除了数据库,这时mysql从服务器也会跟主数据库同步,这是你不想看到的,但数据确实没了。但是如果你每天进行了数据库的完整备份,而且mysql的二进制日志还在的话,这将有可能恢复最新的数据。下面介绍方法。
1、开启二进制日志
在使用二进制日志恢复数据库时,请确保你已经开启二进制日志,检查my.cnf文件是否存在log-bin=mysql-bin。
2、定期完整备份
你还需要间隔一定的时间做数据库的完整备份,只有这样你才有可能快速的恢复最新数据。
mysqldump --opt -uroot -p --skip-lock-tables databasename>databasename.sql
3、查看备份时间
查看你备份的时间,如databasename.sql,取最后一行:-- Dump completed on 2012-11-08 11:11:48。
tail -1 databasename.sql
4、导出二进制日志
暂时关闭网站,防止新数据写入,导出二进制日志:
mysqlbinlog mysql-bin.000001 -d databasename --start-datetime="2012-11-08 11:11:48" >binlog.sql
5、调整binlog.sql
编辑binlog.sql,删除误操作的语句。
6、导入数据
重建数据库databasename,导入databasename.sql,接着导入binlog.sql。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
相关文章
txt字符串指定长度换行2023-05-13
Nginx日志按天分割并定时清理脚本(无需重启Nginx)2018-04-16
截取指定时间段内svn的访问日志2016-12-09
推荐一个Linux分区恢复工具(Windows也能用)-Testdisk2016-08-13
MySQL字符串截取2015-06-26
MySQL将查询结果插入到其他数据表中2015-04-08
MySql按周,按月,按日分组统计数据2015-04-02
一个简单php+mysql快递单号扫码记录网页2015-03-30
解决mysql_connect(): The mysql extension is deprecated…use mysqli or PDO instead in2015-03-09
mysql搜索替换语句2015-03-03