飞龙博客

飞龙博客 飞龙在天

误删SQL Server数据用LogExplorer恢复数据库技巧

feilong.org 修订于2008-03-16 08:38:29 267 次浏览

  参考一:恢复误删数据(SQL Server 2000)用Log Explorer不小心把客户那边的数据库中删了一千多条数据,之前又没有备份,很郁闷,后来在网上找到一工具(Log Explorer),让我躲过一劫。首先看一下界面:输入服务器地址,用户名及密码后点Connect,进入界面:在这里选择要恢复数据的数据库,选择UseOn-lineLog(假如你又备份文件的话就不需要用这个工具了,直接用SQL搞定了)。然后点Attach,进入界面:可以看到左边菜单中有很多功能,我们要恢复数据,首先要查看日志,找出误操作的那些日志记录,点Browse下的ViewLog:这样我们看到对于这个数据库的所有操作日志,我们可根据日期等条件来过滤出我们需要的:过滤日志之后,就到导出数据这一步,这个工具提供了两种方式,第一是导出到XML或HTML文件中(对应左边菜单中的ExportToFile),第二是直接在数据库中建新表,然后将数据导入(ExportToSQL)。我们来看一下导入到SQL的情况,首先点ExportToSQL选项:输入Database及Table的名称,然后Finish。这样在你数据的数据库中就会看到有这样几个表:TestTable TestTable_dll TestTable_details TestTable_Keys TestTable_Login其中恢复的数据就在TestTable_details表中,不过数据格式已经变了,你还需要写存储过程或用其它方法把它导入到原来的表中。由于大小已超过限制,没有将工具传上来,不过网上有很多地方提供下载,假如你需要,请留下Email。(网络人  asp教程网)参考资料: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 mastergosp_configure 'allow updates',1 reconfigure with overridegoupdate sysdatabases set status =32768 where name='置疑的数据库名'gosp_dboption '置疑的数据库名', 'single user', 'true'godbcc checkdb('置疑的数据库名')goupdate sysdatabases set status =28 where name='置疑的数据库名'gosp_configure 'allow updates', 0 reconfigure with overridegosp_dboption '置疑的数据库名', 'single user', 'false'go参考资料:http://blog.54master.com/html/54/t-124154.html  参考四:如何恢复PF中被误删除的记录?  日志(Journal)的概念相当于其它关系数据库的日志(LOG),通常如果事务型应用需要提交/回滚(Commit/Roll Back)时,数据库的表是需要日志的。另外,如果表上定义了触发器、参照完整性(Referential Integrity),表也需要日志的。ITS qingzhouDB2 for iSeries的表是可以有日志的,也可以无日志的。如果你用来创建的是Library而不是SQL的Collection,那么创建于这个Library的表默认是没有日志的。反之,如果你用来创建的是SQL的Collection,那么创建于这个Library的表默认是有日志的;默认的日志是QSQJRN,默认的日志接收器是QSQJRN0001,用户可以更改这些默认属性。以下就是通过日志来恢复误删除PF记录的一个事例,你可以用Navigator方式进行创建日志,如果习惯用5250仿真绿屏方式,也可以使用CL命令来创建日志,以下是以5250绿屏方式。1、创建日志接收器=> CRTJRNRCV JRNRCV(LIU/LIUJRNRCV) TEXT('Liu's Journal Receive')2、建立日志=> CRTJRN JRN(LIU/LIUJRN) JRNRCV(LIU/LIUJRNRCV) TEXT('liu's Journal')3、以LIU/EXECTL这个PF为例,以*BOTH方式启动日志=> STRJRNPF FILE(LIU/EXECTL) JRN(LIU/LIUJRN) IMAGES(*BOTH)为了利用JRN进行修改回退,JRN必须启用了参数"Journal images"的"*BOTH"选项,即除了缺省的"After Images"还要包含"Before Images".4、先查询目前记录情况,共75条记录。=> RUNQRY *N LIU/EXECTL5、测试:通过STRDFU删除LIU/EXECTL记录5条,然后再次查询情况,仅剩下70条记录。6、利用RMVJRNCHG命令恢复记录=> RMVJRNCHG JRN(LIU/LIUJRN) FILE((LIU/EXECTL))7、系统提示:Remove failed. 5 entries removed from *QDDS object.8、再次查询LIU/EXECTL情况,发觉被删除的记录已经恢复。如果想删除日志及日志接收器,需要按照如下步骤实施。1、先解除日志与PF文件的关联===> ENDJRNPF FILE(LIU/EXECTL) JRN(LIU/LIUJRN)2、删除日志===> DLTJRN JRN(LIU/LIUJRN)3、删除日志接收器===> DLTJRNRCV JRNRCV(LIU/LIUJRNRC参考资料:http://bbs.chinaunix.net/viewthread.php?tid=778391&extra=page%3D1%26amp%3Bfilter%3Ddigest参考五:数据误删,如何恢复?数据库中有一表,名为:info。本人用delete   info将表中的数据删除了,提前没有备份,请各位大虾帮忙,如何恢复啊?网友回答:pengdali:log   explorerlog   explorer 下载地址http://www.ttdown.com/softdown.asp?id=14562http://www.yiii.net/app/servlet/net.yiii.club.downloadservlet?information_id=i00023471解压缩密码:www.heibai.nethttp://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。步骤如下:1、查看日志  a、打开log explorer,选择菜单File-- >attach log fileb、在Log File Selection窗口中,填写连接到要恢复数据的数据库服务器机器名、数据库登录ID及密码,然后点击"Connect"按钮。c、若连接成功,则窗口左边树将显示命令菜单,这时我们点击Browser下的View Log命令,此时窗口右边则出现该数据库的Log。2、恢复数据库这时您只要选择您要恢复对事件点,右键点击选择"undo transation"命令,保存T-SQL代码,然后在查询分析器中执行该T-SQL代码注:删除后作了数据库备份,备份会截断日志。参考资料:http://bbs.51cto.com/thread-434144-1-1.html参考七:没有日志文件也能恢复数据库的两个方法  方法一  1.新建一个同名的数据库2.再停掉sql server(注意不要分离数据库)3.用原数据库的数据文件覆盖掉这个新建的数据库4.再重启sql server5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了.具体其它方法参考资料  http://tech.ccidnet.com/art/11217/20070820/1183667_1.html

更新网址:https://feilong.org/splserver-logexplorer-datebase-deleted-backup-restore
最初发布:20080316 08:38:29 feilong.org 于广州

加入收藏夹,查看更方便。

所在分类: 网站开发

新作:

旧文:

blog money bui 教程 echarts 教程 eclipse 教程 html css 教程 IT趋势 js 教程 json 教程 mysql 教程 nodejs npm 教程 onblog SQLite 教程 tutorials vscode 教程 wap网站 winpe启动盘 wordpress 主机推荐 书法 前端开发 博客 名企名网 国学 域名注册 常用软件 建站程序 操作系统 教程 数码 无线上网 日记 电子商务 电脑笔记本 网站 网站优化 网站开发 网站推广 网站策划 网络 虚拟现实 默认