本文記錄 Linux (Red Hat/CentOS) 環境下 Sybase ASE 12.5/15.x 的安裝、資料庫裝置建立、參數優化、段管理與備份伺服器配置全流程,供 DBA 參考。
useradd sybase
mkdir -p /sybase
chown sybase:sybase /sybase
su - sybase/sybase,解壓並執行 ./setup -console。YES。/sybase/sybase。Full(完整安裝)。~/.bash_profile). ${HOME}/SYBASE.sh
export LD_POINTER_GUARD=0 # RHEL5 必須,否則 Segmentation Fault
執行 source ~/.bash_profile 生效。
/etc/hosts: 127.0.0.1 dacsdb
/etc/sysconfig/network: HOSTNAME=dacsdb
srvbuild.LCDACS_SERVER.rssybinit.release_directory: USE_DEFAULT
sybinit.product: sqlsrv
sqlsrv.server_name: LCDACS_SERVER
sqlsrv.new_config: yes
sqlsrv.do_add_server: yes
sqlsrv.network_protocol_list: tcp
sqlsrv.network_hostname_list: dacsdb
sqlsrv.network_port_list: 7100
sqlsrv.server_page_size: 16k
sqlsrv.master_device_physical_name: /data/sysdata/master.dat
sqlsrv.master_device_size: 1024
sqlsrv.master_database_size: 512
sqlsrv.sybsystemprocs_device_physical_name: /data/sysdata/sybsystemprocs.dat
sqlsrv.sybsystemprocs_device_size: 256
sqlsrv.sybsystemprocs_database_size: 256
sqlsrv.default_backup_server: BACKUP_LCDACS_SERVER
ASE-12_5/bin/srvbuildres -r dacs/srvbuild.LCDACS_SERVER.rs
srvbuild.DACS_BACK.rssybinit.release_directory: /sybase/sybase
sybinit.product: bsrv
bsrv.server_name: BACKUP_LCDACS_SERVER
bsrv.new_config: yes
bsrv.do_add_backup_server: yes
bsrv.network_protocol_list: tcp
bsrv.network_hostname_list: dacsdb
bsrv.network_port_list: 7200
bsrv.related_sqlsrvr: LCDACS_SERVER
bsrv.sa_login: sa
bsrv.sa_password: USE_DEFAULT
ASE-12_5/bin/srvbuildres -r dacs/srvbuild.DACS_BACK.rs
使用 isql -Usa -P -SLCDACS_SERVER 連線執行:
-- 資料裝置
disk init name="lcdacs", physname="/data/sysdata/lcdacs.dat", size="2g", dsync=true
go
disk init name="lcdacs_log", physname="/data/sysdata/lcdacs_log.dat", size="2g", dsync=true
go
-- 建立資料庫
create database LCDACS on lcdacs="30G" log on lcdacs_log="2G"
go
-- 建立用戶與授權
sp_addlogin dacs, dacs123, "LCDACS"
go
use LCDACS
go
sp_changedbowner dacs
go
-- 擴展 tempdb
use master
go
disk init name='tempdbdev01', physname='/data/sysdata/tempdbdev01.dat', size='1G', dsync='false'
go
disk init name='tempdbdev01_log', physname='/data/sysdata/tempdbdev01_log.dat', size='1G', dsync='false'
go
alter database tempdb on tempdbdev01='1G' log on tempdbdev01_log='1G'
go
use tempdb
go
exec sp_dropsegment 'logsegment', 'tempdb', 'master'
go
exec sp_dropsegment 'system', 'tempdb', 'master'
go
exec sp_dropsegment 'default', 'tempdb', 'master'
go
sp_configure "max memory", 0, "1G"
go
sp_configure "allocate max shared mem", 1
go
sp_cacheconfig "default data cache", "1G"
go
sp_cacheconfig "default data cache", "cache_partition=2"
go
sp_poolconfig "default data cache", "768M", "32k"
go
sp_configure "procedure cache size", 1024000
go
-- 命名快取綁定資料庫
sp_cacheconfig "tempdb_cache", "1G", "mixed"
go
sp_bindcache "tempdb_cache", tempdb
go
sp_cacheconfig "dacs_cache", "1G", "mixed"
go
sp_bindcache "dacs_cache", LCDACS
go
sp_configure "max online engines", 15
go
sp_configure "number of engines at startup", 15
go
sp_configure "number of worker processes", 16
go
sp_configure "max parallel degree", 1
go
sp_configure "number of user connections", 600
go
sp_configure "number of locks", 10000
go
sp_configure "lock scheme", 1, datarows
go
sp_dboption "LCDACS", "trunc log on chkpt", true
go
-- 新增裝置
disk init name="dacs_data01", physname="/data/sysdata/dacs_data01", size="1G"
go
disk init name="dacs_index01", physname="/data/sysdata/dacs_index01", size="1G"
go
alter database LCDACS on dacs_data01="1G"
go
alter database LCDACS on dacs_index01="1G"
go
-- 建立段並擴展
use LCDACS
go
sp_addsegment dacs_data, LCDACS, lcdacs
go
sp_addsegment dacs_index, LCDACS, lcdacs
go
sp_extendsegment dacs_data, LCDACS, dacs_data01
go
sp_extendsegment dacs_index, LCDACS, dacs_index01
go
# 重啟 ASE
shutdown SYB_BACKUP
shutdown LCDACS_SERVER
# 重新啟動
# 驗證連線
isql -Usa -P -SLCDACS_SERVER -w300
dsync=true 確保寫入直接同步到磁碟,保護資料一致性。16k 適合大資料列、LOB 儲存,建立後不可變更。trunc log on chkpt 控制記錄增長。