如何恢复删掉的数据库数据(数据库数据delete删除了怎么恢复?)

发布日期:2023-02-17 08:10:44   浏览量 :69
发布日期:2023-02-17 08:10:44  
69

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

如何恢复删掉的数据库数据(数据库数据delete删除了怎么恢复?)

一、数据库数据delete删除了怎么恢复?
偶尔要做 DB 维护,这是一点点经验。不要走神。

不听歌,不聊天,不吃东西,不喝饮料,头脑清醒,知道自己在做什么,要做什么。

写出步骤。

连接到哪个数据库,ip是什么,运行什么命令,先做什么,后做什么,出了问题怎么roll back,我知道你都懂,但要写出来,不要相信自己的记忆。

在测试环境验证。拿来写好的步骤,在测试环境中跑一遍,一半以上的可能会发现问题,然后再修改步骤,不要直接在产品环境中跑。

delete 和 update 前,先查询,用同样的 where 语句 select,至少知道有多少记录会被影响到。

drop 和 truncate 之前,检查三遍,连接的是不是正确的数据库。一次只连接一个DB,不要开几个窗口,有的连测试,有的连产品,或早或晚,你会出错。

备份,备份,备份。

二、误删除了数据库的数据文件,而且没有备份,怎样恢复?
打开mysql的bin log功能:对于mysql也是支持增量备份,但要打开mysql的bin log功能。我们修改mysql的配置文件。linux是/etc/myf,windows是mysql的安装目录/my.ini我们在[mysqld]下面加上log-bin一行代码,如下面。[mysqld]log-bin=mysql-bin复制代码加完后重起mysql即可。某客户更新数据的时候,误删了数据库的内容,因为数据库做了主从,但是没有做备份(备份很重要啊!)幸好开启了bin-log,之后只好把整个日志的记录拿回来本地进行恢复。之后自己也做了一个简单的测试,对数据进行恢复,具体如下:

1、新建一个表CREATE TABLE `lynn`.`sn_test` ( `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL , `age` INT( 3 ) NOT NULL ) ENGINE = MYISAM;

2、插入多条数据INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn1', '1');INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn2', '2'); INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn3', '3'); INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn4', '4');

3、查看数据并删除mysql> select * from sn_test; ------- ----- | name | age | --------- --- | lynn1 | 1 || lynn2 | 2 || lynn3 | 3 || lynn4 | 4 | --------- ----- 4 rows in set (0.00 sec)mysql> delete from sn_test;Query OK, 4 rows affected (0.00 sec)mysql> select * from sn_test;Empty set (0.00 sec)4、mysqlbinlog恢复数据mysqlbinlog mysql-bin.000006 > 1.sql查看1.txt里面数据插入的纪录,把删除之前的数据进行恢复mysqlbinlog mysql-bin.000006 --start-position=2471 --stop-position=2876 | mysql -uroot -p123重新登录,查看数据,OK,已经成功恢复了对于数据库操作,应该注意如下问题

1、要常备份(全备,增量备份),出了问题可以最快恢复数据;2、操作数据库前,要把需要操作的数据库或者表dump出来;3、需要把bin-log打开,就算没有做上面的两步,也可以通过日志恢复数据
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部