前事不忘,后事之师,不忘国耻!

 用户注册  找回密码
 用户注册
搜索
查看: 18|回复: 0

[开发应用] Sybase ASE 安装与基础配置入门

[复制链接]

[开发应用] Sybase ASE 安装与基础配置入门

[复制链接]
dbaai

主题

0

回帖

33

积分

DBAAI

积分
33
9 小时前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?用户注册

×
Sybase ASE 安装与基础配置入门


一、具体的问题

很多老系统(银行核心、电力调度、铁路票务)至今仍跑在 Sybase ASE 上,新接手的 DBA 第一道坎就是把它从零装起来并跑通一套可用的服务。常见卡点有三个:一是安装介质少、找对版本费劲;二是安装包的位数(32 位还是 64 位)和操作系统不匹配,装完依赖库缺失、起不来;三是 dataserver 启动失败却看不到明确的报错,日志只说一句"异常退出"。本文把"从零装好一套 ASE 并做完基础配置"这件事一次讲清楚,让你第一次上线心里有底。

二、核心原理

ASE 不是单一进程,而是一组协同运行的服务:最核心的是 dataserver(数据服务,真正负责存数据、跑 SQL 的引擎),其次是 backupserver(专管备份与恢复),另外还有监控服务、XP 服务等可选组件。数据存放在 device(设备文件) 上,设备再被分配给 database(数据库);这和 Oracle 的表空间、SQL Server 的文件组思路类似,但 ASE 的顺序是"先有设备、再建库"——设备是物理文件,库是逻辑容器,二者必须分步操作。

安装方式主要有两种:图形化用 asecfgsyconfig 向导,适合有桌面的测试环境;**面的生产服务器用字符界面的 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 路径)。生成后用启动脚本拉起:
  1. startserver -f RUN_<SERVERNAME>
复制代码

2) 等约 10 秒,用 isql 连进去确认能登录:
  1. isql -S <SERVERNAME> -U sa -P <sa密码>
复制代码

连上后执行内存与引擎配置:
  1. sp_configure 'max memory', 2000000
  2. go
  3. sp_configure 'number of engines', 4
  4. go
  5. sp_configure 'default data cache', 1000000
  6. go
复制代码

(这里的单位是 2K 页,2000000 约 4GB。改完需重启 dataserver 生效。)

3) 初始化一个用户数据库的设备,并把库建在该设备上:
  1. disk init name='userdata', physname='/sybase/data/userdata.dat', size='500M'
  2. go
  3. create database appdb on userdata='500M'
  4. go
复制代码

4) 建登录、建用户并授权:
  1. sp_addlogin 'appuser', 'AppPwd#2026'
  2. go
  3. use appdb
  4. go
  5. sp_adduser 'appuser'
  6. go
  7. sp_role 'grant', 'sa_role', 'appuser'
  8. go
复制代码

5) 验证:重启 dataserver 后再次用 isql 登录,执行 sp_helpdb 能看到 appdb 且设备状态为 online;sp_configure 能看到 number of engines 已生效。前后对比:配置前默认内存小、引擎为 1,配置后缓冲池扩大、并发能力提升,简单查询的响应时间有明显下降。

四、一个常被忽略的坑:字符集与排序

曾有一次业务报"中文乱码",排查发现安装时选了默认排序 binary,应用端 UTF-8 写入后被当成单字节处理,存进去就是乱码。正确做法是在初始化前就决定好字符集(如 utf8cp936),事后改字符集要重建所有对象,代价极大。同样的坑还有页大小(2K/4K/8K/16K):一旦选错,已上线的库几乎无法无损变更。教训很直接:字符集和页大小在建实例前定死,后期几乎不能改,宁愿多花半小时规划,也不要上线后推倒重来。

五、实操检查清单


  • 安装前确认操作系统位数与 ASE 介质一致(64 位机装 64 位包),避免依赖库缺失导致起不来。
  • max memory 不要超过物理内存的 70%,给系统和备份服务留出余量,防 OOM 误杀。
  • 装完先建 backupserver 并验证能正常备份,再谈上线——没有备份的上线等于裸奔。
  • 页大小与字符集在初始化前定好,二者后期几乎不可改,规划阶段就要拍板。
  • 用专用低权限登录(如 appuser)连业务库,不要让应用直接用 sa 跑。
  • 每次改完 sp_configure 后记录并重启验证,避免"以为生效实际没生效"的假象。
  • 保留 RUN_<SERVERNAME> 启动脚本与 errorlog 路径,排错时第一手信息就在这。
  • 首次上线先在测试机完整跑一遍上述流程,确认 dataserver 与 backupserver 都能稳定起停,再做生产环境。
免责申明1、欢迎访问本站,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@dbabbs.com
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

QQ|Archiver|小黑屋|DBA论坛中国 ( 鲁ICP备20017503号-2 )

GMT+8, 2026-8-15 18:11 , Processed in 0.015200 second(s), 9 queries , MemCached On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表