如何从SQL SERVER中恢复被删除的表

如何从SQL SERVER中恢复被删除的表,第1张

SQL Server2008 数据库误删除数据的恢复方法分享用Recovery for SQL Server进行恢复的 *** 作步骤:

运行Recovery for SQL Server

点击菜单中的 File > Recover,选择要恢复的数据库的数据文件(mdf)

Next > Next,进入 Recovery Configuration 界面,选择Custom(选择了Custom才可以选择从日志中恢复误删除的数据)。

Next 进入 Recovery options 窗口,选中 Search for deleted records,并选择要恢复的数据库的日志文件路径(log file path)。

Next 并选择目标文件夹(Destination folder),用于存放恢复过程中生成的SQL语句与bat文件。

点击Start,开始恢复 *** 作(在上一步选择的目标文件夹中生成相应的SQL文件与Bat文件),然后,出现 SQL Server Database Creation Utility 窗口。

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

Next, 选择 Import availiable data from both database and log files

Next, Next, 然后就完成数据的恢复!

情况1、如果你有该库的整体备份或对这个表的单独备份,那么也许可以恢复。可以将最新的备份恢复到一个备用的服务器上,导出那表的内容,完成恢复

情况2、如果没有任何备份,那就基本没戏了。一般删除表的 *** 作是drop table,日志中不会记录删除具体行数的记录。表所对应目录下的文件已经被删除(innodb独立表空间,单表归为一文件)。同样的情况适用于myisam数据库引擎,对应的myd/myi/frm文件均被删除。这不像windows还有垃圾箱,是不可逆的 *** 作

请使用 Oracle Database 10g 中的闪回表特性,它使得被删除表的恢复过程如同执行几条语句一样简单。让我们来看该特性是如何工作的。

删除那个表!

首先,让我们查看当前模式中的表。

SQL> select from tab;

TNAME

TABTYPE

CLUSTERID

--------------------- - -- -- --- ------

RECYCLETEST

TABLE

现在,我们意外地删除了该表:

SQL> drop table recycletest;

Table dropped

现在让我们来查看该表的状态。

SQL> select from tab;

TNAME

如何恢复被delete/update的数据

*** 作步骤  

1 连接到被删除数据库的Db

打开log explorer  选择  "file"->"attach log file"->选择服务器和登陆方式->"connect"->选择"数据库"->"attach"

2   查看日志

在左面 *** 作项目的对话框中选择"browse"项目->"view log"->就可以看到当前的Log记录了

3   恢复数据

右键某一条log记录,选择"undo transation"->"选择保存文件名和路径"->然后打开该文件到查询分析器里执行

T-sql代码就可以了

例如: 如果log是delete table where 的话,生成的文件代码就是insert table 

1 找个别的机器安装个同版本的mysql或从已安装同版本的其他机器上(非同版本的也可以试下):

拷贝 mysql/data/mysql 目录到你的mysql/data/ 下吧

2 试着启动mysql服务,如果能启动了,理论上应该丢失的只有用户、授权等一些系统信息,不影响你的使用的数据;

如果不能启动,看错误日志,争取启动了。

3 赶紧把数据备份一份出来,重新把所有库(只是你后来创建的业务相关的库,不包括mysql库)都删了,重新导入一遍。理论上不这样也可以,但只是非生产重要的环境下。

4 重新做用户授权。

SQL

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

1

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

2

数据库的恢复模式(Recovery

mode)是“完整(Full)”。

以下情况可以恢复数据:

1 innodb引擎表开启了事务,执行dml语句,比如delete、update、insert之类,并且没有提交即commit *** 作的话,可以执行rollback进行回滚恢复。如果是ddl *** 作,如drop、create、alter之类的 *** 作时无效的

2 在进行删除 *** 作之前有备份,比如mysqldump,物理备份数据文件之类的 *** 作,那么可以恢复到删除前的数据

3 如果你的删除 *** 作是直接对data下的文件进行删除,注意,不是粉碎文件 *** 作,那么你可以尝试用磁盘恢复软件来找回被误删的数据文件;

除以上情况,其他真的是没法恢复了,不过貌似很多公司号称能够恢复,要收费,具体他们怎么恢复我就不晓得了。

以上就是关于如何从SQL SERVER中恢复被删除的表全部的内容,包括:如何从SQL SERVER中恢复被删除的表、MySQL删除表怎么恢复、oracle数据库的表删了怎么恢复等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存