当我恢复一个mysql表使用binlog时它会出错

时间:2016-03-21 05:14:18

标签: mysql

我使用truncate删除表格 但我想恢复数据使用binlog。 然后它发生错误,错误按摩显示为:“table_map类型的binlog语句前面没有格式描述binlog语句”

2 个答案:

答案 0 :(得分:0)

正常情况下,截断表之后无法获取数据,因为truncate语句首先删除表(保留相同的副本),然后创建相同的结构,这是删除所有数据的快速过程,但它不像删除哪个保留在binlog中的语句

但是如果你最近创建了这个表5天之前并且你保留了超过5天的binlogs那么你可以尝试过滤与该表相关的所有语句,直到truncate命令之前,然后你可以在服务器上重放这些语句

答案 1 :(得分:0)

<div class="comment"> <textarea class="form-control page_details" rows="5" id="text" placeholder="Detail here" name="details"></textarea> <button type="button" onclick="addBreak(this.previousElementSibling)">Generate</button> </div>

//如果有其他binlog,则将它们添加到bbs.sql

/mysql/bin/mysqlbinlog --database=bbs --start-date="2016-03-20 00:00:00" --stop-date="2016-03-21 9:00:00" /mysql/data/mysql-bin.000071 > bbs.sql

/mysql/bin/mysqlbinlog --database=bbs --start-date="2016-03-20 00:00:00" --stop-date="2016-03-21 9:00:00" /mysql/data/mysql-bin.000072 >> bbs.sql

//删除truncate sql

cat bbs.sql | grep 'comment' > comment.sql

//执行sql

vim comment.sql