现象:Error 926 Severity Level 14 Error Message Text Database 'xx' cannot be opened - it has been marked SUSPECT by recover Explanation (1) 当你使用Transact_SQL命令操作这个数据库的数据时, 出现这个信息, 这是一个严重的错误, 如果你要使用这个数据库的数据, 必须改正这个错误. (2) 启动Backup Server, 后备master数据库 1>dump database master to "/usr/sybase/master.dup" 2>go (3) 用isql登录到ASE, 须用sa帐号 (本文以pubs2数据库为例) 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 如果得到(1 row affected),则 1>commit 2>go 否则 1>rollback 2>go (4)重新启动ASE. 注:ASE重新启动之后,当发现数据库本身存在不可恢复的问题时,如数据页损坏等,且没有完好的数据库备份,一定要用bcp...out备份用户数据库数据。 否则,按以下步骤继续操作: 用sa帐号注册到ASE. 1>begin tran 2>go 1>use master 2>go 1>update sysdatabases 2>set status=0 3>Where name="pubs2" 4>go 如果得到(1 row affected),则 1>commit 2>go 否则 1>rollback 2>go 1>sp_configure "allow updates" ,0 2>go (5)重新启动ASE. (6) 如果你的数据库原来有dboption(例如"select into","trunc log on chkpt"等), 你需要重新设置这些option. (7) 当数据库已经恢复可使用状态后,运行dbcc命令检查数据库的一致性。 -------------------------------------------------------------------------------------- 如果发现数据库不可恢复,则 1、通过BCP指令,将数据库中的所有数据BCP到文本文件中 2、然后再建立相同库表结构的数据库 3、将导出的数据再BCP回建立的数据库中 4、重新建立主键、索引 (8) 备份用户数据库 例如: 1>dump database pubs2 to "/usr/sybase/pubs2.dup"
2>go
事实上,我们很悲剧地遇到了第二种情况,使得恢复数据库的过程显得非常漫长。但是,庆幸的是:我们的数据没有发生丢失。