简介GBase UP平台安装手册面向数据库运维工程师、系统集成人员及大数据平台实施人员针对Linux RHEL6环境下GBase UP混合数据库平台的部署需求提供从系统准备到引擎安装的完整操作指引。资源包为单一PDF文档大小约2.87MB内容按章节组织涵盖硬件配置与RAID规划、操作系统安装与多网卡绑定、环境检查与内核参数调优、YUM源与sudo配置以及Hadoop生态、Oracle、GBase 8s等引擎的安装部署流程。手册对节点一致性、端口占用、防火墙与SELINUX状态、SSH服务、系统时间同步等前置条件逐项说明并给出静默安装响应文件修改、数据库创建与客户端安装等关键步骤。已有92人学习适合需要按官方规范完成GBase UP平台搭建与初期配置的读者参考也可作为部署前的环境核查清单使用。1. GBase-UP 安装手册到底解决什么问题从一台裸机到能跑 SQL 的 40 分钟手里拿到一台刚装好 RHEL6 的虚拟机磁盘没分区、依赖没装、内核参数全是默认值这时候把 GBase-UP 的安装包丢进去大概率会在第一个检查项就卡住。GBase-UP 是国产数据库 GBase 系列里面向统一平台的部署组件安装手册.pdf 这类文档的核心价值不是告诉你「有这个产品」而是把「一台裸 Linux 到能执行第一条 SQL」之间的所有前置条件、依赖顺序、参数取值讲清楚。它适合两类人一类是第一次接触国产数据库、需要在 RHEL6 或同类 Linux 上把环境跑通的运维新手另一类是做过 MySQL、Oracle 部署想快速摸清 GBase-UP 安装边界的老手。这篇笔记按手册的落地路径拆开把每一步的命令、参数和翻车点写透让你照着敲就能复现。2. 装之前先把 RHEL6 这台机器摸清楚系统检查与依赖补齐2.1 为什么 RHEL6 是绕不开的起点GBase-UP 的安装手册里RHEL6 出现的频率远高于其他发行版原因不复杂大量存量国产化项目的基础镜像就是 RHEL6 或它的衍生版本CentOS 6 系列。这个版本的内核是 2.6.32glibc 是 2.12和现在主流的 RHEL7/8 差异很大。安装手册里写的依赖包名、服务管理命令service 而不是 systemctl、防火墙配置方式iptables 而不是 firewalld全部是按 RHEL6 的语境来的。如果你拿一台 Ubuntu 或者 RHEL8 去套手册第一步就会在依赖检查上翻车。所以装之前先确认三件事cat /etc/redhat-release看版本号是不是 6.xuname -r看内核是不是 2.6.32 系列getconf LONG_BIT确认是 64 位。GBase-UP 只支持 64 位系统32 位机器直接放弃。这三条命令跑完心里就有底了。2.2 依赖包和内核参数的补齐命令RHEL6 最小化安装出来的系统缺的包比你想的多。手册里通常会列一张依赖表但实际部署时最容易被忽略的是这几个libaio、numactl、bc、binutils、compat-libstdc。缺 libaio 会导致数据库实例启动时报异步 IO 错误缺 numactl 在 NUMA 架构的服务器上性能会明显掉。# 挂载 RHEL6 安装 ISO 作为本地 yum 源 mkdir -p /mnt/cdrom mount -o loop /root/rhel-server-6.9-x86_64-dvd.iso /mnt/cdrom # 配置本地 yum 源 cat /etc/yum.repos.d/local.repo EOF [local] nameLocal RHEL6 baseurlfile:///mnt/cdrom enabled1 gpgcheck0 EOF # 安装核心依赖 yum clean all yum install -y libaio libaio-devel numactl numactl-devel \ bc binutils compat-libstdc-33 elfutils-libelf-devel \ gcc gcc-c make readline-devel # 验证关键包是否到位 rpm -qa | grep -E libaio|numactl|compat-libstdc这段脚本的逻辑是先把 ISO 挂成 yum 源避免去外网找包内网环境根本连不出去然后一次性装齐编译和运行依赖。参数上注意gpgcheck0是因为本地 ISO 的 GPG key 不一定导入内网部署图省事直接关掉校验。最后那条rpm -qa是后悔药装完立刻确认别等到安装程序报错再回头查。内核参数方面手册一般会给一个sysctl.conf的追加片段。核心是共享内存段kernel.shmmax、kernel.shmall和信号量kernel.sem。RHEL6 默认的 shmmax 往往只有 4GB 左右而 GBase-UP 部署的实例可能需要更大的共享内存。# 备份原配置 cp /etc/sysctl.conf /etc/sysctl.conf.bak # 追加 GBase-UP 所需内核参数 cat /etc/sysctl.conf EOF kernel.shmmax 68719476736 kernel.shmall 4294967296 kernel.shmmni 4096 kernel.sem 250 32000 100 128 fs.file-max 6815744 net.ipv4.ip_local_port_range 9000 65500 net.core.rmem_default 262144 net.core.rmem_max 4194304 net.core.wmem_default 262144 net.core.wmem_max 1048576 EOF # 生效 sysctl -pkernel.shmmax设成 64GB 是个常见起点实际值要看你物理内存和实例规划。kernel.sem四个值分别是 SEMMSL、SEMMNS、SEMOPM、SEMMNI顺序不能错。sysctl -p之后如果报某个参数不存在说明内核模块没加载需要先modprobe对应模块。2.3 用户、目录和资源限制的准备工作GBase-UP 不建议用 root 直接跑数据库进程手册里一般会要求创建一个专用用户比如gbase。这个用户的 uid/gid、家目录、资源限制都要提前配好。# 创建 gbase 用户组和用户 groupadd -g 5000 gbase useradd -u 5000 -g gbase -m -d /home/gbase -s /bin/bash gbase # 设置密码 echo gbase2024 | passwd --stdin gbase # 配置资源限制 cat /etc/security/limits.conf EOF gbase soft nproc 65536 gbase hard nproc 65536 gbase soft nofile 65536 gbase hard nofile 65536 gbase soft stack unlimited gbase hard stack unlimited EOF # 创建安装目录并授权 mkdir -p /opt/gbase chown -R gbase:gbase /opt/gbase chmod 755 /opt/gbase这里有个容易忽略的点limits.conf改完之后必须重新登录 gbase 用户才生效su - gbase切换过去用ulimit -a确认。如果直接在 root 下su gbase不带减号环境变量和 limits 可能不会重新加载这是血泪经验。3. 跑安装程序从解压到实例初始化的完整链路3.1 安装包解压与安装方式选择GBase-UP 的安装包通常是一个 tar.gz 或者自解压的 bin 文件。手册里会区分「图形化安装」和「命令行静默安装」两种方式。生产环境服务器一般没有图形界面所以静默安装是主流。解压之前先确认磁盘空间df -h看目标分区至少留出安装包体积的 3 倍空间。# 切换到 gbase 用户 su - gbase # 解压安装包假设包名为 GBase-UP-8.0.tar.gz cd /home/gbase tar -zxvf GBase-UP-8.0.tar.gz # 进入解压目录查看安装脚本 cd GBase-UP-8.0 ls -l # 通常会看到 install.sh、silent.cfg、uninstall.sh 等文件解压后先别急着跑install.sh。手册里会有一个silent.cfg模板静默安装靠的就是这个配置文件。你需要根据实际环境改里面的路径、端口、实例名、字符集等参数。改错一个参数安装程序可能跑到一半才报错清理起来很麻烦。3.2 silent.cfg 关键参数逐项说明下面这张表是静默安装配置里最常改的参数每一项都对应手册里的一个配置项。参数名可能因版本略有差异但含义一致。参数项含义典型值注意事项INSTALL_PATH安装根目录/opt/gbase必须提前创建并授权给 gbaseDB_PORT数据库监听端口5258确认未被占用netstat -tlnp检查INSTANCE_NAME实例名gbase01同一台机器多实例时不能重复CHARACTER_SET字符集utf8国产化项目常用 utf8 或 gbkPAGE_SIZE页大小16384建库后不可改按业务数据量选DATA_PATH数据文件目录/opt/gbase/data建议独立分区避免和系统盘混用LOG_PATH日志目录/opt/gbase/log预留足够空间日志增长快MEMORY_LIMIT实例内存上限8G不超过物理内存的 70%改完silent.cfg后用grep -v ^# silent.cfg | grep -v ^$过滤掉注释和空行确认实际生效的参数没有遗漏。3.3 执行安装并验证实例状态# 以 gbase 用户执行静默安装 cd /home/gbase/GBase-UP-8.0 ./install.sh -f silent.cfg -s # 安装完成后检查进程 ps -ef | grep gbase # 检查端口监听 netstat -tlnp | grep 5258 # 用自带客户端连接验证 cd /opt/gbase/bin ./gbase -u root -p -P 5258 -h 127.0.0.1install.sh的-f指定配置文件-s表示静默模式。安装过程会输出日志默认在/opt/gbase/log/install.log。如果安装中途失败先看这个日志的最后 50 行大部分错误是权限不足、端口占用、依赖缺失这三类。安装成功后ps -ef应该能看到 gbase 相关的守护进程netstat能看到端口处于 LISTEN 状态。最后用客户端连上去执行一条SELECT VERSION();能返回版本号就说明实例真正跑起来了。4. 安装完别急着走初始化配置与连通性验证4.1 环境变量与开机自启配置安装程序跑完gbase 用户的环境变量可能还没配全。手动补一下.bash_profile把GBASE_HOME、PATH、LD_LIBRARY_PATH写进去否则每次都要敲全路径。# 编辑 gbase 用户环境变量 cat /home/gbase/.bash_profile EOF export GBASE_HOME/opt/gbase export PATH\$GBASE_HOME/bin:\$PATH export LD_LIBRARY_PATH\$GBASE_HOME/lib:\$LD_LIBRARY_PATH export GBASE_SIDgbase01 EOF # 生效 source /home/gbase/.bash_profile # 验证 which gbase echo $GBASE_HOME开机自启方面RHEL6 用chkconfig或直接写/etc/rc.local。GBase-UP 安装目录下一般会提供一个服务脚本把它软链到/etc/init.d/下再用chkconfig --add注册。# 注册服务脚本名以实际为准 cp /opt/gbase/etc/gbase_service /etc/init.d/gbase chmod x /etc/init.d/gbase chkconfig --add gbase chkconfig gbase on # 验证 chkconfig --list gbase4.2 防火墙与 SELinux 的处理RHEL6 默认开着 iptables 和 SELinux这两样不处理远程客户端连不上。手册里通常会让你直接关掉内网环境这么做没问题但要知道自己在关什么。# 临时关闭 SELinux setenforce 0 # 永久关闭改配置文件 sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config # 开放数据库端口或者直接关 iptables iptables -I INPUT -p tcp --dport 5258 -j ACCEPT service iptables save # 如果内网完全可信也可以直接停掉 service iptables stop chkconfig iptables offsetenforce 0只对当前生效重启后恢复。改/etc/selinux/config才是永久生效。iptables 规则用service iptables save保存到/etc/sysconfig/iptables否则重启丢失。这两步做完从另一台机器telnet 目标IP 5258应该能通。4.3 用客户端做一次完整的读写验证连通性通了不代表数据库能用。建库、建表、插入、查询这一套走完才算真正验证。-- 连接数据库 -- gbase -u root -p -P 5258 -h 127.0.0.1 -- 创建测试库 CREATE DATABASE testdb; -- 切换库 USE testdb; -- 建表 CREATE TABLE t_user ( id INT PRIMARY KEY, name VARCHAR(50), create_time DATETIME ); -- 插入 INSERT INTO t_user VALUES (1, gbase_test, NOW()); -- 查询 SELECT * FROM t_user; -- 清理 DROP DATABASE testdb;这套 SQL 跑通说明实例的存储引擎、字符集、权限都没问题。如果建表时报字符集错误回去检查silent.cfg里的CHARACTER_SET和客户端连接时的字符集是否一致。如果插入中文乱码多半是客户端终端的LANG变量没设成zh_CN.UTF-8或en_US.UTF-8。5. 安装环节最容易翻车的五个地方排查与避坑5.1 依赖检查通过但安装时报 libaio 错误现象install.sh跑到初始化实例阶段日志里出现libaio.so.1: cannot open shared object file。原因rpm -qa能看到 libaio 已安装但安装的是 32 位版本而 GBase-UP 是 64 位程序需要libaio.x86_64。解决rpm -qa | grep libaio确认包名带.x86_64如果没有就yum install -y libaio.x86_64。RHEL6 的 yum 有时会默认装 i686 版本手动指定架构。5.2 端口明明没占用安装却报端口冲突现象netstat -tlnp看不到 5258 被占用但安装程序坚持说端口不可用。原因RHEL6 的ip_local_port_range默认范围可能覆盖了 5258内核把这个端口预留给了临时连接。解决sysctl net.ipv4.ip_local_port_range查看范围如果是32768 61000这种5258 不在里面那问题不在这。更常见的原因是 IPv6 的端口占用netstat -tlnp默认只显示 IPv4加-6参数看 IPv6 监听。或者直接用lsof -i:5258查。5.3 安装完成后客户端连不上报 connection refused现象本机ps -ef能看到 gbase 进程但远程telnet不通。原因数据库监听地址绑定了127.0.0.1没有绑0.0.0.0。或者 iptables 规则没保存重启后失效。解决检查实例配置文件里的bind_address或listen_address参数改成0.0.0.0或具体的内网 IP。iptables 用service iptables status确认规则存在service iptables save持久化。5.4 用 root 跑安装脚本导致文件权限混乱现象安装过程没报错但 gbase 用户启动实例时报Permission denied。原因直接用 root 执行了install.sh安装出来的文件属主是 rootgbase 用户没有写权限。解决卸载重装全程用 gbase 用户操作。如果已经装完用chown -R gbase:gbase /opt/gbase补救但某些隐藏文件的权限可能还是不对重装更干净。这是最典型的翻车场景手册里一般会加粗提醒但新手容易忽略。5.5 磁盘空间足够安装到一半报 no space left on device现象df -h看目标分区还有几十 GB但安装程序报空间不足。原因/tmp分区满了。安装程序解压临时文件默认写到/tmpRHEL6 的/tmp往往只有几 GB。解决df -h /tmp确认如果满了清理/tmp下的旧文件或者设置TMPDIR环境变量指向大分区export TMPDIR/opt/gbase/tmp再重新跑安装。6. 把安装手册用成可复用的部署模板参数化与批量落地单台装完只是开始真正有价值的是把这套流程变成可复用的脚本。我一般会把silent.cfg里的变量抽出来用一个 shell 脚本接收参数批量在多台机器上跑。#!/bin/bash # deploy_gbase.sh - 批量部署 GBase-UP 的封装脚本 # 用法: ./deploy_gbase.sh INSTALL_PATH DB_PORT INSTANCE_NAME INSTALL_PATH${1:-/opt/gbase} DB_PORT${2:-5258} INSTANCE_NAME${3:-gbase01} # 生成 silent.cfg cat /tmp/silent_${INSTANCE_NAME}.cfg EOF INSTALL_PATH${INSTALL_PATH} DB_PORT${DB_PORT} INSTANCE_NAME${INSTANCE_NAME} CHARACTER_SETutf8 PAGE_SIZE16384 DATA_PATH${INSTALL_PATH}/data LOG_PATH${INSTALL_PATH}/log MEMORY_LIMIT8G EOF # 执行安装 cd /home/gbase/GBase-UP-8.0 ./install.sh -f /tmp/silent_${INSTANCE_NAME}.cfg -s # 检查结果 if [ $? -eq 0 ]; then echo INSTANCE ${INSTANCE_NAME} DEPLOYED ON PORT ${DB_PORT} else echo DEPLOY FAILED, CHECK /opt/gbase/log/install.log exit 1 fi这个脚本的关键在于把三个最常变的参数路径、端口、实例名提出来其余用默认值。批量部署时配合ssh或ansible推过去执行每台机器改一下端口和实例名就行。参数校验方面建议在脚本开头加一段检查端口是否在 1024-65535 之间、安装路径是否存在、gbase 用户是否有写权限。这些检查能挡掉 80% 的低级错误。验证方法上我习惯在安装完成后跑一个自动化检查脚本把前面提到的进程、端口、连接、读写四项串起来#!/bin/bash # verify_gbase.sh - 安装后自动化验证 PORT${1:-5258} echo 1. 进程检查 ps -ef | grep gbase | grep -v grep echo 2. 端口检查 netstat -tlnp | grep ${PORT} echo 3. 连接检查 /opt/gbase/bin/gbase -u root -p -P ${PORT} -h 127.0.0.1 -e SELECT VERSION(); echo 4. 读写检查 /opt/gbase/bin/gbase -u root -p -P ${PORT} -h 127.0.0.1 -e CREATE DATABASE IF NOT EXISTS verify_db; USE verify_db; CREATE TABLE IF NOT EXISTS t_check (id INT, ts DATETIME); INSERT INTO t_check VALUES (1, NOW()); SELECT COUNT(*) FROM t_check; DROP DATABASE verify_db; 这个验证脚本跑完四项全绿才算真正交付。任何一项失败对应的排查方向在前面避坑章节里都能找到。我自己的习惯是每装完一台就把这个脚本的输出存一份到/opt/gbase/log/verify_$(date %Y%m%d).log后面出问题回溯的时候有据可查。安装手册.pdf 给的是标准流程但真正让部署稳定的是这些围绕手册补出来的检查点和封装脚本。希望帮到你。本文还有配套的精品资源点击获取