数据库误删除如何恢复?在线等待......(分不是问题)

dqjia 2003-12-01 07:22:05
服务器:HP ML570 3块SCSI硬盘 做了RAID WIN2KSERVER NTFS
重做系统后误将E盘一数据库文件(MSSQL2000)删除 运行Easyrecovery Professional 6.0 "查找并恢复已删除文件" 扫描系统时Easyrecovery 终止退出.
用一普通pc则可以恢复数据库文件,但在附加数据库时提示此文件不是有效的数据库文件.
问:
一Easyrecovery professional 6.0 能否恢复服务器上误删除的文件?
二从普通PC上恢复的文件如何附加?
此数据非常重要,望高手给出解决办法,分不是问题.不要对我说表示同情
谢谢!
...全文
442 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2003-12-04
  • 打赏
  • 举报
回复
再不行就没办法啦.
zjcxc 2003-12-04
  • 打赏
  • 举报
回复
如果数据库不能用(置疑),参考下面的方法解决:

/*--重置置疑状态
1.系统方法:
如果 sql server 因为磁盘驱动器不再有可用空间,而不能完成数据库的恢复,
那么 microsoft® sql server™ 2000 会返回错误 1105
并且将 sysdatabases 中的 status 列设为置疑。按下面的步骤解决这个问题:

执行 sp_resetstatus。
语法为:
sp_resetstatus '数据库名'


用 alter database 向数据库添加一个数据文件或日志文件。

停止并重新启动 sql server。

用新的数据文件或日志文件所提供的额外空间,sql server 应该能完成数据库的恢复。

释放磁盘空间并且重新运行恢复操作。

sp_resetstatus 关闭数据库的置疑标志,但是原封不动地保持数据库的其它选项。
--*/

--2.手工重置置疑状态
use master
go
sp_configure 'allow updates',1 reconfigure with override
go
declare @dbname varchar(30)
set @dbname='你要处理的数据库名'

if @@trancount > 0
print '正在进行事务处理,操作不能进行'
else if suser_id()!=1
print '你不是系统管理员(sa),不能进行此操作'
else if not exists(select 1 from master..sysdatabases where name=@dbname)
print '你要操作的数据库不存在'
else if not exists(select 1 from master..sysdatabases where name= @dbname and status & 256 = 256)
print '你的数据库没有被置疑'
else
begin
begin tran
update master..sysdatabases set status = status ^ 256 where name = @dbname
if @@error != 0 or @@rowcount != 1
rollback tran
else
begin
commit tran
print '操作成功,请重新启动SQL'
end
end
go
sp_configure 'allow updates', 1 reconfigure with override
go
zjcxc 2003-12-04
  • 打赏
  • 举报
回复
二从普通PC上恢复的文件如何附加?

首先要确定SQL的版本要一致.

如果上面的要求已经满足.

新建一个同名数据库.

停止SQL服务器.

用你恢复过来的数据文件替换新建数据库的数据文件(日志文件也最好一齐替换)

再启动SQL

这时,应该数据库可以用了.

zjcxc 2003-12-04
  • 打赏
  • 举报
回复
试试用这个工具恢复数据文件

★ FinalData NT Standard 1.5

FinalData 可以回收在 Windows NT/2000/XP 中被误删的文件。
它还可以恢复你的数据,主引导记录(MBR),引导扇区,FAT。
它能找回其他类似工具所找不到的,安全,快速,专业!

汉化方法:

解压汉化后运行 Setup.exe 安装文件,选择相应目录安装。

注册码: NTP30028-0217-032664446762
Win9x/me: STD18121-4412-141872101238
WinNt/2000<1.0>: NTE92029-0278-065788817286
winnt/2000<1.5>: NTP30028-0217-032664446762
名称和公司随便填。
注意:该版本只能用于 Windows NT/2000/XP!

GOOD LUCK!!!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
本站★虚幻时空★正式承接各类商业汉化
有意者请来信详谈:ldrhan@21cn.com

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
吕达嵘 (ldr@bentium.net)
虚幻时空:http://unreally.yeah.net
汉化新世纪:http://hanhua.on.net.cn 成员网站

2002.5.7
littlepotato 2003-12-04
  • 打赏
  • 举报
回复
怎么有人连贴子都不看明白,就往上贴也不知道是那抄来的答案,人家是数据库文件被删除 了,不是数据库中的记录的删除了,logexplorer 有用么?
真不知道那么多三角是怎么来的
dqjia 2003-12-04
  • 打赏
  • 举报
回复
已经成功了,谢谢teaism!
dqjia 2003-12-04
  • 打赏
  • 举报
回复
终于搞定了现在结帖,先说说我用easyrecovery 的一些问题。
我在服务器上用easyrecovery扫描磁盘时经常意外中止,可能是软件的问题如果有朋友碰到这种情况多试几次就没问题了(NTFS下)。
谢谢csdn的朋友,谢谢teaism!

teaism 2003-12-04
  • 打赏
  • 举报
回复
今天好忙,没看到你的信息.
首先恭喜你恢复并附加成功,

你最好不要再用这个数据库了,因为恢复后果不得而知.
我有一回也是被人家在管理器内误删了.恢复后可以用.但过一段一看,自定义函数不能建了.
所以,你最好新建一个库,把有用的东西导入新库中,然后用新库.

我一般只要数据库有问题,不论是"置疑",还是其它情况,只要是强行恢复的.都不再用原数据库.
dqjia 2003-12-02
  • 打赏
  • 举报
回复
我晕,人呢?
teaism 2003-12-02
  • 打赏
  • 举报
回复
Easyrecovery professional 6.0
试试:只查找MDF文件,把它恢复过来,路径选其它相同格式的硬盘分区。
teaism 2003-12-02
  • 打赏
  • 举报
回复
一Easyrecovery professional 6.0 能否恢复服务器上误删除的文件?
   当然可以,我用过它。附加正常。普通PC。

“此文件不是有效的数据库文件”--就不知道了,也许你恢复错了。

Log Explorer可以恢复删除的数据库???我没用过,第一次听说。
zjcxc 2003-12-01
  • 打赏
  • 举报
回复
那没办法了.
dqjia 2003-12-01
  • 打赏
  • 举报
回复
日志文件也被删除了!
txlicenhe 2003-12-01
  • 打赏
  • 举报
回复


系统中有一个数据库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'
lvltt 2003-12-01
  • 打赏
  • 举报
回复
Log Explorer for SQL Server v3.3 特别版
www.chinaz.com


Log Explorer is the leading transaction analysis and data recovery solution for Microsoft SQL Server. By providing unprecedented access to the SQL Server transaction log, Log Explorer gives you the ability to understand and solve elusive database problems by browsing the transaction log, exporting data to create reports, and selectively recovering modified, deleted, dropped, or truncated data.


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

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

右键log记录 undo transation->选择保存文件名和路径->然后打开该文件到查询分析器里执行T-sql代码。。。

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

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧