`
7454103
  • 浏览: 130173 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

【收藏】mysql二进制日志文件恢复数据库

阅读更多

喜欢的在服务器或者数据库上直接操作的兄弟们你值得收藏下!不然你就“百撕不得骑jie ” (下联 你懂的!

                 -----(当然我也是在网上搜索的资料!自己测试了下!)

二进制日志的文件的作用

    mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句。如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所做的操作,再和数据库备份配合使用,即可再现用户操作,使数据库恢复。

二进制日志文件的弊端

二进制日志文件开启后,所有对数据库操作的记录均会被记录到此文件,

所以,当长时间开启之后,日志文件会变得很大,占用磁盘空间。

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

开启日志文件

mysql默认是不开启日志文件的功能的,需要我们手动开启。操作如下:

 

1、  打开mysql安装目录\my.iniwindows系统是my.ini文件,linuxmy.cnf文件)。

 

2、  找到[mysqld]这个标签,在此标签下面一行,添加语句:log-bin=binary-log。上面语句中,log-bin说明要开启二进制日志文件,binary-log是二进制日志文件的名字。

(测试的时候我设置的:log-bin=d:/mysql_log/logbin_ouyang.log)

 

3、  重启mysql服务。可以在mysql安装目录\data 文件夹下看到“binary-log.数字编号”文件,

   如binary-log.000001。以后每重启一次mysql服务,都会重新生成二进制日志文件,

   文件名中的数字编号依次递增。

(你的上一步给出的文件名,加了个序号 还有一个总的文件 index文件 如图1)

 

恢复数据库

使用日志文件恢复数据库必须要有一个数据库备份(只要是在二进制日志文件功能开启之后备份的就行)。恢复数据库时,可以通过时间恢复,也可以通过操作点恢复。

 

1、通过时间恢复方法如下:

如果我在2011-04-02 00:00:00时刻开启了二进制日志文件功能,并备份了数据库文件。且在2011-04-02 12:00:00数据库发生异常,需要恢复到2011-04-02 10:00:00。则操作如下:

l         用备份将数据库回复到2011-04-02 00:00:00时候的状态。

l         在命令行输入如下命令:

                   mysqlbinlog --stop-date="你想要恢复的时间"   日志文件的目录\binary-log.000001  | mysql -u root –p

                  (D:\mysql_log>mysqlbinlog logbin_ouyang.000007 --stop-date="2011-10-23 15:05:00"|mysql -uroot -proot)

 

这样,系统会自动执行从二进制日志有记录开始截止到2011-04-02 10:00:00,用户所做过的所有操作。与stop-date对应的,还有start-date属性,可以设定执行记录的开始时间。也可以两个属性都设置。

 

2、通过操作点恢复方法如下:

在命令行中输入mysqlbinlog D:\binary-log.000003 > D:\log.txt,执行后打开log.txt

查看里面语句,可以发现:在每个操作之前,都会有一个独特的编号,如下红字显示:

/*!*/;

# at 450 /*编号450*/

#110402 15:31:50 server id 1  end_log_pos 529          Query       thread_id=2     exec_time=0    error_code=0

SET TIMESTAMP=1301729510/*!*/;

DROP TABLE `jwc`

 

此编号随着操作数增多而变大。和时间一样是一个标记,通过操作点恢复的语句如下:

mysqlbinlog --stop-position="450" mysql安装目录\data\binary-log.000001  | mysql -u root –p

 

这样,系统会自动执行二进制日志中编号最低的语句到编号450语句。

stop-position对应的,还有start-position属性,可以设定执行记录的开始编号。

 

 

附:(你应该看看)

1.0       mysqlbinlog mysql自带的一个日志操作工具!

 

2.0       如果直接打开log文件 可能会是乱码,所以我们一般会:

      D:\mysql_log>mysqlbinlog logbin_ouyang.000003 >log_3.txt  复制下 然后用记事本打开!

   就可以清楚的看到 操作的编号了 或者说(行号)

 

3.0       如果发生了错误的操作!如果可以的话!你应该立马停止数据库!然后恢复数据!

 

4.0       如果只是去掉某一个语句,你可以选择恢复两次 ,如图:

  

 

    

     D:\mysql_log>mysqlbinlog logbin_ouyang.000009 --stop-position=10625|mysql -uroot

         -proot

      D:\mysql_log>mysqlbinlog logbin_ouyang.000009 --start-position=10843|mysql -uroo

          t –proot

5.0 如果发生 Could not read entry at offset 1478: Error in log format or read error. 类似的错误!

   请检查你的编号是否正确!注意这个编号 不是一些编辑器显示的那个行号哦,# at 450 /

经常delete update错了!所有给自己个文档!当然我也希望你永远的用不上这个文档 ! 周末愉快! (排版有的乱哈!多多包涵!)

2
5
分享到:
评论

相关推荐

    mysql二进制日志文件恢复数据库

     mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句。如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所做的操作,再和数据库备份配合...

    mysql-binlog二进制日志恢复

    MySQL 二进制日志恢复 MySQL 的二进制日志(binlog)是 MySQL server 的一个重要组件,记录了 MySQL 服务器的所有操作,包括 DML、DDL 等。二进制日志恢复是指从二进制日志中恢复数据的过程。本文将详细讲解 MySQL ...

    MySQL二进制日志查看工具

    MySQL二进制日志是数据库管理系统中用于记录所有更改数据的事件序列的一种机制,它对于数据库的备份、恢复以及故障排查至关重要。二进制日志查看工具则为开发者和DBA提供了一种方便的方式来分析、理解和操作这些日志...

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

    MySQL的二进制日志(Binary Log)是数据库系统中用于记录所有更改数据的SQL语句的一种机制,它对于数据库的恢复和复制至关重要。当数据意外丢失或需要回滚到某一特定时间点时,二进制日志就成为恢复数据的关键工具。...

    mysql重做2进制日志.doc

    在MySQL中,二进制日志通常以`.bin`或`.log`的格式存储,每个日志文件由一个唯一的文件号标识,例如`mysql-bin.000007`。当数据库发生故障或需要恢复到某个特定时间点时,可以通过以下步骤进行: 1. **恢复到备份点...

    mysqlbinlog二进制日志资料.pdf

    MySQL的二进制日志(Binary Log)是数据库系统中用于记录所有更改数据的SQL语句的重要工具,它对于数据库的备份、恢复以及故障排查至关重要。`mysqlbinlog`是MySQL提供的一款命令行实用程序,专门用于处理和解析二...

    mysqlbinlog二进制日志.pdf

    MySQL二进制日志文件是MySQL数据库中的一种日志文件,用于记录数据库的所有操作,包括增、删、改、查等操作。二进制日志文件的主要作用是用于数据库的备份和恢复。 mysqlbinlog是MySQL提供的一个工具,用于将二进制...

    基于Python实现用于解析和转换 MySQL 二进制日志(binlog)的工具源码

    MySQL二进制日志(Binary Log,简称binlog)是MySQL数据库系统中记录所有更改数据库数据的事件序列的重要工具,主要用于数据恢复、主从复制等场景。本篇将深入探讨如何利用Python语言来解析和转换MySQL的binlog,...

    mysql 二进制转换工具

    MySQL二进制转换工具主要涉及的是数据库管理和网络安全方面的技术,特别是与数据编码、文件传输以及权限提升相关的操作。在MySQL中,二进制格式通常用于存储和处理原始数据,如图像、音频或自定义文件,因为这些数据...

    mysql 二进制安装包

    MySQL二进制安装包是一种非源码编译的安装方式,它通常包含了预编译的二进制可执行文件,适合快速部署和配置MySQL数据库服务器。在Linux环境下,这种安装方式尤其常见,因为Linux发行版之间的库差异可能导致源码编译...

    从MySQL ROW二进制日志还原更新。Undelete-Mysql.zip

    MySQL的ROW格式二进制日志是数据库管理系统中用于记录所有数据库更改的一种重要工具,它在数据恢复场景中扮演着至关重要的角色。本教程将深入探讨如何利用Python来解析和利用这些日志来恢复被误删除的数据。 首先,...

    Go-GolangMySql二进制日志复制侦听器

    总结起来,“Go-Golang MySQL二进制日志复制侦听器”是一个强大的工具,它利用Golang的特性实现了对MySQL二进制日志的高效监听和处理。无论你是数据库管理员还是软件开发者,理解并掌握myreplication将有助于提升你...

    mysql数据库关闭二进制日志配置说明

    mysql数据库关闭二进制日志配置说明

    MySQL二进制日志(binlog)解析工具

    MySQL二进制日志(binlog)是数据库系统中一种重要的功能,用于记录所有改变数据库状态的事务。这种日志格式是二进制的,它包含了一种持久化数据库更改的方式,这对于数据恢复、主从复制和数据分析具有关键作用。在...

    MySQL数据库日志管理.ppt

    使用二进制日志还原数据库可以使用mysqlbinlog工具从指定的时间点开始恢复的数据。可以暂时停止二进制日志功能通过SET SQL_LOG_BIN语句。 错误日志 错误日志记录MySQL服务的启动、运行或停止MySQL服务时出现的问题...

    MySQL二进制日志:数据恢复的瑞士军刀

    MySQL是一个流行的开源关系型数据库管理系统(RDBMS),广泛用于Web应用程序的后端数据存储。它基于结构化查询语言(SQL)来管理数据,并且是LAMP(Linux, Apache, MySQL, PHP/Python/Perl)技术栈的一部分,这个...

    MySQL日志和数据恢复

    启用二进制日志需要在MySQL配置文件中设置`log-bin`选项。 3. 查询日志 (General Query Log) 查询日志记录了服务器接收到的所有SQL语句,包括成功执行的和失败的。这对于调试和性能分析非常有用,但因为会产生大量...

Global site tag (gtag.js) - Google Analytics