admin管理员组文章数量:1582038
点击上方SQL数据库开发,关注获取SQL视频教程
SQL专栏
SQL数据库基础知识汇总
SQL数据库高级知识汇总
经常有小伙伴遇到不小心误删除数据的问题,今天我们先来介绍一款工具,可以快速恢复被误删除的数据。它就是Log Explorer 4.2,可以点击文末的“阅读原文”获取该工具。
工具介绍Log Explorer主要用于对MS SQL Server的事务分析和数据恢复。可以浏览日志、导出数据、恢复被修改或者删除的数据(包括执行过update,delete,drop和truncate语句的表格)。一旦由于系统故障或者人为因素导致数据丢失,它能够提供在线快速的数据恢复,最大程度上保证恢复期间的其他事务不间断执行。
他可以支持SQLServer7.0和SQL Server2000以及SQL Server2005(注意Log Expolorer 4.2不支持SQL Server 2008及以上版本。2008及以上版本我们之后会告诉大家如何恢复)提取标准数据库的日志文件或者备份文件中的信息。
软件安装运行安装包内Intel文件夹内的Setup.exe文件,如图1-1
图1-1
可以选择安装客户端和服务器端,服务器端必选安装在服务器上。点击【下一步】如图1-2
图1-2
输入注册码,点击【下一步】如图1-3
图1-3
选择安装位置,点击【下一步】如图1-4
图1-4
选择要安装服务器端的计算机以及输入本地数据库的账号密码,点击【下一步】进行安装。完成后依次点击【开始】→【程序】→【Lumigent】→【Log Explorer for SQL Server】→【Log Explorer】打开Log Explorer如图1-5
图1-5
点击左边菜单栏中的【附加日志文件】或者点击【文件】→【附加日志文件】打开连接数据库窗口,如图1-6
图1-6
选择要连接的数据库及登录方式(数据库需安装Log Explorer服务器端),然后点击【连接】连接成功后会出现选择数据库界面,如图1-7
图1-7
选择要连接的数据库,然后选择要打开的日志,可以使用在线日志也可以使用备份日志文件,点【附加】附加成功后会出现如图1-8界面
图1-8
删除的恢复操作
先通过SQL语句在test数据库中新建一个表,此时表为8495行,如图2-1。执行delete语句进行删除,删除109行如图2-2
图2-1
图2-2
打开log explorer,并连接到test数据库,打开查看日志拉到最下面可以看到刚才删除操作的信息
如图2-3
右键单击该行选择撤销事务,会生成撤销事务的脚本,如图2-4.复制该脚本到查询分析器中,并执行结果如图2-5、2-6,数据完整的恢复了
图2-4
图2-5
图2-6
用上述方法同样可以恢复UPDATE,和INSERT引起的数据库改变
数据库表删除的恢复操作
执行如下删除语句如图3-1
图3-1
打开【查看DDL命令】点击【刷新】图标如图3-2
图3-2
找到删除表的记录并单击选定,然后点击下面的【挽救】成功后会显示如图3-3界面
图3-3
然后将通过【运行SQL命令】功能执行该脚本,成功执行后(失败为0)在查询分析器中就可以查到刚删除的表已经完全恢复如图3-4,3-5。
图3-4
图3-5
也可以通过【从备份恢复表】的功能来找回删除的表,在输入表名和选择备份的文件后点击【创建】就可生成恢复被删除表的脚本如图3-6
图3-6
常见问题1、对数据库做了完全差异和日志备份
备份时选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时
提示No log recorders found that match the filter,would you like to view unfiltered data
选择yes 就看不到刚才的记录了
如果不选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时,就能看到原来的日志
2、修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复
3、然后恢复备份,(注意:恢复是断开log explorer与数据库的连接,或连接到其他数据上,
否则会出现数据库正在使用无法恢复)
恢复完后,再打开log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data
选择yes 就看不到刚才在2中修改的日志记录,所以无法做恢复.
4、撤销UPDATE操作时生成的脚本是先删除更新的行然后再插入,所以要把跟该表相关的所有约束用nocheck暂时关闭后再执行脚本
5、数据的恢复越早越好这个软件的可靠性还是很高的,我试过update九万行数据,它都完全的把修改过的给撤销回来了
6、误删除表时用【查看DDL命令】中的【挽救】功能比其他方法更方便些
7、数据库较大时查询和恢复会很慢
8、数据无价,操作需谨慎!
每个日志记录包含一个操作代码,操作代码表示日志的操作
FORMAT_PAGE--写新分配数据页的表头
INSET_ROWS--在用户表或系统表插入行
DELETE_ROWS-从表里删除行
MODIFY_ROW--使用Update命令更新行
MODIFY_HEADER--SQLSERVER分配新数据页,初始化页表头
MODIFY_COLUMNS--使用Update命令更新行
DELTA_SYSIND--SYSINDEXES系统表被修改
DELETE_SPLIT--行移动到新物理页,并从原物理页删除这些行
FILE_HDR_MODIF--SQLSERVER增长数据文件大小
BEGIN_XACT--启动一个事务
COMMIT_XACT--提交一个事务
ABORT_XACT--回滚一个事务
MARK_SAVEPOINT--程序发布'SAVE TRANSACTION'命令
MARK_DLL--表结构被修改
BEGIN_CKPT--启动一个检查点
XACT_CKPT--在执行检查点时打开事务
END_CKPT--执行完检查点
SORT_BEGIN--创建索引时执行排序
SORT_END--创建索引时排序完成
CREATE_INDEX--创建一个索引
DROP_INDEX--删除一个索引
天气转冷了,小伙伴们注意防寒保暖呀!
有需要的可以点击“阅读原文”获取,提取码:ud1n
推荐阅读
(点击标题可跳转阅读)
技术交流请加QQ群:875156894
看完本文有收获?请转发分享给更多人
长按识别二维码,
回复进群,拉你进微信群
版权声明:本文标题:SQL Server如何恢复被误删除(Delete)的数据-工具篇 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1727893216a1136526.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论