【转帖】解决数据库被挂起的问题
现象:Error 926Severity Level 14
Error Message Text
Database 'xx' cannot be opened - it has been marked SUSPECT by recover Explanation
<P> (1) 当你使用Transact_SQL命令操作这个数据库的数据时, 出现这个信息, 这是一个严重的错误, 如果你要使用这个数据库的数据, 必须改正这个错误. </P>
<P> (2) 启动Backup Server, 后备master数据库<FONT face=隶书 color=#cc0000>(这一步很重要!)
</FONT>
1>dump database master to "/usr/sybase/master.dup"
2>go</P>
<P> (3) 用isql登录到SQL Server, 须用sa帐号 (本文以pubs2数据库为例)</P>
<P> 1>sp_configure "allow updates", 1
2>go
1>begin tran
2>go
1>use master
2>go
1>update sysdatabases
2>set status = -32768
3>Where name="pubs2"
4>go</P>
<P> 如果得到(1 row affected),则</P>
<P> 1>commit
2>go</P>
<P> 否则</P>
<P> 1>rollback
2>go</P>
<P> (4)重新启动SQL Server.
注:SQL Server重新启动之后,当发现数据库本身存在不可恢复的问题时,如数据页损坏等,且没有完好的数据库备份,一定要用bcp...out备份用户数据库数据。此时,以下步骤省略,并按照“如何删除坏的用户数据库”文章删除此数据库。之后重建此数据库,恢复备份。
否则,按以下步骤继续操作:
用sa帐号注册到SQL Server.
1>begin tran
2>go
1>use master
2>go
1>update sysdatabases
2>set status=0
3>Where name="pubs2"
4>go </P>
<P> 如果得到(1 row affected),则</P>
<P> 1>commit
2>go</P>
<P> 否则</P>
<P> 1>rollback
2>go</P>
<P> 1>sp_configure "allow updates" ,0
2>go </P>
<P> (5)重新启动SQL Server.</P>
<P> (6) 如果你的数据库原来有dboption(例如"select into","trunc log on chkpt"等), 你需要重新设置这些option.</P>
<P> (7) 当数据库已经恢复可使用状态后,运行dbcc命令检查数据库的一致性(参照“如何检查数据库中数据一致性”文章)</P>
<P> (8) 备份用户数据库</P>
<P> 例如:
1>dump database pubs2 to "/usr/sybase/pubs2.dup"
2>go</P>
<P></P>
页:
[1]