加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

update语句更新时我忘了限制条件了?更新了所有纪录?有办法恢复吗

发布时间:2020-12-12 02:22:48 所属栏目:MySql教程 来源:网络整理
导读:用第三方工具 Log Explorer 3.2 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 Log Explorer

用第三方工具

Log Explorer 3.2

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

Log Explorer for SQL Server v4.0.2
http://js.fixdown.com/soft/8324.htm

注册机产生的是注册码,是两个

用解压缩密码解开后,压缩包里也有一个注册机的

打开log explorer file=>attach log file->选择服务器和登陆方式->connect->
选择数据库->attach->左面对话框中browse->view log->就可以看到log记录了
想恢复的话: 右键log记录 undo transation->选择保存文件名和路径->然后打开该文件到查询分析器里执行
T-sql代码就可以了

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

log explorer使用的几个问题

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中修改的日志记录,所以无法做恢复.


3)
不要用SQL的备份功能备份,搞不好你的日志就破坏了.

正确的备份方法是:
停止SQL服务,复制数据文件及日志文件进行文件备份.

然后启动SQL服务,用log explorer恢复数据


--------------------------------------------------------------------------------------
怎么样用数据库日志文件恢复数据库?
1:在企业管理器中恢复 ?
2:用sql语句恢复 ?
3:other ?
--------------------------------------------------------------- ?
?
用数据库日志文件恢复数据库 ?
必需是在有完整備份的基礎上進行的 ? ? ?
?
?
1:在企业管理器中恢复: ?
? ?所有工作中有一個retore ?database ?菜單 ?
? ?先進行完整備份數據的恢復 ?
? ?如果有差異備份可以同事恢復 ?
?
? ? ?然後再進行日志備份的數據恢復,選擇到某個時間進行恢復即可恢復到該時間點的數據。 ?
?
2:SQL ?
? ?restore ?database ?res ?from ?disk='res.bak' ? ?with ?norecovery ? ?(完整備份的恢復) ?
RESTORE ?log ?res ?from ?disk='restran.bak' ? ?with ?stopat='2002/10/18 ?16:00' ?
?
?
?
--------------------------------------------------------------- ?
?
我上面說的就是可以將數據庫恢復到某時間之前啊 ?
?
前提是你必需有完整備份 ?
如果你的完整備份是早上8:00做的 ?
然後你在12:00做了一次日志備份 ?
用以上語句你就可以恢復到8:00--12:00任何一個時刻的數據 ?
?
?
光有日志備份是沒有用的 ?
我想除非微軟的人自己才可以 ?
?
?
--------------------------------------------------------------- ?
?
恢复之前,要将DATABASE配置成"SINGLE ?USE ?" ?
USE ?MASTER ?
GO ?
SP_DBOPTION ?'RES','single ?user',true ?
go ?
restore ?database ?res ?from ?disk='res.bak' ? ?with ?norecovery ?--(完整備份的恢復) ?
go ?
RESTORE ?log ?res ?from ?disk='restran.bak' ? ?with ?stopat='2002/10/18 ?16:00' ?
go ?
SP_DBOPTION ?'RES',false ?
go ?
?
--------------------------------------------------------------- ?
?
我們來模擬一下好嗎 ?
假如每天早上8:00我們會為sql做一個完整備份 ?
中午12:00時候,你不小心將一個table的數據給幹掉了 ?
?
這個時候如果你隻是用8:00做的完整備份去恢復的話 ?
你隻能將數據恢復到8:00時候的數據,而8:00後的數據都將丟失 ?
?
但是如果你在12:00 ?馬上做一個日志備份 ?
這個時候你先用8:00 ?時候的完整備份做恢復 ?
然後又用日志備份去恢復8:00之後的數據 ?
?
假如你是12:00誤刪了數據, ?
你可以用stopat=''2002/11/8 ?11:59' ?的日志恢復方法 ?
將數據恢復到11:59的狀態 ?
?
而11:59的時候,你還沒有誤刪數據 ?
這正是我們要的效果

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读