不当心把客户那边的数据库中删了一千多条数据,以前又没有备份,很郁闷,后来在网上找到一工具(Log Explorer),让我躲过一劫。php
首先看一下界面:输入服务器地址,用户名及密码后点Connect,进入界面:在这里选择要恢复数据的数据库,选择UseOn-lineLog(假如你又备份文件的话就不须要用这个工具了,直接用SQL搞定了)。html
而后点Attach,进入界面:能够看到左边菜单中有不少功能,咱们要恢复数据,首先要查看日志,找出误操做的那些日志记录,点Browse下的ViewLog:sql
这样咱们看到对于这个数据库的全部操做日志,咱们可根据日期等条件来过滤出咱们须要的:数据库
过滤日志以后,就到导出数据这一步,这个工具提供了两种方式,第一是导出到XML或HTML文件中(对应左边菜单中的ExportToFile),第二是直接在数据库中建新表,而后将数据导入(ExportToSQL)。服务器
咱们来看一下导入到SQL的状况,首先点ExportToSQL选项:输入Database及Table的名称,而后Finish。网络
这样在你数据的数据库中就会看到有这样几个表:TestTable TestTable_dll TestTable_details TestTable_Keys TestTable_Loginapp
其中恢复的数据就在TestTable_details表中,不过数据格式已经变了,你还须要写存储过程或用其它方法把它导入到原来的表中。yii
因为大小已超过限制,没有将工具传上来,不过网上有不少地方提供下载,假如你须要,请留下Email。(网络人 asp教程网)ide
参考资料:http://www.knowsky.com/341437.html工具
参考二:误删数据状况下数据库的恢复
昨天公司发生一个灾难,日报系统SQLSERVER上的全部数据被一个冒失的家伙所有删除了。询问管理员,居然从没有作过备份。通过一翻查找,我在网上找到了一个很是有用的工具,能够将数据库的数据恢复到特定的时间点,固然前提条件是数据库文件.MDF与日志文件.LDF无缺。该工具是Lumigent公司的 Log Explorer,有SQLSERVER和ORACLE两个版本。 hexin_2000
用狗狗SEARCH,下载,安装使用步骤以下:
1)打开菜单上的 file=>attach log file->输入服务器和登录方式,点connect。
2)下一步选择要恢复的数据库,这一步有两个选项“Use on-line Log”和”use backup File”。由于公司的数据库从未作过备份,我就只选择了前者,点“attach”
3)在左面的列表中会出现许多新功能
Log Summary:日志摘要。
Load Analysis:日志分析,会提供当前.LDF中用户和TABLE的内容。
Browse->view Log:这个最重要,显示了步骤2)中加载的日志详细信息,若是你的数据被刚刚删除,右键log记录 undo transation->选择保存文件名和路径->而后打开该文件到查询分析器里执行T-sql代码就能够了。
View DDL Commands:这个能够看到执行过的DDL语句信息。
由于我这里数据库中的数据全没有了,因此我采用的是“Salvage Dropped/Truncated Data”,在“Table”中选择要恢复的表,选择恢复的时间,“Condition”条件选的是“Table was dropped” ;选择保存文件名和路径后点“Create”,就将该时间点该表的数据所有导出了。而且该文件还考虑了表的“自增列”问题。而后打开该文件到查询分析器里执行T-sql代码。
若是表上存在触发器,必定要将触发器先关掉。
该工具对于开发期间因为SQL语句不当误删误修改数据也很适用。
还有一点问题,加载的日志好象只包括了当前的日志,对于已经存档的没有加载。
参考资料:http://blog.tianya.cn/blogger/post_show.asp?BlogID=119560&PostID=1414115
参考三:
按下面的步骤处理:
1.新建一个同名的数据库
2.再停掉sqlserver服务(注意不要分离数据库);
3.用原数据库的数据文件覆盖掉这个新建的数据库;
4.再重启sqlserver服务;
5.此时打开企业管理器时会出现置疑,先无论,执行下面的语句(注意修改其中的数据库名);
6.完成后通常就能够访问数据库中的数据了。
这时,数据库自己通常还有问题,解决办法是:利用数据库的脚本建立一个新的数据库,而后经过DTS将数据导进去就好了。
use master
go
sp_configure ‘allow updates’,1 reconfigure with override
go
update sysdatabases set status =32768 where name=’置疑的数据库名’
go
sp_dboption ‘置疑的数据库名’, ’single user’, ‘true’
go
dbcc checkdb(’置疑的数据库名’)
go
update sysdatabases set status =28 where name=’置疑的数据库名’
go
sp_configure ‘allow updates’, 0 reconfigure with override
go
sp_dboption ‘置疑的数据库名’, ’single user’, ‘false’
go
参考资料:http://blog.54master.com/html/54/t-124154.html
参考四:如何恢复PF中被误删除的记录?
日志(Journal)的概念至关于其它关系数据库的日志(LOG),一般若是事务型应用须要提交/回滚(Commit/Roll Back)时,数据库的表是须要日志的。另外,若是表上定义了触发器、参照完整性(Referential Integrity),表也须要日志的。ITS qingzhou
DB2 for iSeries的表是能够有日志的,也能够无日志的。若是你用来建立的是Library而不是SQL的Collection,那么建立于这个Library的表默认是没有日志的。反之,若是你用来建立的是SQL的Collection,那么建立于这个Library的表默认是有日志的;默认的日志是QSQJRN,默认的日志接收器是QSQJRN0001,用户能够更改这些默认属性。
如下就是经过日志来恢复误删除PF记录的一个事例,你能够用Navigator方式进行建立日志,若是习惯用5250仿真绿屏方式,也可使用CL命令来建立日志,如下是以5250绿屏方式。
一、建立日志接收器
=> CRTJRNRCV JRNRCV(LIU/LIUJRNRCV) TEXT(’Liu’s Journal Receive’)
二、创建日志
=> CRTJRN JRN(LIU/LIUJRN) JRNRCV(LIU/LIUJRNRCV) TEXT(’liu’s Journal’)
三、以LIU/EXECTL这个PF为例,以*BOTH方式启动日志
=> STRJRNPF FILE(LIU/EXECTL) JRN(LIU/LIUJRN) IMAGES(*BOTH)
为了利用JRN进行修改回退,JRN必须启用了参数”Journal p_w_picpaths”的”*BOTH”选项,即除了缺省的”After Images”还要包含”Before Images”.
四、先查询目前记录状况,共75条记录。
=> RUNQRY *N LIU/EXECTL
五、测试:经过STRDFU删除LIU/EXECTL记录5条,而后再次查询状况,仅剩下70条记录。
六、利用RMVJRNCHG命令恢复记录
=> RMVJRNCHG JRN(LIU/LIUJRN) FILE((LIU/EXECTL))
七、系统提示:Remove failed. 5 entries removed from *QDDS object.
八、再次查询LIU/EXECTL状况,发觉被删除的记录已经恢复。
若是想删除日志及日志接收器,须要按照以下步骤实施。
一、先解除日志与PF文件的关联
===> ENDJRNPF FILE(LIU/EXECTL) JRN(LIU/LIUJRN)
二、删除日志
===> DLTJRN JRN(LIU/LIUJRN)
三、删除日志接收器
===> DLTJRNRCV JRNRCV(LIU/LIUJRNRC
参考资料:http://bbs.chinaunix.net/viewthread.php?tid=778391&extra=page%3D1%26amp%3Bfilter%3Ddigest
参考五:数据误删,如何恢复?
数据库中有一表,名为:info。本人用delete info将表中的数据删除了,提早没有备份,请各位大虾帮忙,如何恢复啊?
网友回答:pengdali:log explorer
log explorer 下载地址:http://www.ttdown.com/softdown.asp?id=14562
http://www.yiii.net/app/servlet/net.yiii.club.downloadservlet?information_id=i00023471
解压缩密码:www.heibai.net
http://www.ttdown.com/softview_8647.htm
注册机产生的是注册码,是两个。用解压缩密码解开后,压缩包里也有一个注册机的。
1. 打开log explorer file=>attach log file->选择服务器和登录方式->connect->
2. 选择数据库->attach->左面对话框中browse->view log->就能够看到log记录了。
3. 想恢复的话: 右键log记录 undo transation->选择保存文件名和路径->而后打开该文件到查询分析器里执行 t-sql代码就能够了。(?)
例如:若是log是delete、table、where…的话,生成的文件代码就是insert table ….
参考资料:http://www.hurun-food.com.cn/software/p708/A70887129.shtml
参考六:怎样把误删的表恢复?
使用Log Explorer恢复数据。用日志工具Log Explorer。步骤以下:
一、查看日志
a、打开log explorer,选择菜单File– >attach log file
b、在Log File Selection窗口中,填写链接到要恢复数据的数据库服务器机器名、数据库登陆ID及密码,而后点击”Connect”按钮。
c、若链接成功,则窗口左边树将显示命令菜单,这时咱们点击Browser下的View Log命令,此时窗口右边则出现该数据库的Log。
二、恢复数据库
这时您只要选择您要恢复对事件点,右键点击选择”undo transation”命令,保存T-SQL代码,而后在查询分析器中执行该T-SQL代码
注:删除后做了数据库备份,备份会截断日志。
参考资料:http://bbs.51cto.com/thread-434144-1-1.html
参考七:没有日志文件也能恢复数据库的两个方法
方法一
1.新建一个同名的数据库
2.再停掉sql server(注意不要分离数据库)
3.用原数据库的数据文件覆盖掉这个新建的数据库
4.再重启sql server
5.此时打开企业管理器时会出现置疑,先无论,执行下面的语句(注意修改其中的数据库名)
6.完成后通常就能够访问数据库中的数据了,这时,数据库自己通常还要问题,解决办法是,利用
数据库的脚本建立一个新的数据库,并将数据导进去就好了.
具体其它方法参考资料: http://tech.ccidnet.com/art/11217/20070820/1183667_1.html