文档介绍:SYBASE数据库常见问题总结SYBASE数据库常见问题总结 ,如何清除日志启动系统 ,没有备份,但设备文件还存在,如何恢复数据库? ,如何恢复数据库? -Usa-P******进不去怎么办? -(数据库慢的请留意) -32768后的处理方法 ,如何清除日志启动系统业务系统数据库不能正常启动,对于这一类问题,我们按照如下步骤解决:第一步,启用allowupdatestosystemtables,这样可以使具有系统管理员角色的用户能够改变系统表并可创建和修改系统表的存储过程,其中系统表包括master数据库中所有Sybase提供的表以及用户数据库中所有以“sys”开头的表和在sysobjects表中其ID值小于或等于100的表。系统表的不正确变更会导致数据库损坏和数据丢失,修改系统表时务必要使用begintransaction来保护数据库不受可能损坏数据库的错误影响,完成修改后应立即禁用allowupdatestosystemtables。1>sp_configure"allowupdate",12>go第二步,AdaptiveServer中的每个数据库在sysdatabases中都有相应的一行,安装AdaptiveServer后,master数据库、model数据库、sybsystemprocs和tempdb数据库在sysdatabases中都将有相应的条目,如果已经安装审计功能,sybsecurity数据库也将在其中有相应的条目。修改sysdatabases表,将testdb的状态修改为-32768,然后在关闭AdaptiveServer后重新启动AdaptiveServer。1>updatesysdatabasessetstatus=-32768wherename="testdb"2>goshutdowngo第三步,由于事务日志已经很满,不能使用常规方法转储此事务日志,如果使用了dumptransaction或dumptransactionwithtruncate_only命令,而命令又由于日志空间不足失败时,可以使用dumptransaction的特殊选项withno_log,此选项可截断事务日志而不记录转储事务事件。所有dumptranwithno_log都将在AdaptiveServer错误日志中进行报告,这些消息包括执行此命令的用户ID、指示成功或失败的消息,no_log是唯一生成错误日志消息的转储选项。但是这个选项(包括withtruncate_only)没有提供任何方法可恢复自从上次例行转储后提交的事务。usetestdbgodumptrantestdbwithno_loggo第四步,修改sysdatabases表,将testdb的状态恢复为0,然后禁用allowupdatestosystemtables。usemastergoupdatesysdatabasessetstatus=0wherename="testdb"gosp_configure"allowupdate",,根据AdaptiveServerfailedtoretrievearowviaitsRIDindatabase'escourt5'=0x1c88a8;rownum==0x261CA000,pageno=,status=0x1,objectid=8,indexid=0,level=:objectid=8表示日志段有问题解决方法一:截断日志先把sysdatabases的status修改成-32768然后重新启动数据库1>updatesysdatabasessetstatus=-32768 wherename="escourt5"4>go登陆数据库1>dumptransactionescourt5withtruncate_only2>goMsg921,Level14,State1:Line1:Database'escourt5'hasnotb