Sybase下载、安装、常见操作与问题

一、Sybase下载资源:

SAP已将Sybase收购合并,15.7版本及之前的Sybase下载链接已全部失效。SAP官网提供了新的16.0版本下载资源,可以自行下载,或者将下面的链接复制至迅雷下载:

Sybase ASE 16.0下载地址: Linux:http://d1cuw2q49dpd0p.cloudfront.net/ASE16.0/ExpressEdition/ase160_linuxx86-64.zip Windows:http://d1cuw2q49dpd0p.cloudfront.net/ASE16.0/DeveloperEdition/ase160_winx64.zip

二、安装

Windows平台安装与Linux平台图形界面安装步骤都较为简单,这里提供一个Linux命令行安装的方式:

vi /etc/sysctl.conf kernel.shmmax=1073741824

临时调整共享内存: /sbin/sysctl -w kernel.shmmax=1073741824 (1G) 需要root用户

groupadd sybase

useradd -g sybase sybase

mkdir -p /opt/sybase

chown -R sybase:sybase /opt/sybase/

chmod 755 /opt/sybase/

准备好安装包: tar -zxvf ase150_linuxx86-64.tgz

su - sybase 进入解压路径

./setup.bin -i console

Linux命令行中通过 .res 模版添加Sybase实例(此方法可以用来创建多实例):

添加实例:

cd /opt/sybase/ASE-15_0/

cp sqlsrv.res SYB.res cp bsrv.res SYB_BS.res

编辑上述两个资源文件中的各项参数

mkdir -p /opt/sybase/data_SYB

srvbuild -I /opt/sybase/interfaces -r /opt/sybase/ASE-15_0/SYB.res

srvbuild -I /opt/sybase/interfaces -r /opt/sybase/ASE-15_0/SYB_BS.res

Linux平台下设置Sybase服务自启动:

cat SYBASE.sh >> /home/sybase/.bash_profile

vi /etc/rc.local

在末尾添加:

su - sybase -C "/opt/sybase/ASE-15_0/install/startserver -f /opt/sybase/ASE-15_0/install/RUN_Sybase"

su - sybase -C "/opt/sybase/ASE-15_0/install/startserver -f /opt/sybase/ASE-15_0/install/RUN_Sybase_BS"

三、常用操作

更改设备文件路径:

use master go sp_configure "allow updates to system table", 1

go

update master..sysdevices set phyname='X:\Sybase\data\sybprocs.dat' where name='sysprocsdev'

go

四、Sybase问题集锦:

1./lib/ld-linux.so.2:bad ELF interpreter:没有那个文件或目录

2.字符集问题:zh_CN.UTF-8在locales.dat中找不到

解决方法:/opt/sybase/locales目录下打开locales.dat文件,在[linux]下面添加一行locale = zh_CN.UTF-8, us_english, utf8

3.isql: error while loading shared libraries: libdl.so.2 cannot open shared object file: No suck file or directory

解决方法:find / -name libdl.so.2 -> 找到为 /lib64/libdl.so.2

export LD_LIBRARY_PATH = $LD_LIBRARY_PATH:/lib64/

五、循环插入数据 SQL 示例

use test

go

create table test1 (ids int,m varchar(900),n varchar(30))

go

declare @i int, @time char(30)

set @i =0, @time =convert(char(30), getdate(), 9)

print @time

while datediff([second], convert(char(30), getdate(), 9) , 'Apr 21 2015 12:19:11:000PM') >0

begin

insert into test1

values(@i,'test'+convert(varchar, @i), convert(char(30), getdate(), 9))

set @i = @i+1

waitfor delay "00:00:01"

end

go