在《百度、阿里、腾讯如何承载PB级别大数据》的视频中了解到,大型网站的数据库每天都会定时的进行数据备份份。如果设置每天的0点进行数据备份,在两个数据备份周期期间数据库出现宕机情况,0点到宕机这个时间段的数据如何备份呢?在MySql中是通过数据库的二进制日志文件进行数据恢复的。
MySql的二进制日志文件默认是关闭的,需要我们在MySql根目录下的my.ini文件中设置为开启状态。设置方式为在[mysqld]节点下,添加log-bin=mysql binlog-do-db=spring,mysql为生成的二进制日志文件名,spring为需要记录日志的数据库,配置完成后重启MySql服务。下面我通过一个实例讲解如何通过二进制日志文件恢复数据。
1.在mysql中创建一个数据表,操作如下:
此时在MySql安装目录的data文件夹下会生成mysql.000001文件。
我们可以在Dos窗口通过MySql的mysqlbinlog命令查看日志文件,操作如下:
如果提示mysqlbinlog命令无法识别,则需要把MySql的bin路径(我的是:D:\Program Files\MySQL Server 5.6\bin)添加到环境变量的path变量中。
2.向test数据表插入一条语句,操作如下:
此时在MySql安装目录的data文件夹下会生成mysql.000002文件。
3.删除数据表test,操作如下:
此时在MySql安装目录的data文件夹下会生成mysql.000003文件。
4.用二进制文件恢复数据
通过show tables命令发现,test表已经不存在。
在dos窗口执行命令mysqlbinlog --no-defaults D:\mysql.000001 D:\mysql.000002 | mysql -uroot -proot恢复数据,,操作如下:
在mysql中再次执行show tables命令发现,test表恢复了。
到此在MySql中通过二进制日志文件恢复数据的操作讲解完成,希望能帮助大家进步。