sybase高手请指点:急!!!

[复制链接]
查看11 | 回复2 | 2007-9-26 17:01:04 | 显示全部楼层 |阅读模式
我的sybase数据库 崩了 !键入一下命令
1>use sybsystemprocs
2> go
提示:
Msg 921, Level 14, State 1:
Line 2:
Database 'sybsystemprocs' has not been recovered yet - please wait and try again.
怎么办?
回复

使用道具 举报

千问 | 2007-9-26 17:01:04 | 显示全部楼层
查一查数据库的错误日志文件,是不是tempdb recover的时候失败了。
回复

使用道具 举报

千问 | 2007-9-26 17:01:04 | 显示全部楼层
启动时数据库不能回滚
解决方法:第1. 使用 install目录下 的 RUN 文件启动数据库服务器(如果服务已经启动,可跳过此步骤)
第2. 使用isql连接进入数据库服务器
isql -Usa -Ppasswd -S server_name
1>sp_configure 'allow update',1
2>go
1>use master
2>go
1>sp_helpdb DB_NAME
2>
记下此处查询出的数据库选项 (例如:select into/bulkcopy等)
1>begin tran
2>go
1>update sysdatabases set status = -32768 where name = 'DB_NAME' (注意:一定要加上数据库名称条件,切记,最好使用事务)
2>go
如果显示 (1 row affected),commit,否则 rollback
1>commit
2>go
1>shutdown with nowait
2>go
第3. 重新重复步骤1,启动数据库服务器,注意观察日志中是否显示 在 recovery database DB_NAME 时使用bypass状态,如果正常,这种情况下,数据库服务器应该能够完全启动
第4. 使用isql连接进入数据库服务器
isql -Usa -Ppasswd -S server_name
1>use master
2>go
1>dump tran DB_NAME with no_log ( dbcc rebuild_log(DBNAME,1,1) )
2>go
1>update sysdatabases set status = 0 where name = 'DB_NAME' (注意:一定要加上数据库名称条件,切记)
2>go
1>shutdown with nowait
2>go
第5. 重新重复步骤1,启动数据库服务器,注意观察日志中是否显示 recovery database DB_NAME 成功,DB_NAME数据库online
第6. 恢复数据库选项
使用isql连接进入数据库服务器
isql -Usa -Ppasswd -S server_name
1>use master
2>go
1>sp_dboption DB_NAME,'select into',true
2>go
1>use DB_NAME
2>go
1>checkpoint
2>go
如果有其他选项,依法处理
先试步骤四中的 dump tran with no_log 如果不行就用后面括号中那个命令 dbcc rebuild_log(DBNAME,1,1)
dbcc rebuild_log,如果还不行,只有恢复备份了
如果没有备份,只能在重新做1到3步骤,然后使用bcp将数据库中所有数据备份出来,然后重新创建数据库了。
强行截断日志的方法能够清除系统中日志的错误,让数据库正常online,但也有可能造成数据库中用户表甚至系统表的损坏,
所以建议在数据库正常online后进行全库的DBCC检查(比如dbcc checkdb、 dbcc checkalloc等)以确保正常运行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行