由于误操作(truncate)删除,需要做单表恢复,可能用到以下命令

1.mysqldump(从备份中恢复数据到某非生产机器),用mysqldump导出

mysqldump -uroot --no-create-info --no-create-db --disable-keys -p db_cube dm_multiple_res_sj > dm_multiple_res_sj_20131125.sql

2.mysql(scp复制到master主机),恢复

mysql -uroot --database=bg -p <dm_multiple_res_sj_20131125.sql

3.从binlog中找出truncate点之前的以及备份点之后的数据

--start-position

--stop-position

--start-datetime

--stop-datetime

--database

-vv

用grep过滤表结果之后,记得给所有行后面加上断句;

sed -i 's/$/;/' a.txt

4.注意事项,如果binlog里面有base64过的sql,则可能丢失数据(由于开启了binlog_format=row 或者是mixed)

mysqlbinlog --no-defaults --base64-output=decode-rows -v -v