MySql通过二进制日志文件恢复数据

来源:互联网 发布:迦太基 汉尼拔 知乎 编辑:程序博客网 时间:2024/04/30 10:53

   在《百度、阿里、腾讯如何承载PB级别大数据》的视频中了解到,大型网站的数据库每天都会定时的进行数据备份份。如果设置每天的0点进行数据备份,在两个数据备份周期期间数据库出现宕机情况,0点到宕机这个时间段的数据如何备份呢?在MySql中是通过数据库的二进制日志文件进行数据恢复的。

   MySql的二进制日志文件默认是关闭的,需要我们在MySql根目录下的my.ini文件中设置为开启状态。设置方式为在[mysqld]节点下,添加log-bin= D:\mysql-5.6.24\data\mysql binlog-do-db=dbbin,mysql为生成的二进制日志文件名,dbbin为需要记录日志的数据库,配置完成后重启MySql服务。下面我通过一个实例讲解如何通过二进制日志文件恢复数据。

   1.在mysql中创建一个数据表,操作如下:

   

   此时在MySql安装目录的data文件夹下会生成mysql.000001文件。

   我们可以在Dos窗口通过MySql的mysqlbinlog命令查看日志文件,操作如下:

   

   如果提示mysqlbinlog命令无法识别,则需要把MySql的bin路径(我的是:D:\mysql-5.6.24\bin)添加到path环境变量中。

   2.向test数据表插入一条语句,操作如下:

   

   此时在MySql安装目录的data文件夹下会生成新的日志文件。

   我们可以在Dos窗口通过MySql的mysqlbinlog命令查看日志文件,操作如下:

   

   3.删除数据表test,操作如下:

   

   此时在MySql安装目录的data文件夹下会生成新的日志文件。

   4.用二进制文件恢复数据

   通过show tables命令发现,test表已经不存在。

   在dos窗口执行命令mysqlbinlog --no-defaults D:\mysql-5.6.24\data\mysql.000001 | mysql -uroot -proot恢复数据。

   在mysql中再次执行show tables命令发现,test表恢复了。

   

   通过实验发现,在MySql中每次执行flush logs命令时,会在data目录生成一个新的日志文件,但此次的操作记录会记录在上一个日志文件中,所以当我们想通过日志文件查看本次操作记录时,应该查看上一个日志文件。

   到此在MySql中通过二进制日志文件恢复数据的操作讲解完成,希望能帮助大家进步。

0 0
原创粉丝点击