不作不死,不小心使sqlyog导数据选错服务器。把生产机的数据全部删除了。可怕的数据没有做其他过多的备份,只是每天自动crontab 备份。该怎么办呢?头脑一片空白。快, 赶紧看看日备份有没有。马上切换到备份目录,喜出望外,每天生成的文件一个个都在。这个终于放下了心头大石。于是马上进行恢复操作。
记录执行错误的执行时间
查看日志文件情况
mysql>SHOW MASTER LOGS;
取最后一个 mysql-bin.000045日志文件,并查看一个它的相关事件
mysql>SHOW BINLOG EVENTS IN 'mysql-bin.000045'
使用FLUSH LOGS 切断最后日志文件的继续记录
mysql> FLUSH LOGS;
从每天备份的文件回到到现数据库
$mysql -uroot -p honda < /mysqlback/backdata/2023-02-01/mysql_gz_all_2023-02-01.sql
需要等一会
使用mysqlbinlog 从日志中取得缺少备份的数据并还原
$
./mysqlbinlog --no-defaults --database=mydata --start-datetime="2023-02-02 00:00:01" --stop-datetime="2023-02-02 14:30:00" /usr/local/mariadb/var/mysql-bin.000045 | mysql -uroot -p -v mydata
到此,数据已完全还原