飞奔·慢行
===========================================================
mssql里利用事务日志来恢复update、delete、dts误操作引起的数据丢失或改变
===========================================================
方法一(只有 sysadmin 固定服务器角色的成员才能执行以下操作):

1如果误操作之前存在一个完全备份(或已有多个差异备份或增量备份),首先要做的事就是进行一次日志备份(如果为了不让日志文件变大而置trunc. log on chkpt.选项为1那就没有办法了)

backup log dbname to disk='filename'

执行后在你mssql目录的backup文件夹里就有一个文件,名叫:filename

2恢复一个完全备份,注意需要使用with norecovery,如果还有其他差异或增量备份,则逐个恢复。

restore database dbname from disk='filename' with norecovery

当然如果在恢复之前你mssql里的data文件夹里有同名的.mdf或.ldf文件,你要先执行sp_detach_db 'dbname',然后将同名的.mdf或.ldf文件剪切出data文件夹,不然会报错;或者你在restore database时用move参数,将物理文件(.mdf或.ldf)存放到不同的文件夹。

3恢复最后一个日志备份即刚做的日志备份,指定恢复时间点到误操作之前的时刻

restore log dbname from disk='filename'

with recovery, stopat='date_time'

这里的date_time时间格式用datetime格式。
 

当然,如果误操作是一些不记日志的操作比如truncate table,select into等操作,那么是无法利用上述方法来恢复数据的。

 
方法二:

用SQL Server Log explorer这样一个软件来逆操作。

kyle 发表于:2004.12.08 18:54 ::分类: ( dbms ) ::阅读:(708次) :: 评论 (0)

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)

 authimage


自我介绍
切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
博客统计...
Blog信息
网站链接...