Vastbase G100 数据库介绍
Vastbase G100 数据库是海量数据基于开源 openGauss 内核开发的企业级关系型数据库。融合多年对各行业应用场景的深入理解, Vastbase G100 除了具有 openGauss 极致的性能以外,还在原有功能基础上增加了大量 Oracle 兼容特性和自主研发的向量检索引擎,并遵循 EAL4+ 标准进行了大幅度的安全增强,同时整合 GIS/流计算等一系列专业应用领域的企业级功能。
应用场景
- 交易型应用
高并发、大数据量、以联机事务处理为主的交易型应用,如电商、金融、O2O、电信CRM/计费、电子政务、制造业生产线等。应用可按需选择不同的主备部署模式。 - 物联网数据
在工业监控和远程控制、智慧城市的延展、智能家居、车联网等物联网场景下,传感监控设备多,采样率高,数据存储为追加模型,操作和分析并重的场景。 - 空间数据
国土规划、地理信息、导航定位、地形勘测、3D模型、管线管理等等,现在社会上、生活中处处充斥着空间数据的应用。Vastbase G100提供了原生的点、线、面和多面体等多种几何数据类型,大量的几何运算函数,并对OpenGIS提供良好支持,适用于各种空间应用领域。 - 时序数据
与时间紧密联系的数据应用,通常包含时间戳和对应数值,如传感器读数、服务器监控指标、金融交易记录等,满足IoT、IIoT、传统工业时序、未来大规模时序应用场景。 - 向量数据
机器学习用到的文本、图像和音频等非结构化数据通常以向量的形式进行存储。作为人工智能领域的核心数据类型,向量数据广泛应用于智能搜索、推荐系统、图像特征提取、自然语言处理等AI核心场景。
软件架构
Vastbase G100 是集中式数据库系统,在这样的系统架构中,业务数据存储在单个物理节点上,数据访问任务被推送到服务节点执行,通过服务器的高并发,实现对数据处理的快速响应。同时通过日志复制可以把数据复制到备机,提供数据的高可靠和读扩展。

架构说明:
| 名称 | 描述 |
|---|---|
| APP | 业务应用 |
| DRV | 数据库驱动 |
| Maser | VastbaseG100主服务节点,数据访问任务的接收节点,支持高并发。 |
| Slave | 备机,通过同步复制与主机数据保持同步,用于提供数据的高可靠和读扩展。 |
Vastbase G100 数据库单机版安装
环境说明
| 主机名 | ip地址 | OS版本 | 内存、CPU | 节点角色 | 数据库端口 |
|---|---|---|---|---|---|
| node1 | 192.*.*.60 | Centos7.9 | 6G 、 1个双核 | 主节点 | 5432 |
安装前准备
目录规划
| 序号 | 文件系统 | 用途 |
|---|---|---|
| 1 | /database/vastbase/local/vastbase | 数据库软件安装路径 |
| 2 | /database/vastbase/data/vastbase | 数据存放路径 |
硬件环境要求
开发与测试环境硬件配置要求如下:
| 名称 | CPU | 内存 | 本地存储 | 网络 |
|---|---|---|---|---|
| Vastbase | 2核+ | 8GB+ | SAS, 100G | 千兆 |
生产环境硬件配置要求如下:
| 项目 | 感低配置 | 建议配置 |
|---|---|---|
| 服务器 | • 单机部署时要求1台物理机或虚拟机。 • 集群部署时要求服务器与主备数据相关,如部署一主两备环境要求3台物理机或虚拟机。 |
搭建基于 DCS 和 HAS1.2 的高可用集群时,至少需要奇数台物理机或虚拟机。因为 DCS 推荐使用奇数作为集群节点个数,偶数个节点可能出现等额选票导致集群不可用。 |
| 内存 | • 功能调试建议内存最低取值为10 GB,具体的服务器内存配置应根据实际业务场景做调整。 • 搭建一主备集群,服务器内存配置最低取值为12 GB,否则会出现共享内存(shared memory)不够的情况。 |
• 复杂的查询对内存的需求比较高,在高并发场景下建议用户使用大内存的机器,或使用负载管理限制系统的并发量。 • 性能测试和商业部署时, 单实例部署时,服务器内存配置推荐为128 GB及以上。 集群搭建一主备集群,服务器内存配置推荐为128 GB及以上。 说明: 建议使用鲲鹏 920 标配服务器型号作为最佳配置,以获取更优性能结果。 |
| CPU | • 功能调试时,CPU配置最小为1*8核2.0 GHz。 • 支持x86、ARM架构,支持Intel、鲲鹏、飞腾、海光等芯片,更多详见操作系统及CPU满足度检查。 |
• 性能测试和商业部署时,单实例部署建议1*16核 2.0 GHz以上。 • 支持超线程和非超线程两种CPU模式。Vastbase各节点的CPU模式要求一致。 |
| 硬盘 | • 用于安装Vastbase的硬盘需最少满足以下要求: 至少1 GB用于安装Vastbase的应用程序包。 每个主机需求约300 MB用于元数据存储。 预留70%以上的磁盘剩余空间用于数据存储。 预留30 GB磁盘用于存放WAL数据文件。 |
• 建议系统盘配置为Raid1,数据盘配置为Raid5,且规划4组Raid5数据盘用于安装Vastbase。 注意: Raid配置Disk Cache Policy一项需要设置为Disabled,否则机器异常掉电后有数据丢失的风险。 • 搭建双机单活共享存储需准备两个 lun 裸存储设备。其中作为仲裁存储设备最少为 64 MB,建议为1GB;共享存储设备建议为100GB。 |
| 网络 | • 单机安装低为千兆网络。 • 集群安装低为万兆网络。 |
至少满足最低要求。 |
操作系统及CPU满足度检查
查看环境信息
通过查看环境信息确认当前主机的系统环境。
根据架构支持情况判断当前环境是否满足安装部署的要求。
根据CPU架构、CPU型号选择对应的数据库软件安装程序。
命令:
lscpu cat /etc/os-release
架构支持情况
Vastbase针对不同CPU 架构(不区分操作系统)进行了通用包适配,如下表所示:
| CPU架构 |
|---|
| X86(包括海光 C86) |
| 龙芯 |
| 申威_64 |
| 鲲鹏920 |
| 飞腾S2500 |
| 飞腾D2000 |
| 飞腾5000C |
| 飞腾2000+ |
本地输出结果如下:
[root@node1 /]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
---
Model name: 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
---
[root@node1 /]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
---
第三方依赖包安装
单机环境:仅需要关注数据库依赖。HAS环境还需要关注HAS 高可用依赖和python依赖等。详情请参考文档:https://docs.vastdata.com.cn/zh_CN/VastbaseG100/V3.0.8/1/2a612de177d44d62868ac6a158ad2e35
安装软件依赖包:
yum install -y zlib-devel libaio libuuid readline-devel krb5-libs libicu libxslt tcl perl openldap pam openssl-devel libxml2 bzip2
系统和环境配置
1.关闭防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
systemctl status firewalld
2.关闭SELINUX
vi /etc/selinux/config
将 SELINUX=enforcing 修改为 SELINUX=disabled。
或者
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
3.关闭透明大页
开启透明大页可能会对数据库性能产生负面影响,所以需要关掉。
(1)编辑 service 文件,将如下内容放入文件中。
cat >>/etc/systemd/system/disable-thp.service<<EOF
[Unit]
Description=Disable Transparent Huge Pages (THP)
[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"
[Install]
WantedBy=multi-user.target
EOF
(2)修改完成后,执行如下命令加载系统服务,并设置开机自启动。
systemctl daemon-reload
systemctl start disable-thp
systemctl enable disable-thp
(3)查看THP状态,当返回结果均为always madvise [never]时表示成功设置透明大页永久关闭。
cat /sys/kernel/mm/transparent_hugepage/enabled cat /sys/kernel/mm/transparent_hugepage/defrag
4.时区配置
数据库默认时区为中国时区,如果操作系统时区和数据库默认时区不一致,会导致数据库日志显示时间和实际时间不一致。
(1)检查时区配置
可通过以下命令查看操作系统当前的时区。
timedatectl
(2)将/usr/share/zoneinfo/目录下的时区文件拷贝为/etc/localtime文件,从而设置时区和时间。默认不需要做这一步!
cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime
5.IPC参数配置
当RemoveIPC=yes时,操作系统会在用户退出时,删除该用户的IPC资源(共享内存段和信号量),从而使得 Vastbase服务器使用的IPC资源被清理,可能引发数据库宕机,所以需要设置 RemoveIPC 参数为no。
(1)进入/etc/systemd/logind.conf文件,在配置文件末尾新增配置RemoveIPC=no,若文件中已设置则跳过本步骤。
vi /etc/systemd/logind.conf
(2)进入/usr/lib/systemd/system/systemd-logind.service文件,新增或修改配置RemoveIPC=no,若文件中已设置则跳过本步骤。
vi /usr/lib/systemd/system/systemd-logind.service
(3)重新加载配置参数。
systemctl daemon-reload systemctl restart systemd-logind
(4)检查修改是否生效。
由于CentOS操作系统环境的removeIPC默认为关闭,则执行如下语句是无返回结果的。用户在确保步骤1至步骤3已执行的前提下,可正常安装数据库。
loginctl show-session | grep RemoveIPC
systemctl show systemd-logind | grep RemoveIPC
#### 6.内核参数配置
```bash
cat >>/etc/sysctl.conf <<EOF
# added by vastbase
fs.aio-max-nr=1048576
fs.file-max= 76724600
kernel.sem = 4096 2097152000 4096 512000
kernel.shmall = 26843545 # pages, 80% MEM or higher
kernel.shmmax = 68719476736 # bytes, 50% MEM or higher
kernel.shmmin = 819200
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 4194304
net.core.somaxconn = 4096
net.ipv4.tcp_fin_timeout = 5
vm.dirty_background_bytes = 409600000
vm.dirty_expire_centisecs = 3000
vm.dirty_ratio = 80
vm.dirty_writeback_centisecs = 50
vm.overcommit_memory = 0
vm.swappiness = 0
net.ipv4.ip_local_port_range = 40000 65535
fs.nr_open = 20480000
EOF
配置生效:
sysctl -p
单机安装
单机安装支持三种方式:installer 安装(推荐)、om安装、rpm安装,其中installer 安装支持交互安装和静默安装两种方式。本文主要用installer的交互方式安装。
1.创建数据库安装用户
useradd -m vastbase passwd vastbase
2.创建数据库coredump目录
mkdir -p /database/vastbase/data/db_coredump chmod 770 /database/vastbase/data chown vastbase:vastbase /database/vastbase/data
3. 创建数据库数据目录
mkdir -p /database/vastbase/data/vastbase chmod 700 /database/vastbase/data/vastbase chown -R vastbase:vastbase /database/vastbase/data/vastbase
4.创建数据库软件目录
mkdir -p /database/vastbase/local/vastbase
chown -R vastbase:vastbase /database/vastbase
### 5.修改资源限制
```bash
cat >> /etc/security/limits.conf << EOF
#added by vastbase
vastbase soft nproc unlimited
vastbase hard nproc unlimited
vastbase soft stack unlimited
vastbase hard stack unlimited
vastbase soft core unlimited
vastbase hard core unlimited
vastbase soft memlock unlimited
vastbase hard memlock unlimited
vastbase soft nofile 1024000
vastbase hard nofile 1024000
EOF
5.解压安装包
安装包和license文件已经上传到/soft下。
cd /soft
tar -zxvf Vastbase-installer-2.2_Build15-centos_7-x86_64.tar.gz
chown -R vastbase:vastbase /soft
chmod -R 775 /soft
注意:以下步骤必须切换到 vastbase 用户后再进行操作。
6.运行安装程序
su - vastbase
cd /soft/vastbase-installer/
./vastbase_installer
回显信息如下:
(1)环境检查、系统配置、依赖包检查、IPC配置检查

(2)是否实例化数据库

(3)选择安装类型:

(4)设置初始化用户密码、设置数据库密钥

(5)设置数据库软件安装路径

(6)设置数据存放路径

(7)设置数据库监听端口、最大连接数、共享内存

(8)设置数据库兼容模式

(9)检查磁盘IO调度算法

(10)安装汇总

(11)安装完成

(12) 初始化环境变量
source ~/.bashrc
(13) 配置license
echo "license_path='/soft/Vastbase_license_20251201' " >> $PGDATA/postgresql.conf
数据库管理
启动数据库
vb_ctl start [-w] [-t SECS] [-D DATADIR] [-s] [-l FILENAME][-o "OPTIONS"] [-M SERVERMODE]
停止数据库
vb_ctl stop [-W] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]
重启数据库
vb_ctl restart [-w] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE][-o "OPTIONS"]
显示数据库运行状态
vb_ctl status [-D DATADIR]
数据库使用
本地连接数据库
vsql -d <数据库名> -p <端口号> -r
create database testdb;
create user testusr with password '******';
create table testtab(id int);
回显如下:
[vastbase@node1 vastbase]$ vsql -d postgres -p 5432 -r
vsql ((Vastbase G100 V2.2 (Build 15) Release) compiled at 2023-12-20 22:43:48 commit 17408 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
vastbase=# create database testdb;
CREATE DATABASE
vastbase=# \c testdb
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "testdb" as user "vastbase".
testdb=# create user testusr with password '******';
CREATE ROLE
testdb=# \c - testusr
Password for user testusr:
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "testdb" as user "testusr".
testdb=> create table testtab(id int);
CREATE TABLE
testdb=> insert into testtab values(1);
INSERT 0 1
(4 rows)
testdb=> \dt
List of relations
Schema | Name | Type | Owner | Storage
---------+---------+-------+---------+------------------------------------------------
testusr | testtab | table | testusr | {orientation=row,compression=no,fillfactor=80}
(1 row)
testdb=>
远程连接数据库
vsql -h <IP 地址> -p <端口号> -d <数据库名> -U <用户名> 注意:远程连接需要在数据目录中的 pg_hba.conf 文件内添加相应的认证策略。
回显如下:
[vastbase@node1 vastbase]$ vsql -h 192.168.100.60 -p 5432 -d testdb -U testusr -r
Password for user testusr:
vsql ((Vastbase G100 V2.2 (Build 15) Release) compiled at 2023-12-20 22:43:48 commit 17408 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
testdb=> \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+----------+------------+------------+-----------------------
postgres | | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | | UTF8 | en_US.utf8 | en_US.utf8 | =c/vastbase +
| | | | | vastbase=CTc/vastbase
template1 | | UTF8 | en_US.utf8 | en_US.utf8 | =c/vastbase +
| | | | | vastbase=CTc/vastbase
testdb | | UTF8 | en_US.utf8 | en_US.utf8 |
vastbase | | UTF8 | en_US.utf8 | en_US.utf8 |
(5 rows)
testdb=> \dt
List of relations
Schema | Name | Type | Owner | Storage
---------+---------+-------+---------+------------------------------------------------
testusr | testtab | table | testusr | {orientation=row,compression=no,fillfactor=80}
(1 row)
testdb=>
图形化工具DBeaver连接数据库


碰到的问题
启动数据库的过程中碰到错误:
FATAL: the values of memory out of limit, the database failed to be started, max_process_memory (2507MB) must greater than 2GB + cstore_buffers(512MB) + (udf_memory_limit(200MB) - UDF_DEFAULT_MEMORY(200MB)) + shared_buffers(942MB) + preserved memory(3513MB) = 7015MB, reduce the value of shared_buffers, max_pred_locks_per_transaction, max_connection, wal_buffers..etc will help reduce the size of preserved memory
2025-11-20 00:09:56.564 [unknown] [unknown] localhost 47782156586944 0[0:0#0] 0 [BACKEND] LOG: FiniNuma allocIndex: 0.
[2025-11-20 00:09:57.105][5216][][vb_ctl]: waitpid 5219 failed, exitstatus is 256, ret is 2
解决办法:
vi $PGDATA/postgresql.conf
由于虚拟机环境资源有限,把下面参数的值调整为:
cstore_buffers=16MB
shared_buffers=500MB
max_connections=20
max_process_memory=5120MB
参考文档
https://docs.vastdata.com.cn/zh_CN/VastbaseG100/V3.0.8/1/4fa8e614a0874730bd1f49bb9d0dd498
https://docs.vastdata.com.cn/zh_CN/VastbaseG100/V3.0.8/1/c8d91b2fc3f548088050c1da5340f9f5
总结
Vastbase 数据库单机版的部署非常丝滑,后面有时间再体验下集群版的部署。
关于作者
网名:飞天,墨天轮2024年度优秀原创作者,拥有 Oracle 10g OCM 认证、PGCE认证、MySQL 8.0 OCP认证以及OBCA、KCP、KCSM、ACP、YCP、磐维等众多国产数据库认证证书,目前从事Oracle、Mysql、PostgresSQL、磐维数据库管理运维工作,喜欢结交更多志同道合的朋友,热衷于研究、分享数据库技术。
微信公众号:飞天online
墨天轮:https://www.modb.pro/u/15197
如有任何疑问,欢迎大家留言,共同探讨~~~




