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服务两次。因为第一次启动后会自动结束掉,所以需要重启第二次。

3.Sybase自增字段跳号处理

跳号原因及影响:
在Sybase数据库中如果数据库在开启的情况下,因为非正常的原因(死机、断电)而导致数据库服务进程强制结束。
那么自动增长的字段将会产生跳号的情况,再往数据表里面插入记录时,自增字段会跳到一个相当大的值上面,以至于主键的自增值极有可能被用尽,或由于数值太大,应用程序中的数据类型如int型等已无法容下这么大的值,而无法在程序里面进行相关的操作。

解决办法:
如果还未发生过跳号情况,可按如下办法解决:
1.执行【 select 'sp_chgattribute ' + name + ', ''' + 'identity_gap' + '''' + ', 60 go'
from sysobjects
where type='U'】。其中的60是凭感觉给的一个值,一般来说这个值越大性能越好,但越大,再发生数据库服务进程非正常结束时,所跳的号也就越大。
2.对1执行的结果,拷贝到SQL编辑区域,再执行。
若已经发生跳号,需要将表中数据导出,再重建数据表,再执行1和2。再导入数据。

后话:
Sybase自增字段有个最大的问题是,再移植数据库时,如果是按自增主键进行关联的数据表,在数据重新导入后,可能出现主从表的外键无法关联的情况,我是开始时没预料到这样的情况,现木已成舟,没有办法了。 以后还是要慎用自增字段作为主键。


create table mytable (IdNum numeric(12,0) identity)
with identity_gap = 1


分析原因:db-server服务器出现故障或用no wait关机。导致分配ID号码块被‘烧毁’,当db-server服务器再次运行时,它会以先前写入磁盘的块的最高号码为基础,开始为下一号码块编号。依据出现故障前被指派到行中的已分配号码的多少,ID号可能会有很大的间隔。

解决方法: 在该表上加上 with identity_gap = number 参数即可.

with identity_gap 是为表指定标识间距。此值仅替换为此表设置的标识距。

执行


sp_chgattribute 'table_name','identity_gap',number

可用sp_help 查看表的identity_gap的设置

number的值不要设置的过低,会使性能降低

建议为50, 这样你的数据最大的数据间隔是50

结果: 执行


sp_chgattribute 'table_name','identity_gap',number

问题解决.

教训:一定要正常关机!


4.从sybase数据库中读取图片无法完整显示

原因:

由于其存取大文件的默认大小为32K,所以导致数据不能全部读出,所以大于32k的图片就只能显示部分。

解决办法

非常简单,只需要在你响应的sql语句之前,再加上【set textsize 3000000 】就OK了。
1. 安装指导 3 1.1 ASE安装一般指导 3 1.2 ASE11.9.2简易安装手册(for Unix) 4 安装概述 4 预下载任务: 5 下载 6 IBM AIX 6 HP UX 6 Digital Unix 6 预安装任务: 7 开始安装: 8 安装后任务: 10 1.3 ASE12.0 简易安装手册 10 1.3.1 SYBASE ASE12.0 For HP-9000/800 HP-UX安装指南 10 1.3.2 SYBASE ASE12.0 For SUN SOLARIS安装指南 13 1.3.3 SYBASE ASE12.0 For IBM RS/6000 AIX 安装指南 16 1.3.4 SYBASE ASE12.0 For DIGITAL UNIX 安装指南 19 1.4 SYBASE ASE12.0 For UNIX 双机切换设置指南(standby方式) 22 2. 技术专刊 24 2.1 关于Backup Server 24 2.2 Backup Server的名字 26 2.3 Sybase的数据设备 27 2.4 数据选项(dboptions)的使用与管理 28 2.5 Index & Performance 31 2.6 SQL Server 事务日志 35 2.7 阀值管理(Threshold Management) 39 2.8 日常后备数据 42 2.9 使用dump transaction with no_log的危险性 43 2.10 在ASE 11.9.2版中采用了行级加锁机制以提高性能 44 2.10.1 所支持的加锁机制 45 2.10.2 对小量数据的多次并发访问 48 2.10.4 死锁 52 2.11 DBCC 56 2.12 在SCO OPENSERVER 5上安装SQL SERVER 11.0.x 59 2.13 在SCO Unixware7.1上安装ASE11.92 62 2.14 ASE 11.9.2 for Linux安装步骤 64 3.常见问题 66 3.1 初级篇 66 3.1.1 在SQL Server中表大小是否有限制? 66 3.1.2 一旦客户突然退出或系统重启,SQL Server如何回滚事务? 66 3.1.3 为什么有时候数据事务日志满了,使用Dump transaction with no-log仍不能截断日志? 66 3.1.4 即使表上没有建立索引,为什么BCP操作仍记日志? 66 3.1.5 如何生成bcp命令文件(以pubs2为例)? 66 3.1.6 如何后备数据量大于2GB的数据 67 3.1.7 如何查找数据启动失败原因 67 3.1.8 如何在NT、UNIX下启动关闭ASE 68 3.1.9 如何在Windows操作系统上安装Open Client12.0 69 3.1.10基本的ASE 数据管理命令 70 3.1.11简单故障及排除方法 71 3.2 中级篇 71 3.2.1 IP地址改变后如何修改interfaces文件 71 3.2.2 如何解决数据被挂起的问题 72 3.2.3 如何终止数据恢复过程 74 3.2.4 如何删除坏的用户数据?(以pubs2为例) 75 3.2.5 如何检查数据中数据的一致性 77 3.2.6 如何更改SQL Server名称(在UNIX、OPENVMS平台上) 78 3.2.7 如何在HP平台BCP OUT超过2G的数据 79 3.3 高级篇 80 3.3.1如何配置SQL Server来做远程备份? 80 3.3.2 如何配置SQL Server 11,使得快速BCP具有更好的性能? 80 3.3.3如何将SQL/ASE SERVER移植到同种平台(相同操作系统)的系统上 81 3.3.4 如何做Rebuild Master 82 3.3.5 如何移植master设备 84 3.3.6 如何重建sybsystemprocs系统数据 86 3.3.7 如何做 rebuild log 87 3.3.8 如何恢复master数据 88 3.3.9 Replication Server 12.0如何支持字符集为eucgb的ASE数据? 89 4. SYBASE培训服务 91 4.1 SYBASE培训概述 91 4.2 SYBASE主要数据课程介绍 92
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值