怎么恢复mysql数据表里刚刚删除的东西

怎么恢复mysql数据表里刚刚删除的东西,第1张

1第一步,查询语句:selectfromtable_name;或selectfromtable_namewhere条件,如下图。

2第二步,增加语句或插入数据insertintotable_name(clus)values(values)实例如图

3修改数据:updatetablenamesetxx=xx,xxx=xxwherexxx=xxxandxxx=xxx,如下图。

4第四步,删除语句deletetable_namewhere条件实例如图。

sql

server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前提条件:

1

至少有一个误删除之前的数据库完全备份

2

数据库的恢复模式(recovery

mode)是“完整(full)”。

针对这两个前提条件,会有三种情况:

情况一、如果这两个前提条件都存在,通过sql语句只需三步就能恢复(参考文章),无需借助第三方工具。

a)

备份当前数据库的事务日志:backup

log

[数据库名]

to

disk=

n'备份文件名'

with

norecovery

b)

恢复一个误删除之前的完全备份:restore

database

[数据库名]

from

disk

=

n'完全备份文件名'

with

norecovery,

replace

c)

将数据库恢复至误删除之前的时间点:restore

log

[数据库]

from

disk

=

n'第一步的日志备份文件名'

with

stopat

=

n'误删除之前的时间点'

,

recovery

情况二、如果第1个前提条件不存在,第2个前提条件存在,需要借助第三方工具。

情况三、如果第2个前提条件不存在,无法恢复。所以,一定要将数据库恢复模式设置为“完整(full)”。

我现在面临的是第二种情况,需要找第三方工具。

开始找的是log

explorer

for

sql

server,不支持sql

server

2008。

后来找的是sql

log

rescue,也不支持sql

server

2008。

接着找到的是systools

sql

recovery,支持sql

server

2008,但需要购买,demo版并没有数据恢复功能。

最终在officerecoverycom上找到recovery

for

sql

server,虽然也是商业软件,需要购买,但demo版可以恢复数据,只要数据库文件不超过24gb。幸好朋友的数据库文件不大,用它完成了误删除数据的恢复。

下面分享一下用recovery

for

sql

server进行恢复的 *** 作步骤:

1

运行recovery

for

sql

server

2

点击菜单中的

file

>

recover,选择要恢复的数据库的数据文件(mdf)

3

next

>

next,进入

recovery

configuration

界面,选择custom(选择了custom才可以选择从日志中恢复误删除的数据)。

4

next

进入

recovery

options

窗口,选中

search

for

deleted

records,并选择要恢复的数据库的日志文件路径(log

file

path)。

5

next

并选择目标文件夹(destination

folder),用于存放恢复过程中生成的sql语句与bat文件。

6

点击start,开始恢复 *** 作(在上一步选择的目标文件夹中生成相应的sql文件与bat文件),然后,出现

sql

server

database

creation

utility

窗口。

7

next,选择被恢复数据存放的目标数据库。

8

next,

选择

import

availiable

data

from

both

database

and

log

files

9

next,

next,

然后就完成数据的恢复!

打开mysql的bin log功能:

对于mysql也是支持增量备份,但要打开mysql的bin log功能。

我们修改mysql的配置文件。linux是/etc/mycnf,windows是mysql的安装目录/myini

我们在[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 (000 sec)

mysql> delete from sn_test;

Query OK, 4 rows affected (000 sec)

mysql> select from sn_test;

Empty set (000 sec)

4、mysqlbinlog恢复数据

mysqlbinlog mysql-bin000006 > 1sql

查看1txt里面数据插入的纪录,把删除之前的数据进行恢复

mysqlbinlog mysql-bin000006 --start-position=2471 --stop-position=2876 | mysql -uroot -p123

重新登录,查看数据,OK,已经成功恢复了

对于数据库 *** 作,应该注意如下问题:

1、要常备份(全备,增量备份),出了问题可以最快恢复数据;

2、 *** 作数据库前,要把需要 *** 作的数据库或者表dump出来;

3、需要把bin-log打开,就算没有做上面的两步,也可以通过日志恢复数据

以上就是关于怎么恢复mysql数据表里刚刚删除的东西全部的内容,包括:怎么恢复mysql数据表里刚刚删除的东西、sql数据库删除了怎么恢复数据、数据库中的数据误删,又没有进行备份,怎样恢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9382847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存