上午上班后发现数据库不能使用,PB和advantage不能连接。报错:Error: 926,Database '***' cannot be opened. An earlier attempt at recovery marked it 'suspect'。按照公司的文档和网上查到的信息执行如下:
第一步:isql(sa身份)登录sybase
sp_configure "allow updates",1
go
update master..sysdatabases set status = -32768 where name = "database_name"
go
/where 子句不可丢,不然数据库将无法恢复/
shutdown with nowait
go
第二步:isql(sa身份)重新登录sybase
update master..sysdatabases set status =0 where name = "database_name"
go
sp_configure "allow updates",0
go
shutdown with nowait
go
第三步:isql(sa身份)重新登录sybase,就可以了。
执行完之后PB和advantage可以连接数据库,但响应速度很慢,tomcat和自动化系统客户端不能连接数据库,报错; Error: 7214,上网查了一下应该是数据库日志出现了错误,重建日志如下:
(1)赋予sa用户sybase_ts_role的角色
isql -Usa -P
1>sp_role "grant","sybase_ts_role",sa
2>go
1>quit
(2)将数据库置为"bypass recovery"状态
isql -Usa -P
1>sp_configure "allow updates",1
2>go
1>use master
2>go
1>update sysdatabases set status=-32768
2>where name="database_name"
3>go
1>shutdown with nowait
2>go
(3)rebuild数据库日志
重启Server
isql -Usa -P
1>use master
2>go
1>dbcc rebuild_log(database_name,1,1)
2>go
1>shutdown with nowait
2>go
(4)重启server
1>use master
2>go
1>update sysdatabases set status=0 where name="database_name"
2>go
1>sp_configure "allow updates",0
2>go
1>shutdown with nowait
2>go
(5)在重启server之后,如果数据库恢复正常,rebuild log工作将会成功完成,否则要恢复数据库备份,使用dump database或bcp命令。
数据库响应速度很慢的解决方法如下:
1.用下面命令看看这2个值设置到多少为好
sp_countmetadata "open objects" //最大打开对象
sp_countmetadata "open indexes" //最大索引
发现自己的测试库都是500,决定扩一下
2.用sp_configure 配置这2个参数
sp_configure 'number of open indexes',2500
go
sp_configure 'number of open objects',2500
go
3.重新启动服务器
由于自己的测试数据库昨天没有执行过特殊配置操作,只有今天系统第一次启动时太慢而强制关机了一次,网上介绍这种情况多是由于sybase执行任务时突然停电导致。