
❝覆盖数据库全生命周期管理:从环境检查 → 一键部署 → 性能监控 → 数据备份 → 环境卸载,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
auto_start.sh — 开机自启配置脚本
生成 /etc/init.d/gbase8s 和 /etc/systemd/system/gbase8s.service,将 GBase 8s 注册为 systemd 服务。包含数据库重启操作,生产环境使用前需评估。
数据gbasedbt
dbexport.sh — 数据库批量导出脚本
导出表结构(dbschema)、表数据(unload to .unl)、表注释、列注释,以及索引和权限定义。自动生成配套的 importdb.sh导入脚本,支持交互选择表空间和 dbload 批量加载。
监控root
collector_gbase.sh — 实例运行信息收集脚本
采集 onstat 系列指标(线程、会话、缓冲区、日志、空间、锁、检查点等)和 OS 性能指标(netstat、iostat、vmstat、sar、top 等)。推荐配合 crontab 每 5 分钟执行,结果自动打包并清理过期文件。
监控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,须 ≥ 512CHUNK_SIZE— 磁盘空间(MB),须 ≥ 5120CHUNK_DIR— chunk 存储路径CPU_VPS— CPU 核数,0= 逻辑 CPU - 1CHUNK_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 系统服务,实现开机自启动:
生成 /etc/init.d/gbase8s服务脚本(start/stop/restart/status)生成 /etc/systemd/system/gbase8s.service单元文件(Restart=on-failure)重载 systemd 配置并设置开机自启 交互式询问是否立即重启数据库服务进行验证
❝⚠️ 注意:该脚本包含数据库重启操作,生产环境使用前请评估是否可以重启数据库。
四、数据操作类脚本
4.1 dbexport.sh
导出指定数据库的完整结构、数据和注释,自动生成配套的导入脚本:
dbschema -d -ss 导出 schema | |
unload to 导出 .unl 文件 | |
syscomments)+ 列注释(syscolcomments) | |
idx.sql | |
importdb.sh,支持交互选择表空间、dbload 批量加载(5000 行/批) |
五、运维监控类脚本
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
部署路径:数据库安装完成后脚本默认存放路径:$GBASEDBTDIR/PluginPak/inst_ma
结果输出:默认保存在 gbasedbt 的家目录下,生成文件 backup_YYYYMMDD/HHMMSS.tar.gz
入参说明:
参数 1(保留天数):历史备份保留天数 参数 2(备份保留路径):可选参数
七、环境清理类脚本
7.1 clean_env.sh
用于重新安装或彻底卸载数据库时安全清理所有相关环境。采用交互式确认机制,避免误操作:
交互确认删除 chunk 文件(二次确认目录内容) 交互确认删除 gbasedbt 用户及其家目录 删除安装目录(含 chunk 目录非空检测) 删除 install 子目录
八、脚本协同工作关系
各脚本之间存在明确的调用和协作关系,形成完整的数据库生命周期管理闭环:
[安装前] check_env.sh ——→ 环境检查 ↓[安装中] install_init.sh ——→ 一键安装 ↓ 内部调用 check_env.sh → collector_gbase.sh → collector_env.sh → 复制脚本到 PluginPak ↓[安装后] auto_start.sh ——→ 自启配置 ↓[运维期] auto_bak.sh ——→ 自动备份 ↓[卸载时] clean_env.sh ——→ 环境清理九、总结
GBase 8s 安装包中的这套脚本体系体现了"自动化、规范化、可追溯"的设计理念:
init.iniinstall_init.sh | |
check_env.sh | |
collector_gbase.shcollector_env.sh | |
auto_bak.sh | |
dbexport.sh | |
clean_env.sh |
❝这套脚本不仅是安装工具,更是一套完整的数据库运维框架,适用于开发测试、生产部署、故障排查、数据迁移等多种场景,贯穿数据库全生命周期管理。
本文档基于 GBase 8s 安装包脚本组件整理,如有更新请以官方最新版本为准。

夜雨聆风