Sybase 错误代码
Sybase_926数据库挂起、3414错误解决方法
Sybase 926数据库挂起、3414错误解决方法(Error: 926 Error: 3414)一、查看错误日志 errorlog 发现了这段记录00:00000:00001:2009/04/28 16:13:36.46 server Error: 926, Severity: 14, State: 100:00000:00001:2009/04/28 16:13:36.46 server Database 'FD_JXC' cannot be opened. An earlier attempt at recovery marked it 'suspect'. Check the SQL Server errorlog for information as to the cause.00:00000:00002:2009/04/28 16:13:36.46 kernel network name200.100.101.100, type ether, port 5000, filter NONE00:00000:00003:2009/04/28 16:13:36.48 kernel network name yzserver, type ether, port 5000, filter NONE00:00000:00001:2009/04/28 16:13:36.48 server Unable to proceed with the recovery of dbid <4> because of previous errors. Continuing with the next database.明显的 926 数据库挂起错误,即先将数据库状态修改为 -32768 然后再修改为0/* 1、将 'allow updates' 从 0 改为 1 允许修改系统表*/sp_configure "allow updates", 1/* 2、将数据库状态修改为 -32768 即 bypass recovery */update sysdatabases set status = -32768 Where name="FD_JXC"这时需要停止Sybase服务并且重新启动Sybase/* 3、将数据库状态修改为正常 status=0 */update sysdatabases set status=0 where name="FD_JXC"sp_configure "allow updates", 0第二次停止Sybase服务并且重新启动Sybase这步完成后一般重新设置数据库选项(例如"select into","trunc log on chkpt"等)exec sp_dboption FD_JXC, 'select into/bulkcopy' ,trueexec sp_dboption FD_JXC, 'trunc. log on chkpt' ,true运行dbcc命令检查数据库的一致性dbcc checkdb(FD_JXC)备份用户数据库dump database FD_JXC to "D:\backup\FD_JXC0428.dump"晕死,眼看胜利在望,服务器蓝屏,无语,破机器,只好非法关机重新启动,启动好后数据库还是无法正常使用,再查看错误日志 errorlog ,我的神啊,竟然变成3414错误了,肯定是刚才蓝屏的时候,数据库在恢复日志被中断了,这样就要重建数据库日志了190197: Master device size: 30 megabytes, or 15360 virtual pages. (A virtual page is 2048 bytes.)00:00000:00001:2009/04/28 16:40:14.75 server Error: 3414, Severity: 21, State: 100:00000:00001:2009/04/28 16:40:14.75 server Database 'FD_JXC' (dbid 4): Recovery failed. Check the SQL Server errorlog for further information as to the cause.Error: 3414, Severity: 21, State: 1 Database 'FD_JXC' (dbid 4): Recovery failed. Check the SQL Server errorlog for further information as to the cause.解决办法: 重建数据库日志,方法如下:/* 1、赋予sa用户sybase_ts_role的角色 (这步最重要,我一开始没搞,费了不少工夫) */sp_role "grant","sybase_ts_role",sa/* 2、将数据库状态修改为 -32768 即 bypass recovery */sp_configure "allow updates",1update master..sysdatabases set status =-32768 Where name="FD_JXC" 这时需要停止Sybase服务并且重新启动Sybase/* 3、rebuild数据库日志 */dbcc rebuild_log(FD_JXC,1,1)第二次停止Sybase服务并且重新启动Sybase/* 4、将数据库状态修改为正常 status=0 */update master..sysdatabases set status=0 Where name="FD_JXC"sp_configure "allow updates", 05、还要第三次停止并重启Sybase服务,如果数据库恢复正常,rebuild log工作将会成功完成,否则要恢复数据库备份,使用dump database或bcp命令。
Sybase编程中出现的错误及其解决办法-电脑资料
Sybase编程中出现的错误及其解决办法-电脑资料SYBASE 数据库是当今在UNIX环境下最为流行的大型数据库之一,本人在SYBASE下开发和维护软件的过程中,发现了一些SYBASE 的内部规则,在程序设计中极易造成误解,而达不到预期的目的,。
下文将本人所发现的几个问题及其解决办法叙述如下:1、在sybase11.5中,组合两个定长的char(x)="aaa",char (y)="bbb"; char(x)+char(y)!="aaabbb"declare @val_1 char(8)declare @val_2 char(1)select @val_2 = 'x'select @val_1 = "0000"select @var_1= @val_1 + @val_2select @var_1我们期望的结果为0000x,而实际上其结果为0000。
解决方法一:当我们将"select @var_1=@val_1+@val_2",改为"select @var_1=rtrim(@var_1)+@var_2"时,我们便看到了我们所期望的结果。
为什么呢?在有的SYBASE版本中存储一个char(n)时,在其真实值后补上了相应数量的空格,在本例中,存储在@var_1中的是0000 (在0000后有四个空格)。
你可以加上如下两句来验证:declare @val3 char(10)select @val3 = @val_1 + @val_2select @val3这时你会得到的结果为0000 x (在0000后有四个空格)。
解决方法二:将char 改为 varchar 也可以达到预期的目的,电脑资料《Sybase编程中出现的错误及其解决办法》(https://www.)。
2、用alter table 增加表结构时,虽然用sp_recompile tablename 重编译了所影响的数据库对象,但在运行某些包含"select * from tablename"的存储过程时,存储进程仍不认识用alter table 增加的列。
Sybase服务故障的分析及解决办法
Sybase服务故障的分析及解决办法一、问题的起因国库业务系统用DELL服务器原为国库核算系统、国库统计系统、国库综合业务报表系统、国债兑付管理系统四套业务系统的工作机,自2003年以来就投入运行,因使用时间较长,期间做过不少次系统配置更改及业务系统升级换代,因此运行速度越来越慢,且常出现些小问题,为此笔者新装了一台HP DX2000计算机作为生产机,而把DELL服务器改作备份机,以便于有充裕的时间对其进行系统的整理维护,提高其整体性能。
前些天,国库业务人员因为业务问题需要使用备份机,发现国库综合业务系统无法正常登录,查询服务功能,发现NTRS服务没有启动,如是采用手工启动的方法,结果出现如下错误提示:“在本地计算机,无法启动Sybse SQLServer_ntrs服务并未返回错误。
这可能是一个Windows内部错误或服务内部。
如果问题持续存在,请与您的系统管理员联系。
”二、处理的过程为解决此故障,笔者反复多次启动服务,乃至重新启动机器,但问题依然如此,联想到新装HP DX2000计算机更改IP地址时也出现过如此问题,而且Sybase Config也经常出现启动错误,需要到Sybase 系统目录中找到对应文件直接执行才能解决问题,因此认为Sybase本身可能存在某些问题,需要手工更改其他配置。
如是笔者打电话咨询总行信息技术支持中心,答复这个问题咨询的电话较多,每周都有好几个,这属于Sybase系统本身的不完善问题,而总行已经解除了与Sybase公司的服务协议,因此没有办法解决,只能删除NTRS服务再重建。
辛辛苦苦建立的NTRS服务,怎忍心一删了事,而且国库统计系统、国库综合业务报表系统、国债兑付管理系统三套系统都使用此服务,到时恢复起来也较费事。
抱定不到黄河心不死,见到棺材也不落泪的心里,笔者广泛查找资料,多方电话咨询Sybase方面的专家,经过连续数天的实践摸索,终于查明是Sybse服务配置的冲突所至,需要通过Sybase Dsedit更改系统配置或手工清理、修改SQL.ini文件。
sybase备份错误
问题描述:Can't open a connection to site 'SYB_BACKUP',see the error log file in the ASE directory。
现在想备份数据库但是提示这个错误.网上说,这是由于ASE 安装/服务初始化程序的BUG 导致的。
在创建服务时,ASE 会创建一个名为类似XXXX_BS 的备份服务,同时会在master..sysservers 中插入一条对应记录。
以服务名FLYBAEN 为例。
下面是interfaces 文件和sysservers 中的记录:interfaces 文件内容:FLYBEAN_BSmaster tcp ether FLYBEAN_LINUX 5001query tcp ether FLYBEAN_LINUX 5001sysservers 的记录:(select srvname, srvnetname from sysservers where srvname='SYB_BACKUP')srvname srvnetname------------------------------ --------------------------------SYB_BACKUP FLYBEAN_BS通常默认的备份服务器就是SYB_BACKUP 。
在load/dump 时,ASE 通过sysservers 获取备份服务器对应interfaces 的信息,然后在interfaces 文件中搜索该服务的实际位置(IP和端口)。
在此例中,ASE 通过sysservers 得到interfaces 中的服务名为FLYBEAN_BS,然后在interfaces 中获取该服务的物理信息。
如果ASE 无法通过sysservers 中的srvnetname 在interfaces 中获取相关信息,则会报上面的错误。
SYBASE黑幕之中文乱码篇
大家千万要注意,特别是创建计费相关的存储过程的时候,启动AAA的时候, 一定要注意保证客户端字符集和服务器端字符集相同.否则会影响按次计费的错误,导致按次计费成为按时间计费.1:首先检查数据库服务器的字符集如何看呢,两个方法a)打开SYBASE的启动日志error.log查找on top of default character set下面一行,列出的就是服务器的字符集b)进入Sqladvantage,敲入sp_helpsort查找Character Set =就可以看到字符集2:其次检查你客户端的字符集合打开客户端默认字符集设置文件,假设你SYBASE安装在D盘根目录则用UltraEdit打开D:\sybase\locales\locales.dat 文件查找[NT]看到如下内容,其中蓝色的,就是你客户端的默认字符集合[NT]locale = enu, us_english, iso_1locale = fra, french, iso_1locale = deu, german, iso_1locale = rus, russian, cp1251locale = hun, us_english, cp1250locale = ell, us_english, cp1253locale = heb, us_english, cp1255locale = ara, us_english, cp1256locale = trk, us_english, cp1254locale = esp, spanish, iso_1locale = jpn, japanese, sjislocale = japanese, japanese, sjislocale = chs, chinese, eucgblocale = cht, tchinese, big5; locale = kor, korean, eucksclocale = us_english.utf8, us_english, utf8locale = default, us_english, iso_1可以把这个修改为和上面显示的服务器字符集一样,比如locale = default, us_english, cp8503:另外,如果你使用的是SYBASE12.5的客户端, 则可以在登录SYBASE CENTRAL的时候指定字符集和语言,如下同样的,在登录SqlAdvantage的时候,也可以指定登录字符集和语言,如下4:知道了服务器的字符集,如何设置AAA的登录字符集呢如果你是用OAMTERM配置的AAA的连接数据库的属性,则在配置页面,就有设置字符集的地方了.如果你还是用的老的配置文件设置AAA的连接数据库的属性,则要检查配置文件中 [Database Settings]Charset=xxxxxx的设置,没有要加上.并且设置正确的字符集合.5:大爆SYBASE恶心之处非常奇怪的是,在一些现场,按照这样设置之后,还是总是不能导出正常中文的存储过程.是否是本来就是乱码呢?是否是建立的时候,就因为字符集不对而建立了乱码呢?于是,我们用命令行命令,执行了如下的命令defncopy -U用户名 -P密码 -S服务名 out 输出文件名数据库名 PROC_AAA_INFOJF导出了存储过程PROC_AAA_INFOJF,发现是正常的中文.这说明在SYBASE服务器内部,存储过程是正常的,为什么用SYBASE CENTRAL就不能倒出呢?经过严密追问SYBASE公司,他们也没有办法,只是说,因为12.0后的SYBASE,使用了JA V A的技术来编写客户端,可能是JA V A的原因吧.但是,SYBASE12.0后的服务器,大家千万不要图方便,用11.9的客户端.但怎么解决这问题呢?总不能每次都用defncopy来倒存储过程吧.经过再次逼问SYBASE,终于他们开口,说,其实12.0后,SYBASE客户端,其实是同时提供了JA V A版本的CENTRAL和C语言版本的CENTRAL的.建议我们用C语言版本的CENTRAL.也就是(假设你的SYBASE客户端安装在D盘根目录)D:\sybase\Sybase Central 3.2\win32\scview.exe所以,提醒大家的是1:首先保证客户端默认字符集,和服务端一样(检查locales.dat文件)2:CENTRAL不要用JAVA版了,也不要用11.9的版本直接用对应你服务器版本的客户端的C语言版本的CENTRAL。
【sybase】bcp 问题总结
【sybase】bcp 问题总结标签:sybase bcp分类:数据库技术2010-12-29 23:04一. Bcp 错误ct_connect(): network packet layer: internal net library error: Net-Lib protocol driver call to connect two endpoints failedEstablishing connection failed.无法连接远程服务器cs_convert: cslib user api layer: common library error: Theconversion/operation was stopped due to a syntax error in the source field. CSLIB Message: - L0/O0/S0/N36/1/0:导入表对应的列数量不正确cs_convert: cslib user api layer: common library error: Theconversion/operation was stopped due to a syntax error in the source field.导入数据存在自增长列,但数据源不存在自增长列blk_rowxfer(): blk layer: internal BLK-Library error: Data truncated while doing local character set conversion. col = 3导入表对应的字段长度不足ct_sendpassthru(): network packet layer: internal net library error: Net-Library operation terminated due to disconnectCTLIB Message: - L5/O3/S5/N5/5/0:字符集错误二. Bcp 导入不同字符集数据bcp in到字符集是utf8的数据库时使用以下的参数,这样就可以解决java程序使用utf8字符集看中文是乱码的问题:bcp dbname..tabname in filename -Uxx -Pxx -Sxx-Jcp936 -c -Y三. 注意事项1. Tempdb的大小当Sybase执行bcp in脚本时,会占用导入数据2倍的tempdb空间,因此在执行前要仔细估计最大的table的大小,保证有足够的tempdb空间。
如何解决Sybase数据库乱码问题详解
如何解决Sybase数据库乱码问题详解Sybase数据库是一种常用的关系型数据库管理系统(RDBMS),它被广泛应用于企业级应用程序的开发和管理中。
然而,在使用Sybase数据库过程中,我们有时会遇到乱码问题。
乱码是指数据库中存储的数据在显示过程中出现了不正常的字符或者无法识别的字符。
本文将详细介绍如何解决Sybase数据库乱码问题。
一、乱码问题的原因分析乱码问题的产生原因非常多样化,下面列举了一些常见的原因:1. 字符集不匹配:数据库中使用的字符集与应用程序中使用的字符集不一致会导致乱码问题。
2. 数据导入不正确:如果在导入数据时未指定正确的字符集,则可能导致数据乱码。
3. 数据存储不正确:如果数据库中存储的字符串没有使用正确的字符集,将会导致乱码问题。
4. 字符串处理不当:在应用程序中对字符串进行处理时,如果没有正确处理字符集,数据可能会出现乱码。
5. 系统环境配置问题:有时,操作系统、数据库软件或应用程序中的某些配置存在问题,也可能导致乱码问题。
二、解决乱码问题的方法针对上述原因,可以采取以下一些解决乱码问题的方法:1. 修改字符集配置:确保数据库中使用的字符集与应用程序中使用的字符集一致。
可以通过修改数据库或应用程序的配置文件来设置正确的字符集。
2. 指定正确的字符集进行导入:在导入数据时,需要指定正确的字符集,以保证数据能够正确地存储到数据库中,避免乱码问题的发生。
可以根据具体情况使用不同的导入工具或命令来完成这个操作。
3. 使用合适的数据类型:在创建数据库表时,选择合适的字符数据类型来存储字符串。
根据具体情况选择varchar、nvarchar等数据类型,并指定正确的字符集。
4. 对字符串进行正确的处理:在应用程序中,对于涉及到字符串处理的操作,需要确保使用了正确的字符集。
比如,对字符串进行拼接、截取、比较、转换等操作时,都需要注意字符集的一致性。
5. 检查系统环境配置:如果乱码问题持续存在,需要检查系统环境配置是否正确,包括操作系统、数据库软件和应用程序的相关配置。
SYBASE常见问题收集整理
use master
go
sp_dboption pubs2,"single user",false
go
use pubs2
go
checkpoint
go
quit
go
isql -Usa -Pxxxxxx -SSYBASE dbcc_db.out
grep Msg dbcc_db.out
1>begin tran
2>go
1>update master..sysdatabases
2>set status=0
3>Where name="pubs2"
4>go
如果得到(1 row affected),则
1>commit
2>go
否则
1>rollback
在系统报错以后, 确定数据库是否有损坏。
在备份数据库之前, 确保备份的完整性。
如果怀疑数据库有损坏时, 例如, 使用某个表时报出表损坏的信息, 可以使用 dbcc 确定数据库中其他
表是否也有损坏。
下面是dbcc的简单用法:
dbcc checktable (table_name)
检查指定的表, 检查索引和数据页是否正确链接, 索引是否正确排序, 所有指针是否一致, 每页的数据
信息是否合理, 页偏移是否合理。
dbcc checkdb (database_name)
对指定数据库的所有表做和checktable 一样的检查。
dbcc checkalloc (database_name,fix|nofix)
Sybase数据库故障处理方法
Sybase数据库故障处理方法一、Sybsystemprocs 库“挂起”解决办法1.修改文件,修改Sybase 数据库可以修改系统参数.2.$ vi查找“allow updates” ,将其修改为1.(缺省值为0).既allow updates to system tables=1重新启动系统.3.用 isql 登录到sql server 中,修改master库中sysdatabases 表中sybsystemprocs 库对应的status 的值为-32768.$isql –Usa –P1>update master..sysdatabases2>set status = -32768 where name =”sybsystemprocs”1>go1>shutdown with nowait2>go关闭数据库重新启动.4.用 isql 登录到sql server 中,修改master库中sysdatabases 表中sybsystemprocs 库对应的status 的值为0.$isql –Usa –P1>update master..sysdatabases2>set status = 0 where name =”sybsystemprocs”3>go1>shutdown with nowait2>go关闭数据库重新启动.5.将中的”allow updates to system”的值改为0.二、如何恢复master数据库ASE can't setup and has no valid dump of master1、编辑RUN_servername在命令行最后加入:-T36072、单用户模式启动ASE$cd install$startserver -f RUN_servername -m3、bcp out系统表$bcp master..sysdevices out /devs -Usa -P -c$bcp master..sysdatabases out /dbs -Usa -P -c$bcp master..sysusages out /usages -Usa -P -c$bcp master..syslogins out /logins -Usa -P -c$bcp master..sysconfigures out /configures -Usa -P -c$bcp master..syscharsets out /charsets -Usa -P -c4、shutdownASE5、创建新master设备$buildmaster -d<path_to_new_master_device> -s<new_master_device_size>(new_master_device_size以2K为单位)6、编辑RUN_servername将指定master设备指定为新创建的master设备,并删除在第1步中增加的参数。
sybase常见错误
sybase常见错误在用isql连接数据库的时候,比较常见的错误有:服务没启动报错,报密码错误,报服务名不存在。
分别为:服务名不存在:CT-LIBRARY error:ct_connect(): directory service layer: internal directory control layer error: Requested server name not found.服务没有启动:CT-LIBRARY error:ct_connect(): network packet layer: internal net library error: Net-Lib protocol driver call to connect two endpoints failed密码错误:Msg 4002, Level 14, State 1:Server 'TEST':Login failed.CT-LIBRARY error:ct_connect(): protocol specific layer: external error: The attempt to connect to the server failed.在执行isql命令连接数据库的时候,报密码错误和服务名称不存在这两个错误的情况下,反映很快。
也就是说:在isql命令行后敲入回车后很快就给你提示服务名不存在或密码错误。
但是在报因服务没有启动导致的错误时,要等一段时间才有结果。
因为 isql 需要等待 ASE 服务器的响应。
连接sybase数据库的时候将依次尝试sql.ini文件中相应服务名下面的所有监听信息。
如果所有的监听信息都连接失败后,才给出无法连接的提示信息。
sybase尝试连接一个监听地址端口需要花费多长时间?失败后将继续尝试几次?以后再总结。
SYBASE常见问题
SYBASE常见问题1.Sybase数据库日志满碰到这种情况,常会出现能查询数据,但无法更新数据,启动事务等。
在代码中跟踪可以发现,连接能够打开,但事务却无法开启。
常会提示“Connection to Sybase server has been lost. All active transactions have been rollbacked”的错误信息。
解决办法:若是开发数据库,则直接清除日志即可。
若是正式数据库:建议备份当前日志再清空日志,扩日志设备及日志数据库。
清空日志的语句为『dump transaction database_name with no_log 』2.Sybase中文乱码出现这种情况的原因是sybase的服务器字符集不支持中文或是客户端的字符集与服务端字符集不一致。
可以考虑更改sybase的默认字符集。
在Sybase12.5的版本中支持中文的字符集有CP936、EUCGB、UTF-8和GB18030。
这里我们针对Sybase 服务器字符集不支持中文给出解决办法:解决办法(安装cp936字符集):假设sybase的安装路径为"D:\Sybase"。
(1)D:\>cd \sybase\charsets\cp936(2) D:\sybase\charsets\cp936> charset -Usa -Psa_pass -Sserver_name binary.srt cp936(3) 在InterActiveSQL中执行『select name,id from syscharsets』,需注意的是这里要选择在“master”数据库下执行,第4步也是。
找到name为cp936的ID,假定是171。
(4)在InterActiveSQL中执行『sp_configure 'default character set id',171』(5) 重启Sybase服务两次。
Syabse数据库常见问题解法之数据库无法启动
Syabse数据库常见问题解法之数据库无法启动
在探讨本问题之前,首先要为大家解释一下Syabse数据库本身。
Syabse数据库应用和本身的架构相对而言都相对比较复杂,多数技术人员及公司对Sybase数据库底层结构和运行机制也处于并非完全了解的阶段,这就对Sybase数据库数据恢复和Sybase数据库数据修复造成了很大的阻碍。
难道一旦Sybase数据库出现严重的故障就没有解决之道了吗?答案是否定的。
计算机运行的根本原理谁都无从改变,任何系统和应用都要遵守计算机的计算和存储规则,只不过是某些概念和规则过于生涩,导致我们需要更多的时间和精力来学习和熟悉。
这也是目前Sybase数据库数据恢复和数据修复方面的处境。
下面将以真实案例为例为大家介绍数据库无法启动该如何解决。
Sybase版本:SQL Anywhere 8.0
故障现象:数据库无法启动。
错误提示如图:
然后使用 Sybase Central 连接后报错如图:
经过分析得出的结论是:突然断电造成数据库无法回写正常数据,导致多个存储页数据不一致,系统表描述和存储表不一致,并有一些存储页底层数据完全杂乱。
于是我们在Sybase数据库底层把杂乱和错误的存储页进行修正,并对系统表部分信息进行更改。
繁重的Sybase数据库修复工作完成后,Sybase数据库已能成功启动,使用Sybase Central已能成功连接,经用户验证已无任何问题,上两张图给大家看看最终成果。
sybase启动时926错误处理方法
sybase数据库启动时报926错误Message: 926, State 1, Severity 14 -- 'Database 'FYRSSD128' cannot be opened. An earlier attempt at recovery marked it 'suspect'. Check the SQL Server errorlog for information as to the cause.一般是由于服务器突然断电或者数据库异常关闭,导致数据库损坏,处于置疑状态。
解决办法:1.打开允许修改系统表的属性,设置数据库的状态为-32768sp_configure "allow update", 1goSELECT * FROM sysdatabases WHERE name ='FYRSSD128'goupdate master..sysdatabases set status=-32768 where name=" FYRSSD128"go重启数据库shutdown with nowaitgo2. 设置数据库的状态为0,重建数据库日志UPDATE master..sysdatabases SET status = 0 WHERE name ='FYRSSD128'GODBCC rebuild_log(FYRSSD128,1,1)GO重启数据库shutdown with nowaitgo3. 如果数据库的状态为0,设置数据库属性EXEC sp_dboption FYRSSD128, "select into/bulkcopy/pllsort",trueGOEXEC sp_dboption FYRSSD128, "trunc log on chkpt",trueGOEXEC sp_dboption FYRSSD128, "abort tran on log full",trueGO4. 如果数据库的状态为12,说明数据库已经正常。
SYBASE数据库常见的问题总结
SYBASE 数据库常见问题总结SYBASE 数据库常见问题总结 (1)1. SYSLOGS日志满了进不了系统,如何清除日志启动系统 (1)2. 数据库日志损坏时重建日志启动数据库的解决办法 (3)3. 数据库处于可疑状态的解决方法 (5)4.Sybase系统崩溃了,没有备份,但设备文件还存在,如何恢复数据库? (8)5.不小心直接删除了日志的设备文件,如何恢复数据库? (13)6.sa密码忘记了导致isql -Usa -P******进不去怎么办? (15)7.关于sybase的配置-(数据库慢的请留意) (15)8.设备路径更改的方法 (19)9.dump文件load后数据库访问不了解决办法 (20)10.sybase数据库备份方案 (20)11.master数据库状态被置为-32768后的处理方法 (26)1. SYSLOGS日志满了进不了系统,如何清除日志启动系统业务系统数据库不能正常启动,对于这一类问题,我们按照如下步骤解决:第一步,启用allow updates to system tables,这样可以使具有系统管理员角色的用户能够改变系统表并可创建和修改系统表的存储过程,其中系统表包括master数据库中所有Sybase提供的表以及用户数据库中所有以“sys”开头的表和在sysobjects表中其ID值小于或等于100的表。
系统表的不正确变更会导致数据库损坏和数据丢失,修改系统表时务必要使用begin transaction来保护数据库不受可能损坏数据库的错误影响,完成修改后应立即禁用allow updates to system tables。
1>sp_configure "allow update",12>go第二步,Adaptive Server中的每个数据库在sysdatabases中都有相应的一行,安装Adaptive Server后,master数据库、model数据库、sybsystemprocs和tempdb数据库在sysdatabases中都将有相应的条目,如果已经安装审计功能,sybsecurity数据库也将在其中有相应的条目。
解决sybase7411报错
select count(*) from systhresholds
go
dbcc traceon(3604)
go
dbcc delete_row(<dbid>,<first>, row, 0)
go
dbcc delete_row(<dbid>,<first>, row, 1)
bcp全部数据,只bcp该表是不能解决该问题的!
环境:11.92/EBF10450
故障:报错7411
Table 'systhresholds' in database '%.*s' is not in its
correct sort order. Either the clustered index is
missing or there is data corruption in the table.
解决办法:
执行dbcc checktable (systhresholds) 和 dbcc tablealloc (systhresholds)检查系统表的一致性,如果发生错误,参考下面的处理办法
dbcc checktalbe(systhresholds)错误信息:
Checking systhresholds
go
dbcc delete_row(<dbid>,<first>, row, 2)
go
dbcc delete_row(<dbid>,<first>, row, 3) (和你该表的行数有关,4行就是0-3)
go
select count(*) from systhresholds (此时,结果应该为0,没有记录)
Sybase报Invalidpackettype0x22错误解决-电脑资料
Sybase报Invalidpackettype0x22错误解决-电脑资料Sybase报Invalid packet type 0x22错误解决今天使用Sybase(15.7 Developer版)查询DB时,遇到了很诡异的错误,错误异常如下:[java]<-- java.sql.SQLException: TDS Protocol error: Invalidpacket type 0x22atnet.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2284) atnet.sourceforge.jtds.jdbc.TdsCore.isDataInResultSet(TdsCore.java :792)atnet.sourceforge.jtds.jdbc.JtdsResultSet.(JtdsResultSet.java:146) atnet.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsSt atement.java:424)atnet.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery (JtdsPreparedStatement.java:693)atcom.trs.infra.persistent.BaseObjs.loadCurrentData(BaseObjs.java :1321)atcom.trs.infra.persistent.BaseObjs.open(BaseObjs.java:1437) atcom.trs.ekp.stat.obtain.StatResultObtainMgr.queryStatResults(St atResultObtainMgr.java:194)atcom.trs.ekp.stat.domain.ExpertLevelMgrTest.testGetAllExpertLev els(ExpertLevelMgrTest.java:51)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcc essorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingM ethodAccessorImpl.java:25)at ng.reflect.Method.invoke(Method.java:597)at junit.framework.TestCase.runTest(TestCase.java:154)at junit.framework.TestCase.runBare(T estCase.java:127)at junit.framework.TestResult$1.protect(TestResult.java:106) atjunit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109)at junit.framework.TestCase.run(TestCase.java:118)atorg.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.ru n(JUnit3T estReference.java:130)atorg.eclipse.jdt.internal.junit.runner.T estExecution.run(TestExecuti on.java:38)atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:683)at org.eclipse.jdt.internal.junit.runner.RemoteT estRunner.run (RemoteTestRunner.java:390)atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java:197)Caused by: net.sourceforge.jtds.jdbc.ProtocolException: Invalid packet type 0x22atnet.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2271) ... 24 more经过定位,最终发现是指定的表中的字段个数太多(我这个表中有575个字段),把sql语句修改成select 字段1,字段2 …… from 表问题不再重现,,电脑资料《Sybase报Invalid packet type 0x22错误解决》(https://www.)。
sybase12.5出现提示说1142错误
sybase12.5出现提示说1142错误----------------------------------------------------------------------------------7楼发表于 2006-07-31 15:25 | 只看该作者--------------------------------------------------------------------------------Error: 1142, Severity: 22, State: 100:00000:00001:2006/07/27 18:57:27.66 server Invalid OAM Page 0. Found pstat=0x0, object=0, database=0, indid=912.00:00000:00001:2006/07/27 18:57:27.66 server Unable to proceed with the recovery of dbid <14> because of previous errors. Continuing with the next database.------------------------------------------------------------------------------------------------------------------------any more error logs?请问下我的数据库是sybase12.5 出现提示说1142错误这个怎么解决啊是什么问题?谢谢我的系统是aix的,有一天突然进不去数据库了我重起了下数据库结果就出现这个问题了,但不影响应用现在就是不知道是什么问题该怎么解决?打没打最新补丁?做好备份,在启动文件中加-T1116启动试试[精华] 系统集成备忘(Sybase 12.5测试之一)--------------------------------------------------------------------------------/doc/5815217271.html作者:大夫发表于:2006-01-06 11:09:42【发表评论】【查看原文】【Sybase讨论区】【关闭】1 概述70年代,随着大型共享数据库应用的普及,美国SYBASE公司基于当时的关系代数理论所提出的数据库关系模型,开发了Sybase数据库系统;Sybase是基于SQL(Structured Query Language)的著名关系模型数据库系统,是世界上最流行的DBMS软件之一;它能在多种计算机硬件平台上运行,并能通过连网形成分布式数据库环境;SQL Server是指运行在主机上,能提供SQL语言查询、修改或控制数据库中内容等操作的一个服务进程,形象地把它理解为一个数据库服务器;一般地数据库服务器有Data Server 和 Backup Server两个服务进程组成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
错误消息按Sybase 错误代码进行索引Sybase 错误代码是一组错误代码集,用于所有Sybase 产品,包括Adaptive Server Enterprise。
Adaptive Server Anywhere 所返回的每个Sybase 错误代码,都有与之匹配的Adaptive Server Anywhere 错误代码。
在许多情况下,Adaptive Server Anywhere 错误代码比对应的Sybase 错误代码更详细,因此,下表中的某些Sybase 错误代码并不是唯一的。
Sybase 错误代码Adaptive Server AnywhereSQLCODE错误消息0 –631 RAISERROR 被执行:%1102 –171 打开游标时出错102 –199 在游标上的INSERT/_delete 只能修改一个表102 –933 IQ 数据库需要日志102 –275 在运行时服务器中不支持触发器和过程102 –273 在触发器动作中不允许执行COMM IT/ROLLBACK 102 –131 '%1' 附近有语法错误%2102 –687 语法错误,未指定IQ PATH 时不能指定IQ 特定选项102 –875 无法连接到'%1'102 –145 未找到外键名'%1'102 –271 触发器定义与现有触发器冲突102 –272 触发器定义中的REFERENCES 子句无效102 –635 不允许在视图上对列权限GRANT102 –151 子查询只允许一个选择列表项102 –269 不能删除或重命名触发器定义中引用的列103 –250 标识符'%1' 过长104 –854 ORDER BY 子句中对'%1' 的函数或列引用无效108 –152 ORDER BY 说明无效133 –262 未找到标签'%1'134 –261 已有名为'%1' 的变量137 –260 未找到变量'%1'154 –623 过程或触发器中不允许数据定义语句155 –200 无效的选项'%1' —不存在PUBLIC 设置174 –154 函数'%1' 的参数数目错误176 –611 不支持的Transact-SQL 功能176 –148 未知函数'%1'182 –159 无效的列号201 –639 调用过程'%1' 时参数名遗失201 –615 在过程'%2' 中未找到参数'%1'201 –737 签名'%1' 与过程参数不匹配205 –153 UNION、INTERSECT 或EXCEPT 中的_select 列表长度不匹配207 –124 从表'%1' 中删除的列多于定义的列207 –143 未找到列'%1'208 –142 未找到相关名'%1'209 –144 在多个表中找到列'%1' —需要相关名209 –163 派生表'%1' 没有列%2 的名称213 –207 _insert 的值数目错误217 –274 过程或触发器调用嵌套太深220 –158 值%1 超出了目标的范围230 –191 无法修改表'%2' 中的列'%1'230 –190 不能更新表达式233 –195 表'%2' 中的列'%1' 不能为NULL233 –733 已超出所允许的NULL 的列数限制257 –157 无法将%1 转换为%2257 –705 从过程'%1' 返回的void 类型不能在任何表达式中使用262 –121 权限被拒绝:%1264 –637 重复的插入列285 –708 READTEXT 或WRITETEXT 语句无法引用视图301 –147 出现多种将'%1' 连接到'%2' 的方法301 –680 Transact-SQL 外连接的WHERE 子句中的表达式无效301 –146 无法将'%1' 连接到'%2'305 –681 Transact-SQL 外连接中使用的连接类型无效311 –295 无法唯一标识游标中的行314 –122 操作将引起组循环315 –136 表'%1' 在外连接循环中315 –137 表'%1' 需要唯一的相关名401 –134 未实现功能'%1'401 –135 语言扩充401 –156 '%1' 附近的表达式无效401 –994 函数或过程'%1' 的参数过多404 –890 语句大小或复杂程度超过服务器限制409 109 集合函数中的空值已删除409 –90 过程'%2' 的参数'%1' 不能为空504 –265 未找到过程'%1'509 –140 用户ID '%1' 不存在512 –186 子查询不能返回多个行518 103 无效的数据转换532 104 上次读取后行已更新532 106 表'%2' 中列'%1' 的值已更改538 –627 在'%1' 附近的语法中检测到不允许的语言扩充546 –194 表'%2' 中的外键'%1' 没有主键值547 –198 表'%1' 中行的主键被表'%3' 中的外键'%2' 引用547 –677 表'%1' 有带参照动作的外键548 –196 表'%2' 的索引'%1' 将不唯一548 –209 违反了约束'%1':表'%3' 中列'%2' 的值无效549 –729 无法强制使用指定的外键(%1)550 –632 在基表'%1' 中插入/更新时违反了WITH CHECK OPTION553 –264 FETCH 中的变量数错误554 –208 上次读取后行已更改—操作被取消557 –853 游标未处于有效状态557 –170 尚未声明游标558 –172 游标已打开559 –180 游标未打开560 100 未找到行560 –197 没有当前的游标行573 –738 口令至少必须有%1 个字符590 111 语句无法执行601 –642 无效的SQL 描述符名708 –80 无法启动数据库服务器708 –86 没有足够的内存来启动708 –679 分配给Java 虚拟机用于远程访问的内存不足709 –996 找不到指定的本地连接。
710 –997 指定的本地连接没有指向当前数据库。
711 –998 无法关闭不是当前连接的远程JDBC 连接。
840 –82 无法启动指定的数据库:%1840 –87 启动服务器需要数据库名840 –1008 无法启动指定的数据库:'%1' 是无效的事务日志镜像840 –1009 无法启动指定的数据库:事务日志'%1' 或其镜像'%2' 无效840 –1010 无法启动指定的数据库:'%1' 不应为事务日志中的任何操作840 –1011 无法启动指定的数据库:未知加密算法。
840 –1012 无法启动指定的数据库:'%1' 必须升级以与该服务器一起启动(缺少功能% 840 –1013 无法启动指定的数据库:找到'%1',但未找到数据库840 –1014 无法启动指定的数据库:'%1' 已压缩—使用写文件或以只读模式打开840 –1015 无法启动指定的数据库:写文件'%1' 的数据库有一个不正确的修改时间840 –1016 无法启动指定的数据库:无法使用日志文件'%1',因为它的使用时间比数据近840 –1017 无法启动指定的数据库:'%1':未找到事务日志文件840 –1018 无法启动指定的数据库:无法使用日志文件'%1',因为偏移与数据库文件中配840 –1019 无法启动指定的数据库:无法使用日志文件'%1',因为使用数据库文件的时840 –1020 无法启动指定的数据库:无法使用日志文件'%1',因为它比预期的短840 –1004 无法启动指定的数据库:'%1' 不是数据库840 –1005 无法启动指定的数据库:'%1' 是由该软件的另外版本创建的840 –1006 无法启动指定的数据库:'%1' 不是有效的数据库文件840 –1007 无法启动指定的数据库:'%1' 是无效的事务日志911 –83 未找到指定的数据库924 –816 指定的数据库文件已在使用927 –97 数据库页太大927 –644 无效的数据库页大小928 –645 数据库创建失败:%1932 –311 内部回退日志损坏950 –76 请求被拒绝—没有活动数据库950 –74 所选数据库当前处于不活动状态1205 –306 检测到死锁1205 –307 所有线程被阻塞1205 –684 在预读过程中由于死锁而发生回退1601 –102 超出数据库服务器连接限制1602 –85 通信错误1602 –88 客户/服务器通信协议版本不匹配1702 –616 表中列过多1709 –849 对于临时表,不允许执行除RESTRICT 以外的参照完整性动作1709 –850 通过键约束相关联的两个表必须都是永久表,或都是使用ON COMMIT PRES 创建的临时表1709 –865 临时表之间的键约束需要主键(非唯一约束)1719 –118 表'%1' 无主键1721 –113 外键的列'%1' 与主键定义不同1801 –77 数据库名不唯一1802 –138 未找到Dbspace '%1'1909 –636 重复的引用列1909 –119 主键列'%1' 已定义1909 –251 表'%2' 的外键'%1' 与现有外键重复1921 –111 索引名'%1' 不唯一1921 –678 索引名'%1' 不明确1923 –126 表不能有两个主键1923 –112 表已有主键2561 –106 无法打开事务日志文件— %12601 –193 表'%1' 的主键不唯一2706 –141 未找到表'%1'2715 –613 未找到用户定义的类型'%1'2727 –189 无法在表'%2' 的索引'%1' 中找到2732 –296 RAISERROR 的错误号%1 不能小于17000 2748 –612 未找到用户消息%12749 –294 格式字符串参数号%1 无效3013 –305 I/O 错误%1 —事务已回退3013 –309 内存错误—事务已回退3206 –240 未知的备份操作3206 –241 数据库备份未启动3206 –242 不完整的事务妨碍了事务日志重新命名3206 –1021 无效的备份操作3451 –672 数据库升级失败3451 –673 数据库不可升级3618 –302 被用户终止—事务已回退3618 –304 磁盘已满'%1' —事务已回退3619 –107 写入事务日志文件时出错3621 –299 语句被用户中断3702 –214 表正在使用3702 –215 '%1' 正在使用过程3702 –750 用户拥有正在使用的过程3702 –751 用户拥有正在使用的表3819 –160 仅能描述_select 语句4001 –105 无法启动数据库— %14001 –84 指定的数据库无效4001 –72 未指定数据库文件4002 –103 无效的用户ID 或口令4002 –103 无效的用户ID 或口令4002 –104 预处理模块上无效的用户ID 或口令4224 –108 未找到连接4224 –99 与数据库的连接已被禁止4224 –308 连接被终止4406 –703 无法插入或更新计算列'%1'4409 –114 为视图定义的列数与_select 语句不匹配4412 –766 视图引用了'%1',它是临时对象。