进入数据库操作,难免会出现一些误操作。这时就需要我们对数据进行恢复。一下介绍一下如何将表中的内容删除后进行恢复的过程。

首先我们模拟一下实验环境:

将数据库安装好之后进入到/etc/my.cnf中

查看是否启用了日志功能(数据恢复是根据日志来进行恢复的。)

wKiom1j5m-7xNykPAABD0aH182Q173.jpg-wh_50

在此环境已经设置好了。

之后进入数据库中新建一个库命名未vianet_bss

进入库中并新建一个表命名为stb_active

create table stb_active (SERVER_ID char(5),SERVER_CODE char(10),SERVER_NAME char(20),SERVER_DESC char(10),STATE char(5));

然后插入几条数据

insert into可插入数据,之后表中出现几条数据后我们的数据创建成功。

wKioL1j5nZzSGyppAAB2FrqUejU496.jpg-wh_50

然后我们利用delete from stb_active where SERVER_ID=2我们将ID为2的内容给删除,待会将它恢复。

wKiom1j5nk2jRkasAACC1D49YHc973.jpg-wh_50

再次查看ID为2的内容已经没有了

之后我们利用ps -ef | grep mysql检查到MySQLdata的位置位于何处,mysql-bin是放于data目录之下的。

然后进入到data目录中找到最新的那条日志查看一下。当然是乱码的需要转换成.sql后可以看见内容。

mysqlbinlog -u root -p123.com mysql-bin.000006 > /opt/backup/4.sql

然后vim /opt/backup/4.sql

找到相应的时间段,我们是在什么时候将内容删除的。

然后找到刚才我们执行删除内容的命令

wKiom1j5n9azLQ9GAAA7we8cGnY165.jpg-wh_50

并将它删除掉,此时不能进行还原如果到这里你执行了还原的话会有数据重复。所以我们要将不是我们要还原的数据给删除掉。避免重复,但要保证和数据库里面的数据要一致。

以下是没有将有效的数据从日志中删除导致的结果

wKioL1j5oQeww3dFAAB_nypW1o0993.jpg-wh_50

之后我将这里面的数据全部删除最后重新导入一份数据进入数据恢复完成。

wKioL1j5oaGBXWwFAAB2nk2VtzA429.jpg-wh_50

此实验到此结束。

第一次发表写的不是太好,还望多指教。