服务器 频道

解决sybase不能启动以及4237错误

  【IT168 服务器学院】同事说执行insert tb select * from tb2 union select * from tb3后插到tb中的数据有几万,而select * from tb2 union select * from tb3的记录只有几十。问了平台是HP11,sybase是12,建议打sybase补丁,他们查查果然是补丁的问题。

  本以为没事了,可打电话来说打了补丁sybase服务启不来了,晕,自己去搞吧。

  报错如下:

  kernel  The sum, (number of user connections) + (number of devices * max online engines * 2) + (number of remote sites) + (max number network listeners), must be no greater than ''50''.

   kernel  Verification failed for parameter ''number of devices''.

  这问题以前遇到过,应该是文件描述符的问题

  #ulimit -a

  nofiles(descriptors) 60  \\太小了

  改HP内核调整maxfiles为1024,重启hp,sybase启动成功。

  同时发现启动过程中报:

  Error: 908, Severity: 22, State: 1

  server  Unable to find any entries in sysusages for dbid ''31513'', database ''sybsystemdb''. Run DBCC CHECKTABLE on sysusages in the master database.

   server  Unable to proceed with the recovery of dbid <31513> because of previous errors.  Continuing with the next database.

  查了一下sysusages没有dbid为31513的记录,但是sysdatabases中有,奇怪,问了一下他们说上次rebuildmaster过,这机器事真多,应该是bcp in sysusages时没有把sybsystemdb的记录导进去。这时sybase不停报:

  Error: 4237, Severity: 16, State: 1

  server  Cannot dump master database''s log as distributed transaction resolution is not complete yet. Please retry later.

  本想找到原来的bcp文件把sybsystemdb的信息bcp in sysusages,没有,有的也是错的。

  最终解决方法:

  删除sybsystemdb库,我图省事直接删了sysdatabases中的,sysusages中本来就没有。最好dbcc dbrepair删

  重启sybase,4237还报

  建设备,在新设备上建sybsystemdb数据库

  1> use sybsystemdb

  2> go

  1> sp_create_syscoordinations

  2> go

  1> use master

  2> go

  1> checkpoint

  2> go

  1> shutdown with nowait

  重启sybase问题解决。dump tran master with truncate_only没有问题。工作结束。

0
相关文章