`

mysql数据恢复工具

 
阅读更多

最近一星期全在捣鼓mysql数据恢复,那个头大啊…………

 

网上找了找资料说使用mysqlbinlog 可以恢复。就试了试。

 

查询是否开启日志

 

show variables like 'log_bin';

 

显示为on,恭喜你开启了日志

 

下面就是恢复数据了

 

在恢复前还是先了解下mysqlbinlog的使用吧

 

在命令行中打开mysql的bin目录,执行mysqlbinlog -?

 

{mysqlhome}\bin>mysqlbinlog -?
mysqlbinlog Ver 3.3 for Win32 at x86
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Dumps a MySQL binary log in a format usable for viewing or for piping to
the mysql command line client.

Usage: mysqlbinlog [options] log-files
  -?, --help          Display this help and exit.
  --base64-output=name
                      Determine when the output statements should be
                      base64-encoded BINLOG statements: 'never' disables it and
                      works only for binlogs without row-based events;
                      'decode-rows' decodes row events into commented
                      pseudo-SQL statements if the --verbose option is also
                      given; 'auto' prints base64 only when necessary (i.e.,
                      for row-based events and format description events).  If
                      no --base64-output[=name] option is given at all, the
                      default is 'auto'.
  --bind-address=name IP address to bind to.
  --character-sets-dir=name
                      Directory for character set files.
  -d, --database=name List entries for just this database (local log only).
  --debug-check       Check memory and open file usage at exit .
  --debug-info        Print some debug info at exit.
  --default-auth=name Default authentication client-side plugin to use.
  -D, --disable-log-bin
                      Disable binary log. This is useful, if you enabled
                      --to-last-log and are sending the output to the same
                      MySQL server. This way you could avoid an endless loop.
                      You would also like to use it when restoring after a
                      crash to avoid duplication of the statements you already
                      have. NOTE: you will need a SUPER privilege to use this
                      option.
  -F, --force-if-open Force if binlog was not closed properly.
                      (Defaults to on; use --skip-force-if-open to disable.)
  -f, --force-read    Force reading unknown binlog events.
  -H, --hexdump       Augment output with hexadecimal and ASCII event dump.
  -h, --host=name     Get the binlog from server.
  -l, --local-load=name
                      Prepare local temporary files for LOAD DATA INFILE in the
                      specified directory.
  -o, --offset=#      Skip the first N entries.
  -p, --password[=name]
                      Password to connect to remote server.
  --plugin-dir=name   Directory for client-side plugins.
  -P, --port=#        Port number to use for connection or 0 for default to, in
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
                      /etc/services, built-in default (3306).
  --protocol=name     The protocol to use for connection (tcp, socket, pipe,
                      memory).
  -R, --read-from-remote-server
                      Read binary logs from a MySQL server. This is an alias
                      for read-from-remote-master=BINLOG-DUMP-NON-GTIDS.
  --read-from-remote-master=name
                      Read binary logs from a MySQL server through the
                      COM_BINLOG_DUMP or COM_BINLOG_DUMP_GTID commands by
                      setting the option to either BINLOG-DUMP-NON-GTIDS or
                      BINLOG-DUMP-GTIDS, respectively. If
                      --read-from-remote-master=BINLOG-DUMP-GTIDS is combined
                      with --exclude-gtids, transactions can be filtered out on
                      the master avoiding unnecessary network traffic.
  --raw               Requires -R. Output raw binlog data instead of SQL
                      statements, output is to log files.
  -r, --result-file=name
                      Direct output to a given file. With --raw this is a
                      prefix for the file names.
  --server-id=#       Extract only binlog entries created by the server having
                      the given id.
  --set-charset=name  Add 'SET NAMES character_set' to the output.
  --shared-memory-base-name=name
                      Base name of shared memory.
  -s, --short-form    Just show regular queries: no extra info and no row-based
                      events. This is for testing only, and should not be used
                      in production systems. If you want to suppress
                      base64-output, consider using --base64-output=never
                      instead.
  -S, --socket=name   The socket file to use for connection.
  --start-datetime=name
                      Start reading the binlog at first event having a datetime
                      equal or posterior to the argument; the argument must be
                      a date and time in the local time zone, in any format
                      accepted by the MySQL server for DATETIME and TIMESTAMP
                      types, for example: 2004-12-25 11:25:56 (you should
                      probably use quotes for your shell to set it properly).
  -j, --start-position=#
                      Start reading the binlog at position N. Applies to the
                      first binlog passed on the command line.
  --stop-datetime=name
                      Stop reading the binlog at first event having a datetime
                      equal or posterior to the argument; the argument must be
                      a date and time in the local time zone, in any format
                      accepted by the MySQL server for DATETIME and TIMESTAMP
                      types, for example: 2004-12-25 11:25:56 (you should
                      probably use quotes for your shell to set it properly).
  --stop-never        Wait for more data from the server instead of stopping at
                      the end of the last log. Implicitly sets --to-last-log
                      but instead of stopping at the end of the last log it
                      continues to wait till the server disconnects.
  --stop-never-slave-server-id=#
                      The slave server ID used for stop-never
  --stop-position=#   Stop reading the binlog at position N. Applies to the
                      last binlog passed on the command line.
  -t, --to-last-log   Requires -R. Will not stop at the end of the requested
                      binlog but rather continue printing until the end of the
                      last binlog of the MySQL server. If you send the output
                      to the same MySQL server, that may lead to an endless
                      loop.
  -u, --user=name     Connect to the remote server as username.
  -v, --verbose       Reconstruct pseudo-SQL statements out of row events. -v
                      -v adds comments on column data types.
  -V, --version       Print version and exit.
  --open-files-limit=#
                      Used to reserve file descriptors for use by this program.
  -c, --verify-binlog-checksum
                      Verify checksum binlog events.
  --binlog-row-event-max-size=#
                      The maximum size of a row-based binary log event in
                      bytes. Rows will be grouped into events smaller than this
                      size if possible. This value must be a multiple of 256.
  --skip-gtids        Do not print Global Transaction Identifier information
                      (SET GTID_NEXT=... etc).
  --include-gtids=name
                      Print events whose Global Transaction Identifiers were
                      provided.
  --exclude-gtids=name
                      Print all events but those whose Global Transaction
                      Identifiers were provided.

Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- ----------------------------------------
base64-output                     (No default value)
bind-address                      (No default value)
character-sets-dir                (No default value)
database                          (No default value)
debug-check                       FALSE
debug-info                        FALSE
default-auth                      (No default value)
disable-log-bin                   FALSE
force-if-open                     TRUE
force-read                        FALSE
hexdump                           FALSE
host                              (No default value)
local-load                        (No default value)
offset                            0
plugin-dir                        (No default value)
port                              6306
read-from-remote-server           FALSE
read-from-remote-master           (No default value)
raw                               FALSE
result-file                       (No default value)
server-id                         0
set-charset                       (No default value)
shared-memory-base-name           (No default value)
short-form                        FALSE
socket                            (No default value)
start-datetime                    (No default value)
start-position                    4
stop-datetime                     (No default value)
stop-never                        FALSE
stop-never-slave-server-id        65535
stop-position                     18446744073709551615
to-last-log                       FALSE
user                              (No default value)
open-files-limit                  18432
verify-binlog-checksum            FALSE
binlog-row-event-max-size         4294967040
skip-gtids                        FALSE
include-gtids                     (No default value)
exclude-gtids                     (No default value)

 如果英文不好可以借助google翻译,有道翻译或直接在百度中找下相关资料即可这里给个参考

 

http://hi.baidu.com/cici_hust/blog/item/3d1d18ee08995a09fcfa3c1b.html

 

其实这篇文章说的很好了,就是排版上有点糟。

 

知道参数了 就可以恢复了

mysqlbinlog  --startdate=“”  日志目录/mysql-bin-000012 >mysql -uroot -p 数据库

 

恢复的详细介绍可参考

http://topic.csdn.net/u/20090608/20/e50feb34-0a07-4675-80d4-2eac35973286.html

 

当然参数可以根据需要自己添加

 

到处为sql( 其中-v -v 低版本是不支持的,需要5.1.18以上)

mysqlbinlog -uroot -p -v  -v -d 数据库的名称  日志目录/mysql-bin-000012 > sql.sql

 

 

但是由于使用的mysql数据库时间过长,备份日志不全,没办法就把日志中的删除语句改为了 蒲绒的sql插入语句

 

但是发现在处理大字段上出现了问题,在sql中大字段都是‘\x00\x00’形式

 

导入数据库时 报  Unkown  command ‘\x’  至今未得到解决 ,哪位如果处理过类似问题,还希望多多指教!!

 

 

 

分享到:
评论

相关推荐

    MySQL数据恢复软件-供大家学习研究参考

    当面临数据丢失或数据库损坏的情况时,专业的MySQL数据恢复软件能够帮助我们找回宝贵的信息。本软件"sa_mysql_recovery_v2.98.exe"显然是一个专为解决此类问题设计的工具,适用于学习和研究。 首先,我们要理解...

    北亚RAID6数据恢复软件 v2.1.zip

    RAID6数据恢复软件V2.1是一款RAID6数据恢复软件,完全支持整个RAID6在缺少两块磁盘后进行完整数据恢复。 该软件是一款功能强大的RAID6数据恢复软件,完全支持整个RAID6在缺少两块磁盘后进行完整数据恢复。 完美...

    免费mysql数据恢复工具

    根据mysql数据日志文件,自动生成对应的建表sql和数据恢复sql,可以对数据名和表明进行过滤。适用于设置为完整日志格式下的mysql数据库还原,包括误操作数据、数据库崩溃等多种情况下的数据库数据恢复。 ※※※※...

    Mysql8.0 数据库恢复工具

    文件级别数据库恢复工具软件,本软件适合于操作系统崩溃后将mysql数据目录拷贝出进行恢复,在恢复前需要使用之前备份的数据库结构新建空库,然后将还原文件的数据恢复到新库,目前只能恢复InnoDB引擎、MyISAM引擎 表...

    MySQL数据恢复

    总的来说,MySQL数据恢复涉及到一系列复杂的过程,包括备份策略的制定、恢复工具的使用以及具体操作的执行。理解这些知识点并实践其中的技巧,对于任何依赖MySQL存储关键数据的组织来说,都是至关重要的。通过学习和...

    mysql innodb恢复数据工具.rar

    这是我从网上找到的mysql/mariadb对innodb表进行数据恢复的工具,实现从innodb的数据库文件中恢复数据,用于实现下面情况:1、直接下载了innodb数据库的文件,而不是导出其数据,想恢复数据时(需要有完整的文件,...

    MySQL数据恢复的三种常用的方式

    MySQL 数据恢复是数据库管理中的一项重要任务,尤其是在遭遇意外数据丢失、硬件故障或软件错误时。以下是三种常用的数据恢复方式的详细说明: 1. **通过表备份的方式**: 当数据表因各种原因如误删除、软件故障或...

    mysql恢复数据常用方法

    ### MySQL 数据恢复方法详解 #### 一、引言 在MySQL数据库管理中,数据安全至关重要。即便是经验丰富的DBA也可能因误操作导致数据丢失。本文将详细介绍如何在MySQL环境下利用binlog进行数据恢复,这对于刚接触...

    mysql根据日志恢复数据详细步骤

    ### MySQL根据日志恢复数据详细步骤 #### 一、引言 MySQL作为一款广泛使用的开源关系型数据库管理系统,因其高效稳定、易于维护等特性而深受开发者喜爱...希望本文能够帮助读者更好地理解和掌握MySQL的数据恢复技巧。

    mysql数据库备份和恢复工具

    本文将深入探讨MySQL数据库的备份与恢复策略,并提供相关工具的使用指南。 一、MySQL备份的重要性 数据库备份是防止数据丢失的关键步骤。无论是系统故障、硬件损坏、恶意攻击还是人为错误,都有可能导致数据丢失。...

    mysql数据备份恢复

    在本篇中,我们将深入探讨 MySQL 的三种主要备份恢复模式,以及如何利用工具如 `innobackupex` 实现高效的数据保护。 一、全量备份 全量备份是最基础的备份方式,它会拷贝数据库的所有文件,包括数据表、日志文件等...

    MySQL基础数据生成工具

    9. **备份与恢复**:了解如何使用MySQL的备份和恢复机制,比如使用mysqldump工具进行数据导出,或者使用source命令导入数据。 10. **安全性**:学习如何设置用户权限,理解GRANT和REVOKE命令,以及如何创建和管理...

    MySQL日志和数据恢复

    然而,数据库系统难免会遇到问题,如意外的数据丢失、错误操作或系统崩溃等,这时MySQL的日志和数据恢复机制就显得尤为重要。本文将深入探讨MySQL中的日志类型以及如何利用这些日志进行数据恢复。 1. 错误日志 ...

    mysql数据字典导出工具.zip

    MySQL数据字典导出工具是专门用于MySQL数据库的管理和维护的一款实用程序,它允许用户方便地导出数据库的元数据,即数据字典信息。数据字典在数据库管理中起着至关重要的作用,因为它存储了关于数据库结构、表、列、...

    nbu&mysql备份恢复.docx

    NBU(NetBackup)是一款功能强大的备份恢复软件,而MySQL是一款流行的关系型数据库管理系统。本文将详细介绍如何使用NBU来备份和恢复MySQL数据库。 NBU备份mysql的优势 使用NBU备份mysql数据库可以提供多种优势,...

    MYSQL ibdata文件恢复工具 2.1

    MYSQL数据库碎片恢复工具,已经完工。专门针对MYSQL的ibdata1 引擎 编写,支持MYSQL 3 4 5 6版本,任意平台的IBDATA文件恢复。支持误删除 ,所在分区被格式化,支持黑客故意破坏等情况,自动侦测半页。提取合成。

    MySQL执行delete误删除数据恢复

    在MySQL数据库管理中,有时可能会不小心执行了DELETE命令,导致数据丢失。面对这种情况,有多种方法可以帮助恢复误删除的数据...同时,理解并熟悉如何利用MySQL的binlog系统进行数据恢复是每个数据库管理员必备的技能。

    mysql通过data文件夹恢复数据和存储过程的方法

    #### 二、MySQL数据恢复基础知识 1. **逻辑备份与物理备份**: - **逻辑备份**通常是使用`mysqldump`工具将整个数据库导出为SQL脚本文件。 - **物理备份**则是直接复制数据库文件到备份介质上,如使用`cp`命令...

    mysql数据导出工具

    "administrator-1.1.3-win.msi" 文件是一个针对Windows操作系统的MySQL数据导出工具,它提供了方便快捷的方式来处理数据库中的数据导出问题,特别是解决了SQL脚本可能出现的乱码问题。 MySQL数据库导出工具有以下几...

Global site tag (gtag.js) - Google Analytics