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

在《百度、阿里、腾讯如何承载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中通过二进制日志文件恢复数据的操作讲解完成,希望能帮助大家进步。

时间: 2024-10-11 04:39:22

MySql通过二进制日志文件恢复数据的相关文章

MYSQL使用二进制日志来恢复数据

mysqlbinlog工具的使用,大家可以看MySQL的帮助手册.里面有详细的用, 在这个例子中,重点是--start-position参数和--stop-position参数的使用. ·--start-position=N 从二进制日志中第个位置等于N参量时的事件开始读. ·--stop-position=N 从二进制日志中第个位置等于和大于N参量时的事件起停止读. OK,现在开始,要启动二进制日志记录,要先在my.cnf / my.ini文件的mysqld里添加 log-bin=日志名 在这

实验:模拟场景中误删除mysql数据库表,然后使用全备份以及二进制日志文件恢复操作

一.实验环境: 1.准备两台虚拟机,一台用于破坏数据库,一台用于还原,两台在同一个网络 2.两台最小化安装centos 7系统,并直接yum安装maraidb数据库 3.准备一个测试数据库文件,例如,hellodb_innodb.mysql 测试库里面最少有两个表. 二.实验步骤: 1.开启数据库的二进制日志功能 vim /etc/my.cnf[mysqld] 下面加入log-bin 表示开启二进制日志功能 2.完全备份 mysqldump -A -F --master-data=2 --sin

mysql通过binlog日志来恢复数据

简介 在生产的过程中有这么一个业务场景:比如我在2016-11-19 09:30:00 通过mysqldump的方式备份了数据库,但是在2016-11-19 10:30:00的时候数据库崩溃了,如果通过我们的备份文件来恢复,也只能恢复到 2016-11-19 09:30:00 这个时间点,而9.30分到10:30分这一个小时的数据恢复不了,这时候我们可以通过mysql的binlog日志来恢复没有备份到的这一小时的数据. 1.开启mysql的binlog日志(默认情况下没有开启) #vim /et

mysql删除二进制日志文件

一.RESET MASTER 这个语句可以验证首次配置主机备机是否成功.步骤如下: 1. 启动master和 slave,开启replication (即 复制) 注:replication (复制) 也是mysql一个重要的技术 2.运行一些测试的语句看数据是否能够复制到 slave上面 3.当复制运行正常的话,就 stop slace 然后在slave上面执行 reset slave,去掉不需要的数据 4.在master上面执行reset master 去掉2中产生的数据 可以删除列于索引文

如何通过Mysql的二进制日志恢复数据库数据

经常有网站管理员因为各种原因和操作,导致网站数据误删,而且又没有做网站备份,结果不知所措,甚至给网站运营和盈利带来负面影响.所以本文我们将和大家一起分享学习下如何通过Mysql的二机制日志(binlog)来恢复数据. 系统环境: 操作系统:CentOS 6.5 X64  (虚拟机): WEB服务:PHP+Mysql+apache: 网站:为方便,直接在本地用蝉知系统搭建一个DEMO站点: 操作步骤: 1.开启binlog功能及基本操作: 2.往站点添加数据: 3.刷新binlog日志: 4.删除

mysql二进制日志文件详解

一.mysql的二进制日志文件 二.查看二进制日志文件信息: 1.查看二进制日志文件是否开启:show variables like 'log_bin'; 2.查看所有二进制日志文件的列表:show binary logs; 3.查看当前二进制日志文件的名称(最后一个):show master status; 4.获取最新日志文件命令:flush logs.会重新生成一个最新的日志文件. 5.清空当前二进制日志命令:reset master.每执行一次就删除当前的一个日志文件,每次删除一个文件.

MySQL使用二进制日志恢复数据库

一.二进制日志简介 MySQL有不同类型的日志,其中二进制文件记录了所有对数据库的修改,如果数据库因为操作不当或其他原因丢失了数据,可以通过二进制文件恢复. 在my.ini文件中设置了log-bin,重新启动MySQL后就开启了二进制日志.数据库每次重新启动(或执行flush logs命令)后,都会生成一个新的二进制日志,如在在my.ini文件中设置了 log-bin=F:\mysqllog\logbin 则数据库第一次启动会生成logbin.000001,第二次启动会生成logbin.0000

实战:mysql检查物理磁盘中的二进制日志文件是否有丢失

场景:有时候因为磁盘损坏或人为原因错误删除了磁盘中的二进制文件,导致mysql中的show binary logs记录和实际的物理磁盘中的二进制文件不匹配 #binlogdiff.sh #!/bin/sh #[email protected] #作用:mysql中show binary logs记录的二进制日志文件和实际的物理文件比较,检查 #磁盘中对应的二进制日志文件是否有丢失 source /usr/local/mysql/scripts/mysql_env.ini binlog_init=

mysql中如何开启binlog?开启二进制日志文件?binary log?

需求描述: 开启mysql的binlog即binary log日志功能,在此记录下. 版本描述: mysql版本:5.7.21-log 操作过程: 1.修改my.cnf并且将以下参数加入其中,重启mysql实例 server-id=11 #由于bug,所以需要设置该参数.否则无法启动mysql实例 log-bin = mysql-bin #其中mysql-bin代表的是basename就是生成二进制日志文件的前缀部分,默认的位置在datadir目录下,也可以设置为其他的路径 2.查看binlog