全面盘点南大通用GBase 8s数据库安装包内置脚本组件

发布时间:2026-06-09

覆盖数据库全生命周期管理:从环境检查 → 一键部署 → 性能监控 → 数据备份 → 环境卸载,10 个脚本 + 1 个配置文件 + 1 个 readme 文档,五大功能类别完整覆盖。全部脚本位于安装包解压后的 PluginPak/ 目录下。

一、组件总览

配置root

init.ini —自动化安装的参数配置文件

定义数据库实例名、路径、端口、内存、字符集等全部关键参数。install_init.sh 执行时首先读取此文件。

部署root

install_init.sh — 一键自动化安装脚本

覆盖软件安装、实例初始化、优化配置的全流程自动化。配置来源于 init.ini,执行过程中调用check_env.sh、collector_gbase.sh和collector_env.sh。

部署root

check_env.sh — 安装前环境检查脚本

自动检测系统工具、库文件、主机名配置、防火墙(firewalld)、SELinux 等软硬件环境是否符合安装要求,缺失库文件时尝试自动创建软链接修复。

监控root

collector_gbase_tmp_v1.3.sh — 实例信息收集脚本(临时版)

功能与 collector_gbase.sh 类似,增加了内存分配器信息采集项(nbm、rbm、cac、afr、ffr 等),工具路径采用固定写法。供特定兼容性场景使用。

监控root

collector_env.sh — 安装后环境信息收集脚本

采集数据库部署环境(空间布局、日志配置、内存段、网络监听、版本、环境变量)和 OS 静态信息(内核参数、磁盘分区、dd 读写测试等),用于备案和问题追溯。

监控gbasedbt

llog_freq_statis.sh — 逻辑日志切换频率统计脚本

分析消息日志,按日期和小时维度统计近 8 天逻辑日志切换频次,输出 CSV 时序报告,最后附 onstat -l 完整日志状态。

备份gbasedbt

auto_bak.sh — 自动备份脚本

执行 0 级完整备份(ontape -s -L 0),备份关键配置文件,生成并执行 update_statistics.sh 更新统计信息,自动清理超过保留天数的历史备份。

清理root

clean_env.sh — 环境清理/卸载脚本

采用交互式确认机制:关闭实例、卸载软件、确认删除 chunk 文件(二次确认)、确认删除 OS 用户、删除安装目录。用于重新安装或彻底卸载数据库环境。

二、核心配置文件 init.ini

init.ini 是自动化安装的参数中枢,install_init.sh 首先读取并解析该文件。配置项分为三大类:

2.1 数据库基本参数

  • USER_OS_PWD — gbasedbt 密码,须含数字、大小写、符号(默认 GBase@123)

  • HOMEDIR — 用户家目录(默认 /home/gbasedbt)

  • GBASEDBTSERVER — 实例名,字母开头(默认 gbase01)

  • IPADDRESS — 监听地址(默认 0.0.0.0)

  • PORT — 服务端口(默认 9088)

  • GBASEDBTDIR — 软件安装路径(默认 /opt/gbase8s)

  • CLIENT_LOCALE — 客户端字符集(默认 zh_CN.utf8)

  • DB_LOCALE — 数据库字符集(默认 zh_CN.utf8)

2.2 服务器效率参数

  • SHM_SIZE — 数据库内存(MB),0 = 可用内存 1/4,须 ≥ 512

  • CHUNK_SIZE — 磁盘空间(MB),须 ≥ 5120

  • CHUNK_DIR — chunk 存储路径

  • CPU_VPS — CPU 核数,0 = 逻辑 CPU - 1

  • CHUNK_MAX_SIZE — chunk 极值(MB),须 > CHUNK_SIZE

2.3 服务器特殊参数

  • DB_SERVICE — 系统服务安装选项:

  • 0 = 不安装系统服务

  • 1 = 安装但不设开机自启

  • 2 = 安装且设开机自启(service gbase8s start|stop|restart|status)

三、安装部署类脚本

3.1 install_init.sh

install_init.sh 是安装包的核心引擎,实现 GBase 8s 从软件安装、实例初始化到优化配置的全流程自动化。执行无需入参,配置来源于 init.ini。

执行阶段:

阶段一 · 环境校验与参数检查

检查 root 用户、bash 解释器;验证 init.ini 存在性,校验磁盘空间、内存、参数合法性、IP 格式、端口占用、密码复杂度;自动调用 check_env.sh

阶段二 · 数据库软件安装

创建 gbasedbt 用户和组;配置 sysctl(shmmax、shmall、shmmni、sem、swappiness)和 limits.conf(nproc=65536、nofile=1048576);静默安装数据库软件(30 分钟超时保护);创建 chunk 目录和代理文件

阶段三 · 实例初始化与空间创建

生成 profile、sqlhosts、onconfig 配置文件;调整 30+ 项关键参数(自动计算双缓冲池、CPU VP、空间布局);创建 6 个 chunk 文件(rootchk、plogchk、llogchk、tmpchk01、datachk01、sbschk);初始化实例并创建 plogdbs、llogdbs、sbsdbs、tmpdbs01、datadbs01 五个空间;迁移物理日志、逻辑日志

阶段四 · 服务配置与信息汇总

生成 systemd 服务文件(按需设置自启);创建 PluginPak 目录并复制辅助脚本;调用 collector_gbase.sh 和 collector_env.sh 采集信息;输出安装汇总报告(含 JDBC URL)

阶段五 · 清理中间文件

清理数据库安装过程中辅助数据库安装产生的临时文件或者目录

3.2 check_env.sh

安装前对操作系统环境进行自动化检查,确保软硬件条件满足安装要求:

  • 系统工具 — tar、timeout、unzip、id、getent、pwdx、passwd、sleep、netstat,缺失时统一报错列出

  • 系统库文件 — libnsl.so.1、libaio.so.1、libgcc_s.so.1 等,支持 x86_64 / aarch64,缺失时自动创建软链接修复(前提是以上库文件存在基础共享库文件)

  • Java 时区数据库二进制文件 — tzdb.dat,支持 x86_64 / aarch64,缺失时自动修复

  • 主机名 — 检查 /etc/hosts,缺失自动添加 127.0.0.1 映射

  • 防火墙 — 自动停止并永久禁用 firewalld

  • SELinux — 临时关闭(setenforce 0)并永久禁用

3.3 auto_start.sh

将 GBase 8s 注册为 systemd 系统服务,实现开机自启动:

1.生成 /etc/init.d/gbase8s 服务脚本(start/stop/restart/status)

2.生成 /etc/systemd/system/gbase8s.service 单元文件(Restart=on-failure)

3.重载 systemd 配置并设置开机自启

4.交互式询问是否立即重启数据库服务进行验证

⚠️ 注意:该脚本包含数据库重启操作,生产环境使用前请评估是否可以重启数据库。

四、数据操作类脚本

4.1 dbexport.sh

导出指定数据库的完整结构、数据和注释,自动生成配套的导入脚本:

五、运维监控类脚本

5.1 collector_gbase.sh

全面采集数据库实例运行状态、操作系统性能指标,支撑故障诊断与性能分析。

部署路径:数据库安装完成后脚本默认存放路径:$GBASEDBTDIR/PluginPak/inst_ma

结果输出:采集数据自动打包为 stats_yyyymmdd.tar.gz,存放路径:$GBASEDBTDIR/PluginPak/collector_gbase

运行建议:建议通过 crontab 配置每 5 分钟定时执行

入参说明:

  • 参数 1(采集历史保留天数):指定历史采集文件的留存时长,脚本自动清理过期文件

  • 参数 2(配置文件路径):数据库环境变量配置文件的绝对路径

采集内容:

  • 数据库指标(onstat 系列):ath(线程)、act(活跃线程)、u(会话)、ses(会话详情)、b(缓冲区)、l(日志)、d(空间/Chunk)、x(事务/锁)、ckp(检查点)、V(版本)、pe(页信息)、glo(全局)、io(IO详情)、rwm(读写锁)

  • 操作系统指标:netstat(网络)、iostat(磁盘IO)、vmstat(虚拟内存)、sar(综合性能)、top(进程)、df(磁盘空间)、uptime(负载)、ps(进程)、ifconfig(网卡)、dmesg(内核)、ulimit(资源限制)

5.2 collector_gbase_tmp_v1.3.sh

全面采集数据库实例运行状态、操作系统性能指标,支撑故障诊断与性能分析。

部署路径:数据库安装完成后脚本默认存放路径:$GBASEDBTDIR/PluginPak/inst_ma

结果输出:采集数据会在当前脚本路径下自动打包为 stats_yyyymmddhhmm.tar.gz

运行建议:建议通过 crontab 配置每 5 分钟定时执行

入参说明:

  • 参数 1(采集历史保留天数):指定历史采集文件的留存时长,脚本自动清理过期文件

  • 参数 2(配置文件路径):数据库环境变量配置文件的绝对路径

采集内容:

  • 数据库指标(onstat/oncheck 系列):ath(线程)、act(活跃线程)、u(会话)、ses 0(会话详情)、stk(线程栈)、c(配置)、F(页清洗)、k(锁)、l(日志)、m(消息日志)、b(缓冲区)、p(性能)、P(分区)、R(缓冲区队列)、s(锁)、t(表)、T(表锁定)、x(事务)、X(缓冲区)、con(连接)、dic(字典)、glo(全局状态)、iof/iog/ioq/iov/iob(IO详情)、lmx(锁)、mgm(内存管理)、nsd/nss(网络)、nta(线程)、ppf(页配置)、prc(参数)、sch(调度)、seg(共享内存)、sle(等待)、sts(状态)、tpf(表配置)、wai(等待)、wmx(等待锁)、rwm(读写锁)、ckp(检查点)、d(空间/chunk)、cfg(参数)、osi(OS信息)、V(版本)、opn(打开表)、stm(SQL语句)、nbm/rbm(消息)、cac(缓存)、laq(日志队列)、mem(内存)、pe(空间页信息)、rea(读写统计)、tabnames.partnum(表分区信息)

  • 操作系统指标:netstat(网络)、iostat(磁盘IO)、vmstat(虚拟内存)、sar(系统性能)、top(进程)、uptime(系统负载)、ps(进程)、ifconfig(网卡信息)、df(磁盘空间)、dmesg(内核日志)、ulimit(系统资源限制)

5.3 collector_env.sh

安装完成后收集数据库部署环境和 OS 静态信息,用于备案和问题追溯。

部署路径:数据库安装完成后脚本默认存放路径:GBASEDBTDIR/PluginPak/inst_ma

结果输出:采集数据自动打包为 env_yyyymmdd.tar.gz,存放路径:$GBASEDBTDIR/PluginPak/collector_env

运行建议:建议通过 crontab 配置每 5 分钟定时执行

入参说明:

  • 参数 1(采集历史保留天数):指定历史采集文件的留存时长,脚本自动清理过期文件

  • 参数 2(配置文件路径):数据库环境变量配置文件的绝对路径

采集内容:

  • 数据库:onstat -d(空间)、-l(日志)、-g mem(内存段)、-g seg(VP内存)、-g ntt(网络监听)、-(服务器状态)、-g sync(ER复制)、-V(版本)、-g env(环境变量)

  • 操作系统:ip addr、uname -a、hostname、sysctl -a、firewalld、df -h、free -m、lscpu、fdisk -l、lsblk、lspci、dd 读写测试、ping 网关

5.4 llog_freq_statis.sh

按日期 + 小时维度统计近 8 天内逻辑日志切换的频次分布。

部署路径:数据库安装完成后脚本默认存放路径:$GBASEDBTDIR/PluginPak/inst_ma

结果输出:该脚本只打印屏显结果,需要手动追加到 CSV 文件中

运行建议:建议每周执行一次

入参说明:

  • 参数 1(配置文件路径):数据库环境变量配置文件的绝对路径

采集内容:

  • 数据库消息日志(onstat -m)、物理日志、逻辑日志的运行状态、空间使用率及读写统计等信息。

六、备份管理类脚本

6.1 auto_bak.sh

执行数据库 0 级备份(完整备份),备份 sqlhosts 和 onconfig 配置文件,同时生成更新统计信息的辅助脚本,并自动清理过期的历史备份。

部署路径:数据库安装完成后脚本默认存放路径:$GBASEDBTDIR/PluginPak/inst_ma

结果输出:默认保存在 gbasedbt 的家目录下,生成文件 backup_YYYYMMDD/HHMMSS.tar.gz

入参说明:

  • 参数 1(保留天数):历史备份保留天数

  • 参数 2(备份保留路径):可选参数

七、环境清理类脚本

7.1 clean_env.sh

用于重新安装或彻底卸载数据库时安全清理所有相关环境。采用交互式确认机制,避免误操作:

1.交互确认删除 chunk 文件(二次确认目录内容)

2.交互确认删除 gbasedbt 用户及其家目录

3.删除安装目录(含 chunk 目录非空检测)

4.删除 install 子目录

八、脚本协同工作关系

各脚本之间存在明确的调用和协作关系,形成完整的数据库生命周期管理闭环:

九、总结

GBase 8s 安装包中的这套脚本体系体现了"自动化、规范化、可追溯"的设计理念:

这套脚本不仅是安装工具,更是一套完整的数据库运维框架,适用于开发测试、生产部署、故障排查、数据迁移等多种场景,贯穿数据库全生命周期管理。

本文档基于 GBase 8s 安装包脚本组件整理,如有更新请以官方最新版本为准。