一、误删除了数据库的数据文件,而且没有备份,怎样恢复
打开mysql的binlog功能:对于mysql也是支持增量备份,但要打开mysql的binlog功能。我们修改mysql的配置文件。linux是/etc/my.cnf,windows是mysql的安装目录/my.ini我们在[mysqld]下面加上log-bin一行代码,如下面。[mysqld]log-bin=mysql-bin**代码加完后重起mysql即可。某客户更新数据的时候,误删了数据库的内容,因为数据库做了主从,但是没有做备份(备份很重要啊!)幸好开启了bin-log,之后只好把整个日志的记录拿回来本地进行恢复。之后自己也做了一个简单的测试,对数据进行恢复,具体如下:
1、新建一个表CREATETABLE`lynn`.`sn_test`(`name`VARCHAR(10)CHARACTERSETutf8COLLATEutf8_binNOTNULL,`age`INT(3)NOTNULL)ENGINE=MYISAM;
2、插入多条数据INSERTINTO`lynn`.`sn_test`(`name`,`age`)VALUES('lynn1','1');INSERTINTO`lynn`.`sn_test`(`name`,`age`)VALUES('lynn2','2');INSERTINTO`lynn`.`sn_test`(`name`,`age`)VALUES('lynn3','3');INSERTINTO`lynn`.`sn_test`(`name`,`age`)VALUES('lynn4','4');
3、查看数据并删除mysql>select*fromsn_test;+-------+-----+|name|age|+---------+---+|lynn1|1||lynn2|2||lynn3|3||lynn4|4|+---------+-----+4rowsinset(0.00sec)mysql>deletefromsn_test;QueryOK,4rowsaffected(0.00sec)mysql>select*fromsn_test;Emptyset(0.00sec)4、mysqlbinlog恢复数据mysqlbinlogmysql-bin.000006>1.sql查看1.txt里面数据插入的纪录,把删除之前的数据进行恢复mysqlbinlogmysql-bin.000006--start-position=2471--stop-position=2876|mysql-uroot-p123重新登录,查看数据,OK,已经成功恢复了对于数据库操作,应该注意如下问题:1、要常备份(全备,增量备份),出了问题可以最快恢复数据;2、操作数据库前,要把需要操作的数据库或者表dump出来;3、需要把bin-log打开,就算没有做上面的两步,也可以通过日志恢复数据
二、T-sql中的DELETE语句删除后怎么恢复数据
删除以后就彻底没了。所以一般情况下并不删,只是把要删的数据保存在另一个表里,查的时候查不到,但误删的时候还能还原回来
三、SQL数据被更新如何恢复
SQL数据被更新,那么就只能联系数据库管理员进行修复处理,因为只有他们才能恢复这些数据,如果不是他们负责维护数据库,那么就算你再怎么折腾也没用,因为根本无法恢复这些数据信息,所以一定要注意这点才行。
四、sql主键删除怎么恢复
通过oracle提供的回闪功能,
如果是刚刚删除,那么有两方法:
首先用showparameterundo;命令查看当时的数据库参数undo_retention设置。
显示如下:
undo_managementstringAUTO
undo_retentioninteger10800
undo_suppress_error**ooleanFALSE
undo_tablespacestringUNDOTBS1
undo_retention(保持力),10800单位是秒。即3个小时。
修改默认的undo_retention参数设置:
ALTERSYSTEMSETundo_retention=10800SCOPE=BOTH。
如果是删除一段时间了,但你有比较新的数据库备份,就通过备份来恢复。新建一个库,把备份还原上去,导出表数据,再导入到现在用的库中去。
如果删除一段时间了,并且无备份,但是数据在写入表的时候同时会写入其它一些关联表的话,那么就尝试通过写SQL语句从其它表取数据出来insert到被删除的表中。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!