简介:神通数据库(ShenTong)7.0.8 的 Linux 64 位安装包,面向需要在国产化环境中部署关系型数据库的系统管理员、DBA 及企业 IT 人员。该版本构建号为 342.185,在性能和功能上做了多项增强,适配 CentOS、RHEL、Ubuntu 等主流发行版,可用于政府、金融、电信等对数据安全与稳定性要求较高的行业场景,是替代国外数据库产品的重要选择。压缩包整体约 674MB,zip 格式,包含完整的安装程序和运行所需组件,可直接用于 x86_64 Linux 服务器离线部署,无需额外联网拉取依赖。目前已有 1477 人学习/下载。通过本安装包可获得神通数据库的服务器端程序,支持 ACID 事务、存储过程、触发器、视图等高级特性,并内置数据导入导出、备份恢复、性能监控等实用工具,能够帮助技术人员快速搭建国产数据库环境,并为后续的调优与日常运维提供坚实基础。
1. 先搞清楚:linux下的神通数据库安装包到底在装什么
神通数据库的 Linux 安装包,在国产化项目里属于“名字常见、教程稀少”的东西。我第一次在一台全新的国产服务器上装它,光卡在“不能直接用 root 装”和“初始化之后服务一直拉不起来”两件事上就折腾了一下午。这篇笔记直接围绕“linux下神通数据库安装包”这条主线展开:安装包长什么样、装之前要检查什么、安装初始化怎么串起来、连接验证怎么做,以及真正常见的安装报错怎么排。适合两类人读:一是刚接手国产数据库的运维和 DBA,二是需要批量在 x86 或 ARM 服务器上做环境复现的研发。看懂这一篇,你能把一台裸机从“无神通”变成“能用 dbstudio 和命令行正常访问”的状态,并且不会再在同样的坑里翻车。
2. 装之前别急着解压:环境检查、用户准备与安装包校验
很多人拿到安装包第一件事就是 tar 解压,然后直接跑安装脚本,结果报错之后一头雾水。神通数据库的安装程序对运行环境有硬性要求,严格来说,安装前的检查和安装本身同样重要。我一般会先花十分钟把机器“摸一遍”,确认资源、内核参数、系统用户和安装包完整性,再动安装工具。
2.1 用几个 linux 常用命令先摸清环境
安装神通数据库对内存、磁盘、CPU 架构有一定要求。不需要精确到官方文档的数值,但最低阈值要知道:内存建议不少于 2GB,磁盘剩余空间建议不低于 10GB(安装目录和数据目录分开更保险),CPU 架构要和你下载的安装包对应。
先把下面几个 linux 常用命令跑一遍:
# 查看内存总量和可用内存 free -h # 查看磁盘分区和剩余空间 df -h # 查看 CPU 型号和架构 lscpu # 查看操作系统发行版和 glibc 版本 cat /etc/os-release ldd --version | head -n 1这套命令的作用很直接:free -h确认内存够不够跑数据库服务;df -h确认安装在哪个分区、剩余空间是否充足;lscpu能看出是 x86_64 还是 aarch64,这决定你选下载哪个架构的安装包;cat /etc/os-release和ldd --version用来核对系统发行版与 glibc 版本,很多安装报错都出在 glibc 版本过老上。
注意:如果服务器上没有图形界面,安装向导可能无法弹出。后面章节会讲静默安装和 GUI 安装怎么选,提前确认 DISPLAY 环境变量是否存在,能少走很多弯路。
2.2 安装包文件名里的版本身世怎么看
神通数据库的安装包通常是一个 tar.gz 压缩包,文件名里会带版本号、平台和架构信息,比如以oscar_linux_x86_64、aarch64这类字段区分。拿到的包如果没在文件名里标架构,不要猜,用file命令看:
file oscar_linux_xxx.tar.gz tar tzf oscar_linux_xxx.tar.gz | head -n 20第一条命令会输出压缩包的真实格式和所属平台,如果显示gzip compressed data只代表它是普通压缩文件,真正有用的信息在后面的文本里,比如x86_64还是aarch64。第二条命令列出压缩包前 20 个文件,能让你看到安装程序入口、目录结构,也能提前判断这个包到底是不是你要装的服务端,还是只带客户端工具的包。
服务端安装包和客户端安装包经常分开发放。服务端装完会自带命令行工具,但图形化的 dbstudio 管理工具不在服务端包里,需要单独下载客户端包。如果只拿了服务端包,又盼望有 dbstudio,等看到 bin 目录里没有的时候不要意外。
2.3 创建专用用户并校验安装包完整性
神通数据库的安装程序一般不允许 root 用户直接执行,这是国产数据库常见的策略,也是很多人第一次遇到的拦截点。规范做法是新建一个专用系统用户来跑安装程序和数据库进程。
# 创建无登录 shell 的系统用户 oscar useradd -m -d /home/oscar -s /bin/bash oscar # 设置密码 passwd oscar # 把安装包复制到 oscar 用户目录下 cp oscar_linux_xxx.tar.gz /home/oscar/ chown oscar:oscar /home/oscar/oscar_linux_xxx.tar.gz # 切换到 oscar 用户 su - oscar # 校验安装包 SHA-256 校验和,与官方发布页的值对比 sha256sum oscar_linux_xxx.tar.gz这几步里的关键点:-m参数会同时创建家目录,后续安装目录和数据目录都放在这个家目录下比较合理;chown是为了确保安装包和安装目录都属于 oscar 用户,否则安装程序可能在写入解压目录时因为权限不足失败。sha256sum的作用不用多说,安装包在传输过程中被截断是很常见的事,截断的包解压时看不出来,装到一半报错才真正耽误时间。
3. 跑通安装流程:从解压到安装完成的三个关键命令
环境准备好以后,安装本体不复杂。整个流程可以拆成三个关键命令:解压、执行安装脚本、确认版本。真正容易出问题的,是安装程序是图形界面还是命令行界面、要不要手工初始化数据目录、授权文件放在哪里。
3.1 解压安装包:先看目录结构再跑脚本
tar.gz 的解压没有悬念,但解压之后不要急着跑脚本,先看目录结构:
tar zxvf oscar_linux_xxx.tar.gz cd oscar_linux_xxx ls -l解压后目录下一般会有安装脚本、文档、bin 子目录等。安装脚本的名字不同版本不完全一样,常见是setup.sh或install.sh。用ls -l先看一眼还能确认脚本有没有可执行权限。有些包在 Windows 下解压过一次再重新压缩,权限位会丢失,脚本没有x权限,执行时就会报Permission denied。
先给脚本补上执行权限再运行,养成习惯:
chmod +x setup.sh install.sh 2>/dev/null ./setup.sh如果说安装包自带的是纯二进制安装程序(比如installer文件),那就不需要 chmod,直接执行即可。区别在于,shell 脚本在解压后权限容易丢,而可执行二进制文件一般没问题。
3.2 GUI 安装与静默安装:没有显示器时的出路
安装向导通常会弹出一个图形界面,要求你选择安装目录、数据目录、端口号、编码方式,并设置超级管理员密码。这些信息最后会被写进数据库配置文件。图形界面交互简单,但在一台没有桌面环境的 Linux 服务器上,直接./setup.sh大概率会报DISPLAY相关的错误,常见表现是启动校准程序失败或画面一闪而过。
两种出路:
第一种,用 X 转发把安装界面转发到本地机器。前提是你的本机有 X Server,且 ssh 连接时开启了 X11 转发:
ssh -X oscar@服务器IP ./setup.sh第二种,直接用静默安装。大多数版本的安装程序支持静默参数,从命令行把安装目录、数据目录、端口、密码等一次性传给安装器。不同版本参数名有差异,常见做法是./setup.sh -silent配合应答文件,或者在命令行上加-D、-P这类短参数。跑之前先用./setup.sh -help看当前版本支持的参数清单,这是最可靠的做法,避免照搬别人的参数格式踩到不兼容的坑。
提示:我一般会优先用静默安装,尤其是批量部署的场景。图形界面每次手动点容易漏项,静默安装把参数固化下来,让每台机器的安装结果保持一致。
3.3 安装日志与成功判定:不要只看“安装完成”四个字
安装程序执行完会打印一段完成提示,但“安装完成”不等于“数据库可用”。装完之后第一件事是查看安装日志,确认日志里没有出现ERROR、FAILED级别的关键字。日志位置一般在安装包所在目录下的logs子目录,或者是$OSCAR_HOME/logs,具体路径以安装程序输出为准。
然后验证二进制文件和服务端文件是否完整:
# 切换到你设置的安装目录 cd $OSCAR_HOME # 列出重要子目录 ls -l bin etc lib data # 产看版本信息 bin/oscar version # 如果命令名不同,用 sqlmgr 或 oscard 这类可执行文件试试如果bin目录下有可执行文件并且能正常输出版本,说明安装包本身没问题。到这一步,安装阶段才算真正完成。注意,data目录如果还不存在,说明数据目录还没初始化,这一步会放到下一章讲,不要急着启动服务。
4. 初始化与首连:数据目录、服务启停和命令行验证
安装程序完成不代表数据库能直接连。神通数据库要把数据目录初始化出来、服务进程拉起来、监听端口打开,客户端工具才能访问。这一章全部是实操,把初始化参数、启停方式和三种连接验证一次说完。
4.1 初始化数据目录:端口、编码、超管密码三个参数
较新的安装包里,数据目录初始化一般已经做进安装向导。如果你是用静默安装跳过初始化,或者初始化失败想重做,就需要手工初始化。神通数据库的初始化工具和 PostgreSQL 风格接近,名字可能是initdb,也可能是oscar_initdb,在$OSCAR_HOME/bin下。
手工初始化命令如下:
cd $OSCAR_HOME/bin # 创建一个空的数据目录 mkdir -p /home/oscar/data # 初始化数据目录:指定数据目录、编码、端口 ./initdb -D /home/oscar/data -E UTF8 --port=54321 --pwfile=/tmp/oscar_pw.txt参数说明:-D指定数据目录,目录必须存在且为空;-E UTF8设置默认编码,业务系统如果向数据库写入中文,强烈建议统一用 UTF8,避免入库乱码;--port=54321指定服务监听端口,如果这个端口被占用,初始化会失败;--pwfile指向一个包含密码的临时文件,文件中第一行会被作为数据库超级管理员的密码。
--pwfile这种临时密码文件用完记得删掉:
rm -f /tmp/oscar_pw.txt有一类常见错误是数据目录下已经有残留文件,初始化直接中断。所以如果第一次初始化失败,要先把目录里所有文件清掉再重来。
4.2 启动与停止:用脚本拉起数据库服务
在新装的服务器上,我一般会用安装目录自带的启停脚本,而不是直接执行数据库进程,因为脚本会处理 PID 文件和日志路径。
cd $OSCAR_HOME # 启动服务 ./bin/oscar start # 查看进程是否起来 ps -ef | grep oscar | grep -v grep # 查看监听端口 netstat -tlnp | grep 54321启动之后,用ps和netstat双重确认。ps能看到数据库进程是否存在,netstat -tlnp能看到端口是否被监听。很多时候服务进程在,但端口没监听,说明配置里监听地址或端口不对。默认监听 127.0.0.1 时,远程客户端连不上但本机能连,这个问题放到下一章的避坑清单里细说。
停止服务的命令对称:
./bin/oscar stop如果在bin下没找到oscar命令,先ls -l bin看真实命令名,常见的有oscard、oscarserver等。不同版本命令名有点不一样,以实际安装目录里的可执行文件为准。
4.3 三种连接验证:sqlmgr、dbstudio、Python 驱动
服务起来后,验证数据库能连,才算闭环。我一般按顺序测三种方式,从命令行到图形工具再到程序驱动,覆盖不同使用场景。
命令行工具验证,用的是安装目录自带的 sqlmgr 客户端:
cd $OSCAR_HOME/bin ./sqlmgr -h 127.0.0.1 -p 54321 -U oscar -d osrdb输入超管密码后,进入 SQL 命令行,执行select version();验证服务可用。-d参数指定数据库名,不同版本默认数据库名可能不同,可以是osrdb或testdb,不确定时先不指定库名,用-l列出所有数据库再选。
然后是 dbstudio 图形工具连接。这个工具一般在客户端安装包里,单独下载后在 Windows 或 Linux 桌面运行。连接参数和命令行一致:主机填数据库服务器 IP,端口 54321,用户名和密码用初始化时设置的超管账号。连接成功后左侧能看到数据库列表和系统目录。
最后是 Python 驱动。很多神通数据库版本和 PostgreSQL 协议兼容,官方也提供 Python 驱动。如果拿不到官方驱动,用psycopg2做兼容连接往往能直接跑:
import psycopg2 conn = psycopg2.connect( host="192.168.1.10", port=54321, user="oscar", password="your_password", dbname="osrdb", connect_timeout=5 ) cur = conn.cursor() cur.execute("select version()") print(cur.fetchone()) cur.close() conn.close()这段代码里,connect_timeout=5是值得保留的参数,它避免网络不通时程序长时间卡住不报错。如果连接报协议不支持,再去找官方 Python 驱动,不要为了省事强行改连接参数硬试。
5. 安装现场避坑:最常见的 5 个报错与排查顺序
安装神通数据库的现场,翻车集中在几个固定环节。下面 5 条按我遇到概率从高到低排列,每条都按“现象 → 原因 → 解决”写清楚。
5.1 root 用户安装直接被拒
现象:用 root 执行安装脚本,刚启动就退出,提示不能以 root 身份运行,或者直接闪退。
原因:安装程序检测到当前用户是 root,拒绝继续。这是为了防止数据库进程拿到过高的系统权限,属于安全设计,不是安装包损坏。
解决:按前面 2.3 节的步骤创建oscar用户,把安装包归属到该用户后,用su - oscar切换身份再执行安装。注意切换用户后要重新确认安装包目录的写权限,root 解压过的文件,oscar 用户可能只有读权限,需要chown -R oscar:oscar一下。
5.2 安装界面弹不出来或中文乱码
现象:执行安装脚本后,没有出现图形界面,终端上打印几行提示就停了;或者界面弹出来,中文全部显示成方块。
原因:无图形界面的服务器没有 DISPLAY 环境变量;或者系统缺中文字体。前者是主因,后者在装了最小化系统后特别常见。
解决:没有显示器的场景就别走 GUI,改用静默安装参数。如果必须要图形界面,加ssh -X登录后再执行。中文字体缺失时,可以安装fontconfig和中文字体包,但最省时间的还是静默安装,不依赖字体和 X 环境。
5.3 初始化数据目录时报“shared memory”错误
现象:执行初始化命令,报错信息里出现shared memory、semaphore或kernel.shmmax字样,初始化中断。
原因:神通数据库初始化时要申请共享内存和信号量,系统内核参数设置得太小,尤其是 Docker 容器里更常见,因为容器的默认共享内存上限往往只有 64MB。
解决:临时调大内核参数:
sysctl -w kernel.shmmax=17179869184 sysctl -w kernel.shmall=4194304 sysctl -w kernel.sem="250 32000 100 128"这三个参数分别控制共享内存最大字节数、共享内存页数、信号量上限。想永久生效,要写到/etc/sysctl.conf里,然后执行sysctl -p。改完参数后,重新执行初始化命令。如果在容器里,还要在容器启动参数里加大/dev/shm的大小,否则宿主机参数调了也不生效。
5.4 服务起来了但远程连不上
现象:本机用 sqlmgr 能连,换一台机器用 dbstudio 或 Python 连接,一直超时。
原因:最常见的两个问题,一是数据库监听地址只绑了 127.0.0.1,二是服务器防火墙拦截了端口。监听地址配置在数据库配置文件中,新装默认值经常是 localhost,只在回环地址上监听。
解决:先确认监听地址:
netstat -tlnp | grep 54321如果输出里的地址是 127.0.0.1,就把配置文件里的监听地址改成0.0.0.0,然后重启服务。再检查防火墙:
firewall-cmd --zone=public --add-port=54321/tcp --permanent firewall-cmd --reload如果用的是 iptables,则用iptables -A INPUT -p tcp --dport 54321 -j ACCEPT。改完再让远程客户端重连。这条坑在国产化服务器上出现频率特别高,因为很多最小化安装的服务器默认开着防火墙。
5.5 卸载残留导致第二次安装失败
现象:第一次安装失败后卸载,再装同一版本或新版本,安装到一半报错说目录已存在、文件冲突。
原因:卸载程序没有清理干净,残留了配置文件、数据目录或系统用户。安装程序检测到旧版本痕迹后拒绝覆盖。
解决:手工清理残留再重装。重点检查安装目录、数据目录、以及/etc下是否有残留配置脚本:
# 停掉服务 $OSCAR_HOME/bin/oscar stop # 删除安装目录和数据目录 rm -rf $OSCAR_HOME rm -rf /home/oscar/data # 检查系统用户是否需要保留 # 如果不打算再用,可以一并删除注意:删用户前确认这台机器上没有其他服务依赖 oscar 用户。要是只是重装,把安装目录和数据目录清干净就够了,用户留着不影响第二次安装。
6. 把安装做成可重复的事:静默应答文件与验证脚本
单机装成功是熟练,多台机器都能一次性装成功才是效率。最后这部分讲两个进阶习惯:用静默应答文件让每一台服务器安装参数一致,用验证脚本在装完后自动给出“是否可用”的结论。顺便解决一个高频需求:只备份表结构怎么用 dbstudio 做。
6.1 静默安装应答文件:参数固化一次,复用多次
第一次安装时手动记录下你填的安装目录、数据目录、端口、编码和密码策略。然后把这些参数写进一个应答文件,以后每台新机器都复用同一条命令:
./setup.sh -silent -f /home/oscar/install_answer.conf应答文件的常见写法是一个 text 文件,每行一个参数。具体参数名看安装程序的-help输出,不同版本有差异。但通用的思路是:端口、目录、编码、密码做成常量,机器名和 IP 做成变量,在批量脚本里循环替换。这样做的好处很明显,下次新到一台服务器,不用再面对图形界面一个个手填,少点几次就少几次出错的可能。
6.2 安装后的自动化验证脚本
我每次装完一台都会跑一段验证脚本,确认服务、端口、SQL 执行三件事同时通过。脚本如下:
#!/bin/bash PORT=54321 DB_USER=oscar DB_NAME=osrdb OSCAR_HOME=/home/oscar/oscar # 1. 检查进程 pgrep -f "oscar" > /dev/null || { echo "PROCESS: FAIL"; exit 1; } echo "PROCESS: OK" # 2. 检查端口 ss -tlnp | grep ":$PORT" > /dev/null || { echo "PORT: FAIL"; exit 1; } echo "PORT: OK" # 3. 检查 SQL 是否可执行 $OSCAR_HOME/bin/sqlmgr -h 127.0.0.1 -p $PORT -U $DB_USER -d $DB_NAME \ -W "your_password" -c "select 1;" > /dev/null || { echo "SQL: FAIL"; exit 1; } echo "SQL: OK" exit 0脚本第一项用pgrep确认进程存在,第二项用ss -tlnp确认端口在监听,第三项用 sqlmgr 的-c参数直接执行select 1。三个条件都要通过才算安装成功。如果你的 sqlmgr 不支持-W传密码,可以把密码写到.pgpass格式的配置文件里,避免密文出现在命令行历史中。
6.3 只备份表结构:dbstudio 与命令行的两条路
安装完成后大家问得最多的问题之一,是怎么用 dbstudio 只备份表结构,不备份数据。dbstudio 里连接数据库后,在库或 schema 上右键,菜单里能找到导出或转储相关选项,选择“仅结构”或“Schema”模式,就会生成一份只包含CREATE TABLE、索引、视图等 DDL 语句的 SQL 文件。入口名称在不同版本里有差别,但核心思路是选“结构”而不是“数据”。
命令行方式也一样可行,查询系统表拿到建表语句:
select table_name from information_schema.tables where table_schema = 'public';然后用 sqlmgr 或任意客户端工具,对目标表执行show create table 表名或从系统目录中读取列定义和约束,拼接出 DDL。这块国产数据库各自实现不同,做法上我更推荐直接用 dbstudio 的导出功能,万一遇上没有 dbstudio 的纯命令行环境,再用系统表去查。
回想这几年装过的神通数据库,最值的习惯就是“每台机器装完都留一份应答文件和验证脚本”。看似多花十分钟,实际上是在给自己留后悔药——下次环境出问题,恢复一份可重复的安装流程,比重头摸索快得多。希望这些经验能帮你在 linux 下装神通数据库时少走几步弯路。
本文还有配套的精品资源,点击获取