|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?用户注册
×
Sybase ASE 安装与基础配置入门
一、具体的问题
很多老系统(银行核心、电力调度、铁路票务)至今仍跑在 Sybase ASE 上,新接手的 DBA 第一道坎就是把它从零装起来并跑通一套可用的服务。常见卡点有三个:一是安装介质少、找对版本费劲;二是安装包的位数(32 位还是 64 位)和操作系统不匹配,装完依赖库缺失、起不来;三是 dataserver 启动失败却看不到明确的报错,日志只说一句"异常退出"。本文把"从零装好一套 ASE 并做完基础配置"这件事一次讲清楚,让你第一次上线心里有底。
二、核心原理
ASE 不是单一进程,而是一组协同运行的服务:最核心的是 dataserver(数据服务,真正负责存数据、跑 SQL 的引擎),其次是 backupserver(专管备份与恢复),另外还有监控服务、XP 服务等可选组件。数据存放在 device(设备文件) 上,设备再被分配给 database(数据库);这和 Oracle 的表空间、SQL Server 的文件组思路类似,但 ASE 的顺序是"先有设备、再建库"——设备是物理文件,库是逻辑容器,二者必须分步操作。
安装方式主要有两种:图形化用 asecfg 或 syconfig 向导,适合有桌面的测试环境;**面的生产服务器用字符界面的 srvbuild 脚本,适合批量部署。无论哪种,安装程序只负责把软件放进目录并生成启动脚本,真正让库能用的关键三步是:初始化 master 设备、配置内存与引擎数、建好备份服务。
几个必须知道的核心参数:
- max memory:dataserver 能用到的最大物理内存,直接决定缓冲池大小,也是最容易配错的一项。
- number of engines:使用的 CPU 核数,受授权限制,单核授权只能配 1。
- default data cache:数据缓存,一般给到 max memory 的 50%~70%。
- procedure cache:存储过程缓存,通常给 10%~20% 左右。
配置错配最典型的后果:把 max memory 设得比机器物理内存还大,dataserver 一启动就被系统 OOM 杀掉,日志里却只写"异常退出",新手会卡很久找不到原因。
三、实例参考(动手步骤)
下面以 Linux 上一套 ASE 16.0 为例,给出可照做的初始化与基础配置流程。
1) 用 srvbuild 生成 dataserver(字符界面,按提示填 server name、page size 用 16k、master device 路径与大小 300M、error log 路径)。生成后用启动脚本拉起:
- startserver -f RUN_<SERVERNAME>
复制代码
2) 等约 10 秒,用 isql 连进去确认能登录:
- isql -S <SERVERNAME> -U sa -P <sa密码>
复制代码
连上后执行内存与引擎配置:
- sp_configure 'max memory', 2000000
- go
- sp_configure 'number of engines', 4
- go
- sp_configure 'default data cache', 1000000
- go
复制代码
(这里的单位是 2K 页,2000000 约 4GB。改完需重启 dataserver 生效。)
3) 初始化一个用户数据库的设备,并把库建在该设备上:
- disk init name='userdata', physname='/sybase/data/userdata.dat', size='500M'
- go
- create database appdb on userdata='500M'
- go
复制代码
4) 建登录、建用户并授权:
- sp_addlogin 'appuser', 'AppPwd#2026'
- go
- use appdb
- go
- sp_adduser 'appuser'
- go
- sp_role 'grant', 'sa_role', 'appuser'
- go
复制代码
5) 验证:重启 dataserver 后再次用 isql 登录,执行 sp_helpdb 能看到 appdb 且设备状态为 online;sp_configure 能看到 number of engines 已生效。前后对比:配置前默认内存小、引擎为 1,配置后缓冲池扩大、并发能力提升,简单查询的响应时间有明显下降。
四、一个常被忽略的坑:字符集与排序
曾有一次业务报"中文乱码",排查发现安装时选了默认排序 binary,应用端 UTF-8 写入后被当成单字节处理,存进去就是乱码。正确做法是在初始化前就决定好字符集(如 utf8 或 cp936),事后改字符集要重建所有对象,代价极大。同样的坑还有页大小(2K/4K/8K/16K):一旦选错,已上线的库几乎无法无损变更。教训很直接:字符集和页大小在建实例前定死,后期几乎不能改,宁愿多花半小时规划,也不要上线后推倒重来。
五、实操检查清单
- 安装前确认操作系统位数与 ASE 介质一致(64 位机装 64 位包),避免依赖库缺失导致起不来。
- max memory 不要超过物理内存的 70%,给系统和备份服务留出余量,防 OOM 误杀。
- 装完先建 backupserver 并验证能正常备份,再谈上线——没有备份的上线等于裸奔。
- 页大小与字符集在初始化前定好,二者后期几乎不可改,规划阶段就要拍板。
- 用专用低权限登录(如 appuser)连业务库,不要让应用直接用 sa 跑。
- 每次改完 sp_configure 后记录并重启验证,避免"以为生效实际没生效"的假象。
- 保留 RUN_<SERVERNAME> 启动脚本与 errorlog 路径,排错时第一手信息就在这。
- 首次上线先在测试机完整跑一遍上述流程,确认 dataserver 与 backupserver 都能稳定起停,再做生产环境。
|
|