Sybase数据库作为一种关系型数据库系统,是一种典型的Unix,Windows,Linux平台上客户机/服务器(C/S)环境下的大型数据库系统。目前,Sybase数据库的最新版本是15.5,但用的最多的版本是11.9和12.5。在人民银行各中心支行中,Sybase数据库主要用于国库核算系统(Windows2000server+sybase11.9)、人事信息管理系统(Windows 2000server+sybase12.5)、支票影像系统外挂软件(Windows xp+sybasel2.5)、国际收支统计(SCO unix5.05+sybase11.9)、同城票据清算系统(red hatlinux5+sybase12.5)等。在日常的Sybase数据库维护过程作中,有时会遇到Sybase数据库出错的情况,现将工作中发现的典型问题及详细解决办法,介绍给大家。
为方面起见,假设Sybase数据库服务名为Sybase,数据库名为testdb,一个系统用户及testdb数据库用户名为testuser,为执行sql脚本,Windows系统要进2k.Sybase的sql advantage的窗口,Unix系统通过执行isql—Usa—Pxxx-Ssybase,进入命令行窗口。
一、用户不能修改口令
原因:master数据库的日志已满,手工清除日志后,用户可以修改口令。
解决办法:
use master
go
dump transaction master with truncate_only
go
二、应用数据库挂起(suspect)
原因:数据库设备被重命名或位置移动或异常,在确保设备名称、所在目录正常的情况下,通过修改挂起的数据库状态,解决该问题。
解决办法:
use master
go
sp-configure"allow updates" ,1
go
update master..sysdatabase set status=-32768 wherename=" testdb"
go
/*必须重新启动sybase服务后,再执行以下语句*/
use master
go
update master..sysdatabase set status=-0 wherename=" testdb
go
sp_configure"allow updates" ,0
go
/*testdb数据库正常后,请检查它的dboption,如select into, trunc log on chkpt等选项*/
三、Sybase服务无法启动
原因:由操作系统或数据库异常造成的,如非正常关机。当重新启动时,有时出现Sybase服务无法启动的情况。
解决办法:
在Sybase安装目录中,删除sybase.krg文件( Windows系统中,如c:\sybase; Unix系统中,一般在/sybase/install/ ),重新启动机器后,Sybase服务能正常起来。