数据库还能够修复吗?

愉快的登山者 2003-01-20 12:14:47
我的一个客户,上周六因为突然停电,来电后重起机器发现数据库出了毛病:
在企业管理器中看到,数据库成了:
公司数据库(suspect)
(no items)
数据库在近期内,也没有进行过备份。
有谁能知道,这种情况数据库还能够修复好吗?
怎样才能修复?
...全文
31 点赞 收藏 25
写回复
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-01-21
看看登山GG搞定了没有!
回复
bbksimon 2003-01-21
先copy备份,然后用sp_attach_db重建数据库,记住不要使用旧的ldf,新建一个同名的日志文件试试.可能数据能恢复
回复
xlhl 2003-01-21
关注
回复
j9988 2003-01-21
数据库出问题了,通过强行修改状态而恢复过来.再运行后果不得而知.

这个数据库文件就最好不要用了,不论怎么样导出到新的数据库文件中.再使用.
回复
linfuyong 2003-01-21
有趣
回复
tjan 2003-01-21
用 bcp 把数据弄出来吧
回复
用下列方法,在企业管理器中看到了数据库的内容:
sp_configure 'allow updates',1
go
reconfigure with override
go
use master
update sysdatabases set status =-32768 where name='公司数据库'
go
sp_configure 'allow updates',0
go
reconfigure with override
再用set status =4194308 ,将状态恢复。
数据库重起后,在企业管理器中,查看'公司数据库'的属性,只有数据文件,没有日志文件;
数据库虽然能看到,但是还是不能在应用中使用;
此时想备份此数据库,提示:
Server: Msg 3033, Level 16, State 1, Line 1
BACKUP DATABASE cannot be used on a database opened in emergency mode.
Server: Msg 3013, Level 16, State 1, Line 1
Backup or restore operation terminating abnormally.
下一步怎么使数据处于正常状态,各位高手,大侠们帮忙。

回复
SQL SERVER LOGS:
Starting up database '公司数据库'.
Opening file d:\MSSQL7\DATA\公司数据库.mdf.
Opening file d:\MSSQL7\DATA\公司数据库_log.ldf.
Bypassing recovery for database '公司数据库' because it is marked SUSPECT.
回复
CABO 2003-01-20
重启。。。?
试试磁盘检测什么的。。。
我也不知道。。。
吃过亏。。。
强烈关注。。。
回复
pengdali 2003-01-20
先脱机-->再联机试试!
关注!
回复
pengdali 2003-01-20
建同名数据库,覆盖!
估计也不行
服务器买ups!
回复
jin888888 2003-01-20
難說﹐可能要費一些心了。
看你用的是磁盤陣列還是單個硬盤了。
是用NT 或 Win2k﹐快用磁盤修復工具吧。
回复
y_zhi_yong 2003-01-20
用附加数据库可以吗?
回复
CSDNM 2003-01-20
以下方法应该是第一时间试的!


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

执行 sp_resetstatus。


用 ALTER DATABASE 向数据库添加一个数据文件或日志文件。


停止并重新启动 SQL Server。
用新的数据文件或日志文件所提供的额外空间,SQL Server 应该能完成数据库的恢复。

释放磁盘空间并且重新运行恢复操作。
sp_resetstatus 关闭数据库的置疑标志,但是原封不动地保持数据库的其它选项。



注意 只有在您的主要支持提供者指导下或有疑难解答建议的做法时,才可以使用 sp_resetstatus。否则,可能会损坏数据库。


由于该过程修改了系统表,系统管理员必须在创建这个过程前,启用系统表更新。要启用更新,使用下面的过程:

USE master
GO
sp_configure 'allow updates', 1
GO
RECONFIGURE WITH OVERRIDE
GO

过程创建后,立即禁用系统表更新:

sp_configure 'allow updates', 0
GO
RECONFIGURE WITH OVERRIDE
GO

只有系统管理员才能执行 sp_resetstatus。执行该过程后,立即关闭 SQL Server。

语法为:

sp_resetstatus database_name

下面的例子将关闭 PRODUCTION 数据库的置疑标志。

sp_resetstatus PRODUCTION



回复
pengdali 2003-01-20
有哪位大侠帮帮忙呀!
回复
pengdali 2003-01-20
错误 5013
严重级别 16
消息正文
不能向 master 和 model 数据库添加文件。ALTER DATABASE 已终止。

解释
当试图通过添加数据库文件扩展 master 或 model 数据库时发生该错误。

对策
仅在必要时才扩展 master 或 model 数据库。如果需要,master 数据库会自动增长。如果 master 文件驻留的磁盘驱动器没有空间,则要么删除其它文件以腾出更多的磁盘空间,要么以较大的磁盘驱动器替代该磁盘驱动器。如果需要扩展 model 数据库,请确保 model 数据文件当前所驻留的磁盘驱动器具有可用的磁盘空间。
回复
Billy_Chen28 2003-01-20
关注!
回复
chenchangfu 2003-01-20
可以用修复安装SQL SERVER 试试,当然先备份SQLSERVER 的DATA目录
回复
z5wjz 2003-01-20
这种情况我见过,很可能数据是找不回来了,所以最好使用备份来恢复,如果你想试试的话,可以试试我这种方法:
sp_configure 'allow updates',1
go
reconfigure with override
go
use master
update sysdatabases set status =-32768 where name='yourdbname'
go
sp_configure 'allow updates',0
go
reconfigure with override
然后重新进入SQLEM看看,这时你的库就应变成紧急状态了,看看这时候能否读出数据了,如果能读出的话基本上就可以修复.
回复
tjan 2003-01-20
新的错误?

我的方法行吗?
回复
发动态
发帖子
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
社区公告
暂无公告