好ASE12.5.3在Linux上的安装配置
安装
1、 tar-xvf ase12.5.3_linux_x86_32.tar (确定服务器硬件资源和操作系统的位数安装相应数据库系统32位还是64位)
2、 tar-zxvf ase12.5.3_linux_x86_32_ebf13332.tgz
3、 修改/etc/sysctl.conf文件调整操作系统共享内存参数。加入:
kernel.shmmax= 1024*1024*1024*0.7(70%计算)(如果剩余的内存超过1G,并且安装数据库系统的服务器为数据库专有服务器,给操作系统1G内就够了,其余都给数据库服务)(num为需要分配的共享内存大小,以字节为单位,一般设置为总内存的50%-70%,本例为1G)
4、 运行sysctl -p,使共享内存配置生效
5、 修改/etc/hosts文件,加入服务器内网IP:192.168.1.2 mobiledata
修改/etc/rc.d/rc.local,加入 ulimit –n 8192
修改/etc/security/limits.conf,加入
* soft nofile 8192
* hard nofile 20480
6、 创建sybase用户。
useradd-d /opt/sybase-12.5.3 sybase
passwdsybase
7、 创建数据库存放目录:mkdir /opt/data
8、 更改/opt/data目录的所有者为sybase用户
chown-R sybase:sybase /opt/data
9、 切换到sybase用户
10、 进入12.5.2安装目录,执行:./setup -console
11、 安装到配置服务器时,退出安装
12、 进入12.5.2 ebf13062安装目录,执行:./setup -console
13、 为了以后操作方便,可建立OCS-12_5和ASE-12_5的映射:
ln -s ASE-12_5 ASE
ln -s OCS-12_5 OCS
14、 修改sybase用户的.bash_profile文件。
vi ~/.bash_profile
输入vi命令行命令,:r ~/SYBASE.sh,会自动将内容添加到文件末尾。
15、 在.bash_profile最后再加入LANG=
注意:Installing/Running ASE onsystems with glibc 2.4.x (Fedora Core 5, etc)
当创建dataserver不成功时候
If you are running Fedora Core 5 or 6还需要添加
exportLD_POINTER_GUARD=0 (Fedora, Redhat系列)
If you are running Ubuntu / Kubuntu “Edgy”还需添加
exportLD_POINTER_GUARD=1 (Ubuntu系列)
If you are running Suse 10.1还需添加
exportLD_POINTER_GUARD=1 (SuSE系列)
16、 重启服务器
17、 在sybase用户目录下新建目录rs,用来存放配置文件。mkdir ~/rs
18、 从ASE-12_5/init/sample_resource_files目录下拷贝例子到rs目录下。
cp~/ASE-12_5/init/sample_resource_files/srvbuild.adaptive_server.rs ~/rs/db.rs
cp~/ASE-12_5/init/sample_resource_files/srvbuild.backup_server.rs ~/rs/backup.rs
19、 本例配置如下:
db.rs:
sybinit.release_directory:/opt/sybase-12.5.3
sybinit.product:sqlsrv
sqlsrv.server_name:xujy
sqlsrv.new_config:yes
sqlsrv.do_add_server:yes
sqlsrv.network_protocol_list:tcp
sqlsrv.network_hostname_list:192.168.0.34
sqlsrv.network_port_list:5000
sqlsrv.server_page_size:8k
sqlsrv.force_buildmaster:yes
sqlsrv.master_device_physical_name:/opt/data/master.dat
sqlsrv.master_device_size:180
sqlsrv.master_database_size:150
sqlsrv.errorlog:/opt/sybase-12.5.3/ASE-12_5/install/xujy.log
sqlsrv.do_upgrade:no
sqlsrv.sybsystemprocs_device_physical_name:/opt/data/sysprocs.dat
sqlsrv.sybsystemprocs_device_size:150
sqlsrv.sybsystemprocs_database_size:150
sqlsrv.sybsystemdb_device_physical_name:/opt/data/sybsystemdb.dat
sqlsrv.sybsystemdb_device_size:50
sqlsrv.sybsystemdb_database_size:50
sqlsrv.default_backup_server:SYB_BACKUP
backup.rs:
sybinit.release_directory:/opt/sybase-12.5.3
sybinit.product:bsrv
bsrv.server_name:SYB_BACKUP
bsrv.new_config:yes
bsrv.do_add_backup_server:yes
bsrv.do_upgrade:no
bsrv.network_protocol_list:tcp
bsrv.network_hostname_list:192.168.0.34
bsrv.network_port_list:5001
bsrv.language:USE_DEFAULT
bsrv.character_set:USE_DEFAULT
bsrv.tape_config_file:USE_DEFAULT
bsrv.errorlog:USE_DEFAULT
sqlsrv.related_sqlsrvr:xujy
sqlsrv.sa_login:sa
sqlsrv.sa_password:USE_DEFAULT
20、 编译资源配置文件。
srvbuildres-r ~/rs/db.rs
srvbuildres-r ~/rs/backup.rs
21、 修改数据库字符集:
cd~/charsets/cp936/
charset -Setoh2 -Usa -P binary.srt cp936
isql-Setoh2 -Usa -P
selectid from syscharsets where name='cp936'
go
@REM找到 cp936对应的id,如171
sp_configure"default character set id",171
go
@REM执行完成后退出isql,重启server两次
@REM(注:第一次启动后,server会自动当掉,需要第二次重启后才能使用)
22、 修改本地字符集:
编辑sybase用户home目录下的locales目录下的locales.dat文件。
vi~/locales/locales.dat
将[linux]段内的locale =default,us_english,cp936中的设置修改为指定设置即可。
23、 使ASE与Linux操作系统一起启动:
在/etc/rc.local中增加
su-c "/opt/sybase-12.5.3/ASE-12_5/install/startserver-f /opt/sybase-12.5.3/ASE-12_5/install/RUN_xujy" - sybase &
sleep10
su-c"/opt/sybase-12.5.3/ASE-12_5/install/startserver-f /opt/sybase-12.5.3/ASE-12_5/install/RUN_SYB_BACKUP " - sybase &
sleep1
24、 必须添加额外的tempdb设备以赋给tempdb
disk init name = 'tempdb',physname = '/opt/data/tempdb.dat',size = '1024M',cntrltype=0,dsync = false
go
alter database tempdb on tempdb=1024 with override
go
25、 在无阵列情况下可以再考虑添加一个临时数据库tempdb1, 此库设备建在与原tempdb设备不同的磁盘上,以减少IO争用—不是必须
diskinit name = 'tempdb1',physname ='/opt/data/tempdb1.dat',size = '1024M',cntrltype= 0,dsync = false
go
create temporary database tempdb1 on tempdb1=1024with override
go
sp_tempdb 'add', 'tempdb1', 'default'
go
26、 为了提升tempdb性能,把tempdb在master设备上征用的空间剥离
use tempdb
go
sp_dropsegment "default",tempdb,master
go
sp_dropsegment logsegment,tempdb,master
go
sp_dropsegment system,tempdb,master
go
use master
go
sp_configure "allow updates to system tables",1 ----允许修改系统表
go
delete sysusages where dbid=2 and lstart=0----dbid=2是tempdb,lstart=0是master设备
go
update sysusages set lstart=0 where dbid=2 ----这里只考虑一个tempdb设备
go
sp_configure "allow updates to system tables",0 ----恢复系统表不允许修改
27、 基础优化配置
sp_configure "max memory",1024*1024*1024*0.7/2048 -- 字节数/2048来设置(不能大于数据库最大内存既上面的kernel.shmmax值)
go
sp_configure "procedure cache size",51200 -- 字节数/2048来设置(100M) ,看从内存分配适应调整,一般超过20g的都可以翻倍增加
-- (过程高速缓存,通常是Max mem20%)
go
sp_cacheconfig "default data cache","1024*0.7*0.7M" (数据库最大内存*0.7)
go
sp_configure "enable housekeeper GC",1
go
enable housekeeperGC 配置参数的有效值:
·0 -禁用管家碎片收集任务,但为delete 命令启用消极碎片收集。必须使用 reorg reclaim_space 释放空页。这是消耗最少的选项,而且对性能的影响也最小,但如果出现许多空页累计的情况,可能会导致性能问题。Sybase不建议使用此值。
·1 - 为管家碎片收集任务和delete 命令都启用消极碎片收集。该值为缺省值。如果累计的空页数超过了应用程序所允许的数量,应考虑使用选项 4 或 5。可以使用 optdiag 实用程序获取空页统计信息。
·2 - 留作将来使用。
·3 - 留作将来使用。
·4-为管家碎片收集任务和delete 命令都启用积极碎片收集。此选项效率最高,但 delete 命令消耗的资源也最多。如果 DOL 表上的删除操作在一个批处理中,此选项最为理想。
·5-为管家启用积极碎片收集,为delete 启用消极碎片收集。对于删除操作,此选项比选项 4 消耗的资源要少。此选项适用于并行事务导致删除操作的情况。
--以下设置在分配给数据库的内存达到4G以上时采用
--sp_cacheconfig "tempdb_cache","500M","mixed"
--go
--sp_poolconfig tempdb_cache,"300M","16k"
--go
--sp_bindcache "tempdb_cache",tempdb
--go
--sp_cacheconfig "default data cache","cache_partition=2" (在SMP的环境中还有一个问题就是螺旋锁的竞争,当用sp_sysmon观察到资源缓存螺旋锁争夺超过10%时就需要分区。),看分配的cpu核数一般超过6个核的就可以设为2个分区,如果是12核的可以设置成4个分区
--sp_poolconfig "default data cache","128m","16k" (增加一个16K I/O缓存池,解决排序等大IO操作,需要在长期观察后才能使用性能最佳化.)
-- sp_configure "lock scheme",0,{allpages | datapages | datarows}
sp_configure "lock scheme",0,datarows --服务级锁的默认粒度就置为行级锁
go
sp_configure "max network packet size",4096
go
sp_configure "number of devices",30
go
sp_configure "number of locks",1000000
go
sp_configure "lock hashtable size",131072 --锁的20%必须是2的n次幂
go
sp_configure "number of open databases",20
go
sp_configure "number of open indexes",5000
go
sp_configure "number of open objects",5000
go
sp_configure "number of user connections",1000 --每个连接要占70k内存,看业务访问量适应增加
go
sp_configure "user log cache size",8192
go
sp_configure "disk i/o structures",4096
go
sp_configure "statement cache size",25000 --语句缓存,降低语句硬解析的时间,看分配的总内存,适当的增加
go
sp_configure "max online engines",2 ---看服务器的CPU核数,一般是设置服务器总核数 - 1
go
sp_configure "number of engines at startup",2
go
--sp_configure "number of worker processes",2 --多cpu要打开相应工作进程数
go
--如果安装了全文搜索引擎
sp_configure"enable cis",1
go
sp_configure"cis rpc handling",1
go
sp_configure"enable full-text search",1
go
附:
1、 关闭ASE的方法。
//连接到SERVER
isql-Usa -P -Setoh2
//关闭备份数据库
shutdownSYB_BACKUP
go
//关闭Server
shutdown
go
1、 启动ASE的方法。
在~/ASE-12_5/install/目录下,运行下列命令:
//启动Server
./startserver-f RUN_xujy
//启动备份服务器
./startserver-f RUN_SYB_BACKUP
2、 查看ASE启动情况。
在~/ASE-12_5/install/目录下,运行下列命令:
//显示当前运行的ASE服务
./showserver
3、 备份和恢复数据库。
dump database mydb to "/dev/data/mydb_back.dat" (备份到文件)。
装载数据库(更新或恢复),先创建一个数据库(如果没有这个数据库或这个数据库已删除的话),它的名称与要恢复的数据库名称一样,如mydb ,执行:
load database mydb from"/dev/data/mydb_back.dat" (从备份文件加载)
online database mydb
4、 为数据库添加设备。
isql-Sdata6 -Usa -P
diskinit name="etoh01",physname="/opt/data/etoh01.dat", size="1024M",cntrltype= 0,dsync = false
go
physname是设备的物理路径,可以在磁盘阵列上创建目录专门存放数据文件。
vdevno是数据库设备号,可以用sa用户登录到数据库master,运行sp_helpdevice查询当前的数据库设备信息,缺省设置时一个SERVER最多可以有10个设备。
创建的设备大小=size*sqlsrv.server_page_size(缺省大小为2K)
5、 创建新数据库。
isql-Sdata6 -Usa -P
create database etoh on etoh01="1000m"log on etoh01log="1000m"
go
可以用sa用户登录到数据库master,运行sp_helpdb查询当前的数据库信息。
6、 导入数据库信息。可以将表结构、数据等内容存为SQL语句,通过一下命令一次执行:
isql -Sdata6 -Usa -P -Ddatabase -i input.sql
常见错误及解决办法:
1.如果有Connection Error:two end failed类似这样的错误,可能是server没有启动,或者检查登录时候的用户名,server名和密码。
2.有这个错误提示的话 startserver: error while loading sharedlibraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No suchfile or directory
Building master device...
Task failed
/opt/sybase/ASE-12_5/bin/dataserver. error whileloading shared libraries:libstdc++-libc6.2-2.so.3: cannot open shared objectfile : No such file or directory.
Store "test" was not create
安装这个包:compat-libstdc++-296-2.96-132.7.2.3,问题可以解决,或者去linux中的添加和删除,进行安装开发系列中第1个,第2个和最后一个软件包,问题即可解决。
3.在linux5上安装sybase时,在进行serbuildres会提示segments fault错误,dataserver建立不起来。
在sybase根目录下,对.bash_profile文件添加
export LD_POINTER_GUARD =0, 然后编译.bash_profile使得配置生效。