首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

mysql数据恢返工具

2012-07-15 
mysql数据恢复工具最近一星期全在捣鼓mysql数据恢复,那个头大啊…………?网上找了找资料说使用mysqlbinlog 可

mysql数据恢复工具

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

?

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

?

查询是否开启日志

?

show variables like 'log_bin';

?

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

?

下面就是恢复数据了

?

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

?

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

?

{mysqlhome}\bin>mysqlbinlog -?mysqlbinlog Ver 3.3 for Win32 at x86Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Dumps a MySQL binary log in a format usable for viewing or for piping tothe 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                       FALSEdebug-info                        FALSEdefault-auth                      (No default value)disable-log-bin                   FALSEforce-if-open                     TRUEforce-read                        FALSEhexdump                           FALSEhost                              (No default value)local-load                        (No default value)offset                            0plugin-dir                        (No default value)port                              6306read-from-remote-server           FALSEread-from-remote-master           (No default value)raw                               FALSEresult-file                       (No default value)server-id                         0set-charset                       (No default value)shared-memory-base-name           (No default value)short-form                        FALSEsocket                            (No default value)start-datetime                    (No default value)start-position                    4stop-datetime                     (No default value)stop-never                        FALSEstop-never-slave-server-id        65535stop-position                     18446744073709551615to-last-log                       FALSEuser                              (No default value)open-files-limit                  18432verify-binlog-checksum            FALSEbinlog-row-event-max-size         4294967040skip-gtids                        FALSEinclude-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’? 至今未得到解决 ,哪位如果处理过类似问题,还希望多多指教!!

?

?

?

热点排行