如何从日志中恢复数据(50分)

  • 主题发起人 主题发起人 question
  • 开始时间 开始时间
Q

question

Unregistered / Unconfirmed
GUEST, unregistred user!
使用 Microsoft SQL 7 ,如果我错误的执行了一系列的 Update
语句后(程序动态生成并执行),我如何将这些错误恢复回来?
 
用数据库事务. starttransaction, rollback, commit 等.
 
我的意思是在程序中已经发出了commit,
我想要的结果就是,有无办法,在 SQL 上
恢复指定日期时间前的数据
如现在是1999.08.18 08:35
我想将我的数据恢复到 1999.08.18 07:00 时候的.
(因为 07:00 后错误的执行了大量的 Update 语句)
 
也许看一下tempdb有用处
 
要解决你的问题有两个前提:
1.日志文件中记录着程序在这段时间内的所有操作.
2.日志文件的格式要搞清楚.
 
wuyi:未必,应该可以恢复的(学MCSE学的,没做过,呵呵)
如果是 RESOTORE 这和 BACKUP 策略有关吧?
BACKUP 整个数据库,BACKUP 数次 LOG,BACKUP 数据库...

每次 BACKUP 数据库
不过许多操作都不记LOG的,呵呵。
 
日志文件只是记录了你对系统进行了哪些操作,但对你数据库的操作确无干涉权,
譬如:你茫然间删除了一段数据,并更新了数据库,日后你发现你的错误,想恢复
数据库删除前的状态,这显然是不可能的!
倘若果真能行,则这个数据库就是一很大的Bug. 既然你能恢复数据库,那么别人
当然也可以了?
 
question,你的数据库有没有作过备份?如果有,可通过日志备份的恢复或数据库的
备份直接恢复过来,通过load transaction..../load database... with stopat
'1999 081807:00',具体可参考SQL的书中的解析。
 
我的数据库从来没有备份.
看来此题无解.
 
多人接受答案了。
 
后退
顶部