由于误操作(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