多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Sybase 15.7安装全攻略:图形与静默安装、内核参数及避坑指南

Sybase 15.7安装全攻略:图形与静默安装、内核参数及避坑指南 简介Sybase 15.7 是金融、电信行业广泛使用的数据库管理系统其安装过程涉及许可协议、组件选择、服务账户配置等多个环节。这份 doc 文档以分步图解方式呈现安装全流程适合初次接触 Sybase 的 DBA、开发人员及运维人员按图对照操作避开常见配置陷阱。资源为单个 Word 文档压缩包仅 1.52MB轻量易用打开即可查看完整的安装节点说明与界面确认要点。已有 1779 人学习这一安装指引被较多新手作为上手参考。文档不仅梳理了从启动安装程序到完成安装的逐步操作还对密钥、产品版本、服务账户等容易犹豫的选项给出了默认选择建议可帮助读者更快完成部署并理解每个选择对后续环境的影响是一份省时省力的 Sybase 15.7 安装速查手册。1. Sybase 15.7 安装什么样的场景让你必须翻这篇笔记在国产化和云原生数据库铺天盖地的今天还在翻 Sybase 15.7 安装步骤的人大概率是接手了存量系统。客户生产库是 ASE 15.7新申请的测试服务器要按原版本重建或者要从老 Unix 往新 Linux 迁移——这种场景没有一键迁移第一步就是老老实实把 Sybase 15.7 装起来。ASE 15.7 安装主体的操作量并不大难在它默认的安装行为和老派的操作系统依赖kernel 参数、license 注册、interfaces 文件这三处稍不留神就翻车很多人卡在一两个小时不动的安装摘要页甚至装完启动就报错。这篇笔记按图形安装和静默安装两条线走一遍完整流程把每一步界面上该填什么、参数怎么配、哪些地方是血泪经验讲清楚。刚接手 Sybase 环境的 DBA 能照着点完做过迁移验证的运维也能直接拿走静默安装模板。2. Sybase 15.7 安装前的环境准备介质、账号、内核参数一次到位2.1 安装介质与账号准备先解压、先建用户、再谈下一步ASE 15.7 的 Linux 安装介质通常是一个 .tgz 压缩包拿到手先不要急着解压到生产目录我一般习惯放到 /tmp 下单独建一个解压目录确认目录空间足够再做后续操作。解压的账号用当前登录的普通用户就行root 不影响解压但后续安装程序绝对不能用 root 跑这一点在 15.7 的版本尤其严格。常见做法是这样的# 在临时目录解压目录剩余空间建议不低于 5GB避免安装中段失败 mkdir -p /tmp/ase157_install tar -zxvf ASE157_linux_x86_64.tgz -C /tmp/ase157_install解压完成后临时目录里会有一个 setup 可执行文件和配套的资源目录。tar 解压这一步没有什么悬念但需要注意解压出来的安装程序必须能被当前用户执行如果解压时用了 root后来切回普通用户导致权限不足安装程序会在启动阶段直接退出报 permission denied。接着创建 sybase 专用账号。ASE 官方一贯不建议用 root 跑数据库服务生产环境更不应该让数据库进程持有 root 权限。我通常这样建账号# 创建专用低权限账号-m 生成家目录-s 指定登录 shell useradd -m -d /home/sybase -s /bin/bash sybase mkdir -p /opt/sybase chown -R sybase:sybase /opt/sybase这里 -d 参数把家目录定在 /home/sybase后续环境变量 SYBASE 指向 /opt/sybase两者分开管理数据文件放 /data 甚至独立挂载点这是比较干净的结构。账号建好后用 su - sybase 切换过去确认能正常登录再看一眼 umask建议保持 022避免安装出来的配置文件带上了意外权限。权限问题在后面的避坑章节还会遇到一次root 装完普通用户起不来的现象很常见所以这一步别省。2.2 Linux 内核参数共享内存、信号量、异步 IO 是启动的关键ASE 15.7 在启动服务引擎时会对 Linux 内核参数做检查参数不满足时安装能成功但装完启动 master 引擎会直接报错或者夯住。这个坑几乎每个人都会踩我见过太多人安装很顺利最后卡在启动这一步。需要调整的参数集中在 /etc/sysctl.conf常见配置如下# 编辑 /etc/sysctl.conf追加以下内容后执行 sysctl -p 生效 kernel.shmmax 4294967295 kernel.shmall 2097152 kernel.sem 250 32000 100 128 fs.aio-max-nr 1048576参数含义说明如下kernel.shmmax 是单个共享内存段的最大字节数ASE 的 master 引擎启动时要创建大段共享内存设成 4GB 左右足够如果你要分配超过 4GB 的 large memory pool这个值还要往大调。kernel.shmall 是共享内存页总数默认值偏小建议至少 2 百万页不然 ASE 申请共享内存时会被系统拒绝。kernel.sem 有四个值分别表示信号量数组最大个数、系统范围内最大信号量数、单个信号量操作的最大次数、信号量数组个数。ASE 的多引擎模式下对信号量的消耗比较大第四值 128 一般够用超过 32 个引擎再网上加。fs.aio-max-nr 对应 ASE 的异步 IO 线程15.7 在读写设备时会申请 AIO 请求系统限制过小会在启动日志里刷出 cannot create AIO 的错误。修改后先执行 sysctl -p 验证语法再用 ipcs -l 和 cat /proc/sys/kernel/sem 确认当前值生效。这些命令都不需要重启系统这是内核参数调整比老 Unix 方便的地方。顺手把 /etc/security/limits.conf 里的 nofile 和 nproc 也查一下ASE 运行时每个引擎要打开一堆文件描述符建议 nofile 至少设为 65536。2.3 图形环境与 DISPLAY 检查没有 X 的时候走哪条路ASE 15.7 的安装程序是 Java GUI 界面默认启动需要图形环境。如果直接在带桌面的服务器上装双击运行就没有任何问题但生产服务器大多是无桌面的最小化安装这时候要么配置 X 转发要么直接走静默安装。先检查当前环境是否支持图形安装echo $DISPLAY xhost 有输出说明 DISPLAY 已经指向可用的 X Server远程终端可以配合 ssh -X 转发图形界面。没有显示环境的机器不要纠结看到 Unable to open display 直接转用第 4 章的静默安装方案即可。需要说明的是setup 带 -console 参数也可以跑字符界面安装但字符界面的交互体验并不比响应文件好多少操作效率反而低。所以下面的图形安装章节适用于有图形环境的场景无图形环境请直接跳到第 4 章用静默安装一步到位。3. ASE 15.7 图形安装图解从欢迎页到最终确认3.1 启动 setup 与产品选择界面第一个容易走神的页面图形安装的启动命令很简单切换 sybase 用户后执行su - sybase cd /tmp/ase157_install ./setup启动后出现的是 Java 风格的欢迎页没有特殊信息点 Next 就行。真正需要注意的页面是产品选择页。ASE 15.7 的安装包里除了 Adaptive Server Enterprise 本体还带 Open Client 和 SDK 组件。这里有一个常见的误区只勾选 ASE Server 而不勾 Open Client装完之后 isql 命令根本找不到因为 isql 属于 OCSOpen Client组件。我自己一贯的建议是如果这台机器要当客户端连其他 Sybase 库就把 Adaptive Server、Open Client、SDK 三项都勾上如果纯粹做为后端数据库服务器使用Adaptive Server 和 Open Client 两项就够了。SDK 是给开发调接口用的不是 DBA 场景就别增加体积。产品选择界面可能需要展开的选项界面结构大致对应下表界面区域需要操作的内容说明Product Selection勾选 ASE Server必选对应服务端引擎附加组件勾选 Open Clientisql 等客户端工具依赖此项附加组件勾选 SDK可选开发接口库DBA 可以不装Installation Directory填写 /opt/sybase保持与规划一致不要带中文路径确认产品勾选和安装目录后点 Next 会进入具体组件选择。这个页面上有两个下拉框要注意一个是字符集另一个是排序顺序很多人在这两个下拉框里选错导致后续中文乱码。字符集的详细选法放在 3.3 节单独说。3.2 配置 ASE Server端口、master device、设备大小图解安装程序在组件选择之后进入 Server 配置页这里决定新建的 ASE 实例叫法和基础存储。界面字段比较多整理成一张表方便对照填写我按一次正确配置的经验来说明界面字段填写内容说明Server NameTEST157实例名后面 isql -S 后面跟的名字Port Number5000默认端口一个机器多个实例要起不同端口Master Device Path/opt/sybase/data/master.dat主设备路径目录要存在Master Device Size500MB默认值生产环境不建议小于这个值Sybase System Database保持默认system DB 放 master 设备后续可迁移Page Size16KASE 15.7 推荐 16K老库迁移注意与源库一致在这页上最容易动手改的是 Master Device Size 和 Page Size。Page Size 是建库的物理页大小ASE 15.7 默认 16K如果你的老库是从低版本升级来的源库页大小是多少就选多少否则后面 load database 会因页大小不一致被拒绝。Master Device Size 默认 500MB 一般够用master 设备不建议单独扩容空间不够时新建数据设备即可没必要一开始调很大。这里有个小细节安装程序在填 Server Name 时不允许带下划线命名规则很短直接填字母数字组合最省事。端口号如果被本机其他进程占用安装不会立刻报错但启动后连接会失败建议提前用 netstat -anp | grep 5000 检查一下端口冲突。3.3 字符集与排序顺序中文环境选 cp936 还是 utf8字符集选择页大概是整个 ASE 15.7 安装里对生产影响最大的选项因为安装完成后字符集不能随便改改字符集基本意味着重新初始化系统库。这个页面长年在安装图解里被一笔带过但实际翻车率极高。常见的选择是 utf8 和 cp936对应 GBK。我的经验是老系统历史数据是 GBK 编码库内数据已经以 GBK 形式存储新环境就应该选 cp936保证兼容老数据新起的系统、数据从零开始选 utf8 更符合当前应用习惯也避免排序和比较出现预期外行为。对比项cp936GBKutf8中文兼容老中文系统完善新系统兼容性好乱码风险与老应用编码一致时低应用字符集不匹配时高排序行为二进制字典序多字节排序需配置改造成本新系统不推荐数据从零开始推荐排序顺序一般保持默认的 binary如果业务上有中文按拼音排序的需求选字典序dictionary但最好在测试环境先验证ASE 的排序规则对查询结果影响比想象中更大。安装完成后再用 sp_helpsort 可以查看当前字符集和排序顺序这一步在识别已有环境时非常好用新装阶段也建议装完顺手确认一下。3.4 核对安装摘要再到 finish最后一页别急着点 Done所有配置填完后安装程序会进入摘要页Summary列出前面所有配置项。很多工程师在图形界面里一路 Next 习惯了到这个页面直接点 Install其实这个页面值得花 30 秒核对一遍。我提醒自己看三样东西安装目录路径、Server Name 和端口、字符集选项。这三样中任何一样错了安装本身可能还是会成功但服务起不来或者连不上时排查成本很高。点 Install 后进入真正的文件拷贝阶段耗时大约 5 到 15 分钟取决于机器磁盘速度。这个阶段不要中断网络中断、ssh 断开都可能导致安装不完整。安装结束时界面会提示启动服务选项可以选择立即启动但我习惯不在这里启动等补丁、license 都确认好再手工启动避免服务以默认受限配置先跑起来。图形安装完成后/opt/sybase 下会生成 ASE-15_7、OCS-15_0、SYSAM-2_0 这类版本目录还会生成一个 SYBASE.sh 环境变量脚本后续所有操作都要先 source 这个脚本。4. 静默安装Sybase 15.7 响应文件生成与改造无图形环境一步落地4.1 响应文件从哪来先用图形安装记录一次静默安装不依赖图形环境但需要一份响应文件RSP。响应文件的来源有两个一是安装介质里自带的模板二是先用图形安装跑一遍并用记录参数生成。绝大多数情况我是用后者因为模板里的键太多手动改容易漏而实际跑一次生成的文件跟当前安装介质和平台严格对应可信度高。生成响应文件的命令在图形安装的最后一步安装程序界面里有一个复选框写着 Save a record of this installation勾选后指定保存路径安装过程就会把本次所有配置写成响应文件。还有一种常见做法是命令行方式# 在有图形环境的第一台机器上执行-r 参数记录安装响应 ./setup -r /tmp/ase157_install/ase157.rsp-r 生成的文件路径记下来后续静默安装就靠它。这里有个重要提示生成的响应文件里可能包含你在图形安装时填写的 sa 口令文件权限别放开保存成 sybase 用户可读即可避免把口令带入到流水线日志里。4.2 最小可用的静默安装命令一条命令装完拿到响应文件后在无图形环境的服务器上执行静默安装。命令本身很短# 在目标机上执行-D 指定响应文件 ./setup -D /tmp/ase157_install/ase157.rsp --silent注意 --silent 也可以写成 -silent不同小版本对参数拼写敏感度不一样我建议先用 --silent 试报参数错误就改成 -silent。安装过程没有界面输出全靠后台日志反馈进度所以不要直接把它当前台任务挂着用 nohup 包一层nohup ./setup -D /tmp/ase157_install/ase157.rsp --silent /tmp/setup_nohup.out 21 这条命令把日志写入 /tmp/setup_nohup.out安装结束后需要从这个文件里找安装结果而不是靠命令返回值判断。静默安装同样会检查内核参数如果第 2 章的内核参数没做安装能完成但后续服务启动失败所以安装前的准备工作一条都不能省。4.3 响应文件里三个必须改的键Server 名、端口、字符集直接从图形安装生成的响应文件在另一台机器上复用时机上环境不同有几个键值需要修改。响应文件本质是键值对文本结构类似 ini常见的需要动的位置如下ASE_SERVER_NAMETEST157 ASE_PORT_NUMBER5000 ASE_MASTER_DEVICE_PATH/opt/sybase/data/master.dat ASE_MASTER_SIZE_MB500 ASE_CHARSETutf8 ASE_SORTORDERbinary这三个方面是我每次必检查的第一ASE_SERVER_NAME 在同一环境里不能与其他 Sybase 实例冲突多实例部署时尤其明显花几秒钟看一眼不要直接照搬第一台机器的实例名。实例名决定 interfaces 文件里的连接项isql 连接时 -S 参数用的就是这个名字。第二ASE_PORT_NUMBER 要跟目标机上的实际端口规划一致。多实例或者端口被占用的场景响应文件里的端口和 interfaces 文件不一致时最典型的故障表现是 isql 报无法连接但数据库服务看起来是活的。第三ASE_MASTER_DEVICE_PATH 如果目标机的 /opt/sybase 挂载位置不同这个路径必须同步改否则安装程序会把主设备写到不存在的目录里安装过程看不出来启动时报设备文件找不到。改完后执行 4.2 的静默命令日志里出现 Installation completed successfully 字样才算结束。遇到报错先看 nohup 输出文件定位到具体是哪一步失败再回查对应的响应文件键值不要盲目重跑。5. Sybase 15.7 安装避坑与排查四个高发问题的现象、原因、处理5.1 现象启动 ASE 时提示 kernel 参数不满足服务进程直接退出这个问题出现在安装完成后的首次启动阶段。启动命令跑完没有任何报错但用 ps 查看进程时发现只剩下守护进程master 引擎没有起来查看 $SYBASE/ASE-15_7/install 下的启动日志里面会写着类似 Shared memory not available 或者 kernel semaphore limits 的信息。原因是服务器的 /etc/sysctl.conf 没有提前调整ASE 启动时申请共享内存段和信号量被内核拒绝。很多人以为安装成功了服务就一定能启动忽略安装前检查这是最常见的误判。解决方法是按第 2 章的内核参数配置好 sysctl.conf执行 sysctl -p 生效后再次启动服务。注意如果之前启动过 ASE残留共享内存段要先清理用 ipcs -m 查看并释放或者直接重启一次服务器再启动 ASE避免共享内存段处于异常状态。5.2 现象isql 连不上本地库报接口文件错误安装完成后运行 isql -S TEST157 报错提示找不到服务器接口信息或者显示 Unable to connect to server。服务进程实际是存在的netstat 也能看到端口监听但 isql 就是连不上。原因通常是 interfaces 文件位置不对ASE 和客户端工具通过 interfaces 文件来解析服务器名到主机名和端口的映射。这个文件由安装程序自动生成但如果安装完成后切换了登录用户而新用户没有 source SYBASE.sh环境变量指向错误路径isql 就会去错误的目录查找接口文件。解决方法是确认当前用户是 sybase执行 source /opt/sybase/SYBASE.sh 后再试。如果 interfaces 文件本身就缺失用 dataedit 或直接手工编辑 interfaces 文件补上服务器条目但更省事的做法是重新执行安装程序中的配置步骤让它重新生成接口文件。这个文件在后期的日常运维里还会经常被改到务必知道它在 $SYBASE 目录下。5.3 现象用 root 执行安装程序装完后普通用户一切命令都报权限错误这个坑在第一次装 Sybase 的人身上频繁出现。安装全程用 root 操作安装本身成功服务也能用 root 启动但切到 sybase 用户后想要重启服务发现日志目录、设备文件全部没有写权限各命令跑起来各种 permission denied。原因很直接安装程序创建的文件属主都是 root普通用户没有权限管理数据库服务。ASE 官方不支持以 root 身份运行数据库引擎装完后再去批量 chown 虽然是补救办法但文件数量和路径分散很容易漏掉某些目录。正确解决方法是安装前严格按第 2 章用 su - sybase 切换用户后再执行 setup。已经出现权限问题的可以用一条命令递归修正属主chown -R sybase:sybase /opt/sybase修正后重新登录 sybase 用户再启动服务。5.4 现象License 注册不生效服务运行若干分钟后强制停止ASE 15.7 在安装时会要求配置 License开发测试环境常用评估模式或者 License Server 模式。有些部署使用 SYSAM 组件注册 License但 License 服务器地址不正确或授权文件未生效时服务可以启动运行一段时间通常是 30 分钟或数小时后引擎被强制关闭日志里出现 license 过期或未找到有效授权的提示。原因在于 License 注册是启动时校验的如果设置的是指向某台 License Server而该 Server 上没有对应的授权ASE 会以试用模式运行到期自动停。排查方法是查看 SYSAM 日志和 ASE 启动日志确认 License 服务器的连接状态如果无意接入 License 服务器可以直接重启配置把 License 类型改成 Express 或本地授权模式重新注册后再启动服务。这类问题在测试环境最常见注册后没有观察服务是否跨过关键时间点等到半夜被监控告警才知道服务已经停了。6. 装完 Sybase 15.7 后的验证与收尾五条命令踢完最后一脚6.1 验证安装的最小命令集与接口文件备份习惯安装和配置都完成后我习惯用以下命令做最终验证不装额外的图形管理工具直接在命令行确认服务可用source /opt/sybase/SYBASE.sh isql -S TEST157 -U sa -P 密码 -w 200 -e select version go执行后能看到 ASE 版本号输出说明实例、端口、接口文件、License 都处在正常链路。如果 select version 能跑出来安装就可以判定为成功。用 sp_helpsort 查一次字符集和排序顺序确认与规划一致。6.2 启动脚本和 interfaces 文件的日常处理习惯服务启动直接调用 $SYBASE/ASE-15_7/install 下的 RUN_TEST157 脚本这个脚本包含服务启动所需的所有参数。日常维护中不要手改 RUN 文件里的启动参数需要调整时用 sp_configure 在线修改配置项否则重启后配置可能被脚本覆盖。interfaces 文件建议也养成好习惯每次修改前先 cp 一份带日期的备份再动内容因为新增实例或调整端口时这个文件是唯一手动维护的依赖文件。我最早在测试机上装 Sybase 15.7 时自认为 Linux 基础不错没检查内核参数直接开始装结果服务反复启动失败最后一条条比对日志才找到共享内存的坑。后来每次在无图形服务器上装 Sybase我会固定先改 sysctl.conf再建 sybase 用户最后生成响应文件搞静默安装这套顺序已经走了很多遍没有出过问题。希望你这次的 ASE 安装也能一次通过。本文还有配套的精品资源点击获取
返回列表