发博文
乡下猫 LINUX技术博客

jabincn.blog.chinaunix.net

   
个人资料
  • 博客访问:293123
  • 博文数量:149
  • 博客积分:6185
  • 博客等级:准将
  • 注册时间:2010-03-15 16:39:45
订阅我的博客
  • 订阅
  • 订阅到鲜果
  • 订阅到抓虾
  • 订阅到Google
字体大小: 博文
分类: Mysql


网络上看到的文档,记录下。  
The second step was to restore the data from the time of the backup (which was about 10 hours ago) up to the point of the crash. The binary log was already spread across two files at that time. So I had to extract all the data manipulating statements for the database holding the crashed table from those two binlog files to a text file.

mysqlbinlog --database=db_name --start-position=102655866 mysql1-bin.000312 > restore.sql
mysqlbinlog --database=db_name mysql1-bin.000313 >> restore.sql
    The start-position is of course the position of the binlog at the time of the backup. Now I could do a search for all statements affecting the crashed table and feed them to mysql again.
    grep -B3 table_name restore.sql | egrep -v '^--$' > restore_table.sql
    emacs restore_table.sql
    mysql db_name < restore_table.sql
    As I knew that all those statements didn't contain any newlines I used a simple approach with grep (the -B3 giving me the lines with the meta information just before the actual statement), quickly checked the resulting file in a text editor (where I deleted the ALTER TABLE statement, too, to not have the crash happen again) and ran the queries.
    That's it. The table was now in exactly the same state as it was before the crash.

[发评论] 评论 重要提示:警惕虚假中奖信息!
  • 枫影谁用了 2009-09-22 10:37
    YES,你说得很对。
  • 枫影谁用了 2009-09-22 10:37
    YES,你说得很对。
  • 枫影谁用了 2009-09-22 10:37
    YES,你说得很对。
  • gladness 2009-09-18 11:36
    这样的恢复似乎不太严格,不能保证数据一致。 比如这张表的数据依赖了其他的表,比如: insert ... select ... 这样的语句,别的表的数据变化会影响到执行结果。
  • gladness 2009-09-18 11:36
    这样的恢复似乎不太严格,不能保证数据一致。 比如这张表的数据依赖了其他的表,比如: insert ... select ... 这样的语句,别的表的数据变化会影响到执行结果。
  • gladness 2009-09-18 11:36
    这样的恢复似乎不太严格,不能保证数据一致。 比如这张表的数据依赖了其他的表,比如: insert ... select ... 这样的语句,别的表的数据变化会影响到执行结果。
亲,您还没有登录,请[登录][注册]后再进行评论