救命:数据库误操作,如何恢复到上一步的状态

shuangren 2004-01-07 05:45:22
在查询分析器里不小心把一个字段的两千条记录全部改了名字,如何恢复原状?
...全文
807 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shuangren 2004-01-07
已经想到几个办法,不过都要等明天,thanks
回复
txlicenhe 2004-01-07
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


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

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

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


系统中有一个数据库DB1,系统正在使用的过程中,不小心删除了某表T1的数据
现我可以按照用完整备份文件加日志备份时间点TIME1恢复的方法来恢复该数据库

但问题出在该数据库一直还必须在使用中,所以除了你删除了数据的TA表外,其它的
表的数据你不能只是恢复到错误时间点TIME1处,因为,TIME1以后也有数据变化

解决这个问题有两个方法
1:用LOG EXEPLORE 可以轻松搞定

2:先建立一个数据库DB2,将完整备份文件恢复到DB2中,再用DB2中的T1数据来更新
DB1中的T1数据即可.


--查看备份信息
RESTORE FILELISTONLY FROM DISK ='C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\db1_backup'

--还原旧的备份
RESTORE DATABASE db2 FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\db1_backup' with replace,norecovery,
move 'db1_Data' to 'C:\Program Files\Microsoft SQL Server\MSSQL\data\db2_data.mdf',
move 'db1_Log' to 'C:\Program Files\Microsoft SQL Server\MSSQL\data\db2_log.ldf'

--还原数据日志到时间点
restore log db2 from disk='db_log_backup' with stopat='2003/4/22 9:57'

回复
shuangren 2004-01-07
对日志如何恢复?
这是这两天的日志

2004-01-06 23:59:07.18 backup 数据库已备份: 数据库: oa,创建日期(时间): 2003/08/27(13:58:14),转储的页数: 4194,第一个 LSN: 305:1086:1,
2004-01-07 15:12:07.89 spid69 启动数据库“UIPState”。
2004-01-07 15:14:26.60 spid69 启动数据库“UIPstore”。

好像昨天有备份,但是网管回家了,只能等到明天。我还有没有其它办法?
回复
1ssp 2004-01-07
有备份,恢复就行了.
如果没有备份
你只能靠日志文件了
备份你的日志,
打开日志
通过日志想办法一点一点恢复.
回复
OpenVMS 2004-01-07
如有上次的全盘备份
试试:
备份日志,
利用时间点恢复
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2004-01-07 05:45
社区公告
暂无公告