带你体验VexDB数据库
VexDB是清华团队研发的企业级向量数据库,支持关系数据和语义检索。本文详细记录了在CentOS 7.9上安装VexDB开发版的完整过程,包括:系统环境检查、依赖包安装、防火墙配置、透明大页关闭、IPC参数优化、内核参数调优、SELinux设置、资源限制修改、安装用户创建等准备工作。通过分步骤的安装指南和配置说明,帮助开发者快速部署VexDB开发环境,为AI应用落地提供支持。
今天发现各大公众号和朋友圈都在讲VexDB,这到底是个啥数据库?所以自己去了解了下:
源于清华的研发团队(技术顾问:李国良教授),打造了一款融合关系数据能力、多路语义检索能力的向量数据库产品VexDB,用于企业级 AI应用落地,有开发版(免费)和商用版。故申请了开发版,接下来跟着我看看吧。
安装前准备
操作系统及CPU满足度检查
[root@node ~]# more /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
第三方依赖包安装
yum install -y zlib-devel libaio libuuid readline-devel krb5-libs libicu libxslt tcl perl openldap pam openssl-devel libxml2 bzip2

防火墙配置
[root@node yum.repos.d]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
备注:事先已经关闭,如需关闭防火墙,参考一下命令:
--关闭防火墙服务
sudo systemctl stop firewalld.service
--关闭防火墙自动启动服务
sudo systemctl disable firewalld.service
关闭透明大页
开启透明大页可能会对数据库性能产生负面影响,所以本小节将指导用户如何关闭透明大页。
- 编辑 service 文件,将如下内容放入文件中。
vi /etc/systemd/system/disable-thp.service
内容如下:
[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
-
修改完成后,执行如下命令加载系统服务,并设置开机自启动。
systemctl daemon-reload systemctl start disable-thp systemctl enable disable-thp -
查看THP状态,当返回结果均为
always madvise [never]时表示成功设置透明大页永久关闭。cat /sys/kernel/mm/transparent_hugepage/enabled cat /sys/kernel/mm/transparent_hugepage/defrag
IPC 参数配置
当 RemoveIPC=yes 时,操作系统会在用户退出时,删除该用户的 IPC 资源(共享内存段和信号量),从而使得 VexDB 服务器使用的 IPC 资源被清理,可能引发数据库宕机,所以需要设置 RemoveIPC 参数为 no。
-
进入 /etc/systemd/logind.conf 文件,在配置文件末尾新增配置 RemoveIPC=no,若文件中已设置则跳过本步骤。
vi /etc/systemd/logind.conf -
进入 /usr/lib/systemd/system/systemd-logind.service 文件,新增或修改配置 RemoveIPC=no,若文件中已设置则跳过本步骤。
vi /usr/lib/systemd/system/systemd-logind.service -
重新加载配置参数。
systemctl daemon-reload systemctl restart systemd-logind -
检查修改是否生效。由于 CentOS 操作系统环境的 RemoveIPC 默认为关闭,则执行如下语句是无返回结果的。用户在确保步骤 1 至步骤 3 已执行的前提下,可正常安装数据库。
loginctl show-session | grep RemoveIPC systemctl show systemd-logind | grep RemoveIPC
内核参数配置
- 编译内核参数配置文件 /etc/sysctl.conf,将内核信息写入文件末尾并保存。
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
- 重载配置,使其在不关机的情况下生效。
sysctl -p
SELinux配置
将 SELINUX=enforcing 修改为 SELINUX=disabled。
交互安装
安装过程
步骤1:创建数据库安装用户和目录
- 创建数据库安装用户
useradd -m vexdb
passwd vexdb
2.(可选)创建数据库 coredump 目录。
mkdir -p /home/vexdb/data/db_coredump
chmod 770 /home/vexdb/data
chown vexdb:vexdb /home/vexdb/data
3.(可选)创建数据库数据目录(可自定义)
mkdir -p /home/vexdb/data/vexdb
chmod 700 /home/vexdb/data/vexdb
chown -R vexdb:vexdb /home/vexdb/data/vexdb
4.(可选)创建数据库软件目录(可自定义)。
mkdir -p /home/vexdb/local/vexdb
chown -R vexdb:vexdb /home/vexdb
步骤2:修改资源限制
vi /etc/security/limits.conf
vexdb soft nproc unlimited
vexdb hard nproc unlimited
vexdb soft stack unlimited
vexdb hard stack unlimited
vexdb soft core unlimited
vexdb hard core unlimited
vexdb soft memlock unlimited
vexdb hard memlock unlimited
vexdb soft nofile 1024000
vexdb hard nofile 1024000
步骤3:解压安装包
mkdir -p /soft/vb
cd /soft/vb
tar -xvf VexDB-Developer-Edition-3.0_Build0_commitid-Linux-x86_64-no_mot-datetime.tar.gz
chown -R vexdb:vexdb /soft/vb/
chmod -R 775 /soft/vb/
步骤4:运行安装程序
执行安装脚本
-
切换到数据库安装用户 vexdb。安装程序不能由操作系统超级用户执行。
su - vexdb -
运行安装程序。
cd /soft/vb/vexdb-installer/ ./vexdb_installer
交互步骤
根据回显信息进行交互,直至安装程序完成。
- 安装环境检查。
[vexdb@node vexdb-installer]$ ./vexdb_installer
===============================================================================
Welcome to the installation tool (V1.0) and start installing VexDB.
===============================================================================
Check whether the installation package is complete
---------------
ok
===============================================================================
Type <Enter> to continue:
- 系统配置信息。
===============================================================================
System configuration information
---------------
Operation System : CentOS Linux 7 (Core)
CPU cores: 8
Memory size : 15884 MB
Current user name: vexdb
Type <Enter> to continue:
- 依赖检查(检查服务器是否已经安装需要的依赖包)。
===============================================================================
Dependency check
---------------
readline : 6.2
python : 2.7.5
libicu : 50.2
cracklib : 2.9.0
libxslt : 1.1.28
tcl : 8.5.13
perl : 5.16.3
openldap : 2.4.44
pam : 1.1.8
systemd-libs : 219
bzip2 : 1.0.6
gettext : 0.19.8.1
libaio : 0.3.109
ncurses-libs : 5.9
Type <Enter> to continue:
- IPC 参数检查。若检查通过,自动跳转下一步,否则根据提示进行设置即可。
------------------
Preparing the installation environment...
Finish to prepare the installation environment
===============================================================================
IPC parameter check
---------------
The IPC parameter check is complete
- 选择是否进行实例化安装。若进行实例化安装则选
Y,若进行非实例化安装则选N。
===============================================================================
Install database
---------------
Whether to instantiate the database (Y/N): Whether to instantiate the database (Y/N): Y
-
选择安装类型(选
2或按Enter)。- 典型安装:使用默认参数配置初始化数据库。
- 自定义安装:手动配置安装参数和功能。
Select installation type Typical installation : Use default parameters to init database Custom installation : Configure installation parameters and functions manually -> 1- Typical installation 2- Custom installation Select the installation type, or type <Enter> to select the default (1): 1 -
(非实例化安装无此步骤)设置超级管理员密码,需要输入密码,并再次输入密码确认(设置的密码最少包含 8 个字符,最多包含 16 个字符。密码由大小写字母加数字组成,例如:
aA123***)。
===============================================================================
Database Initialization User Password (Press the backspace key to go back)
---------------
Enter the password of database initialization user (vexdb): *****
The password needs at least 8 characters!
Enter the password of database initialization user (vexdb): ********
Please enter your password again: ********
8.(非实例化安装无此步骤)设置密钥(选 1 或按 Enter)。
===============================================================================
Database encryption key(PGENCRYPTIONKEY)
---------------
Set database encryption key(PGENCRYPTIONKEY):
-> 1- Use the database initialization password (default)
2- Enter the encryption key manually
Select the database encryption key setting, or type <Enter> to select the default(1):
- 设置数据库安装路径(输入步骤2创建的数据库安装路径(/soft/vb),或者输入<回车>使用默认路径(默认路径:/home/vexdb/local/vexdb))。此处软件安装目录不能与数据库目录相同,目录相同时会自动创建子目录用于分开存放软件和数据。
===============================================================================
VexDB installation directory
---------------
VexDB installation directory
Default location: /home/vexdb/local/vexdb
Type the absolute path (ctrl+ backspace to backspace), or type <Enter> to use the default path :
===============================================================================
Database initialization directory
---------------
Select the database initialization directory Default location: /home/vexdb/data/vexdb
Type the absolute path (ctrl+ backspace to backspace), or type <Enter> to use the default path :
- (非实例化安装无此步骤)磁盘 IO 调度算法检查。为避免影响数据库性能,生产环境建议采用 deadline 策略,若检查出非 deadline 策略,可按提示进行修改,再重新安装,也可以直接跳过继续安装。
===============================================================================
Check disk IO scheduling algorithm
---------------
The disk IO scheduling algorithm to which directory /home/vexdb/data/vexdb belongs is being checked
The scheduling algorithm of disk IO is checked
- 初始化阶段。
===============================================================================
Installation summary
---------------
VexDB installation directory:
/home/vexdb/local/vexdb
VexDB directory:
/home/vexdb/data/vexdb
Database initialization user :
vexdb
Database initialization parameter :
listen_addresses='*'
max_connections=500
shared_buffers=3971MB
max_process_memory=10562MB
work_mem=4MB
Type <Enter> to continue:
- 安装数据库过程会生成随机口令作为管理员初始口令,显示信息如下(非实例化安装无此步骤):
The default passwords of the three default database administrators vbaudit, vbsso, and vbadmin are:
system admin[vbadmin] initial password: X2b76!b0
security admin[vbsso] initial password: Db4395)4
audit admin[vbaudit] initial password: Bdfa*36d
-
选择是否添加许可。
说明VexDB 开发版提供了时长为 1 年的临时许可。即使不添加正式许可,也可以在安装完成后免费试用 VexDB。临时许可即将过期前,在数据库管理员用户和数据库初始化用户使用 vsql 连接数据库时,VexDB 会提示许可期限的有关信息。提醒天数的阈值是通过参数 vb_license_expired_notify_time 控制的。默认值为 90 天。设置为 0 表示关闭提醒。
===============================================================================
Loading an Official license
---------------
Whether to load an official license (Y/N): N
- 安装完成。
===============================================================================
Installation complete
---------------
Specify the license path first (if the license path is incorrect, the database fails to start):
Write the license path to file /home/vexdb/data/vexdb/postgresql.conf in the form of license_path='license path'
To initialize the database running environment:
source ~/.bashrc
To start, stop, and restart the database:
vb_ctl <start/stop/restart>
If the installation is complete, Enter <Enter> to exit:
步骤5:初始化环境变量
[vexdb@node ~]$ source ~/.bashrc
VexDB 启停与状态查看
成功安装数据库之后,需要启动数据库服务:
[vexdb@node ~]$ vb_ctl start
[2025-09-25 04:53:53.475][28369][][vb_ctl]: vb_ctl started,datadir is /home/vexdb/data/vexdb
[2025-09-25 04:53:54.781][28369][][vb_ctl]: waiting for server to start...
..setting _JAVA_SR_SIGNUM=14 success.
0 LOG: [Alarm Module]can not read GAUSS_WARNING_TYPE env.
......
r the size of configure file has changed. Please create it by root user!
2025-09-25 04:54:16.895 [unknown] [unknown] localhost 140180191845248 0[0:0#0] 0 [BACKEND] LOG: Failed to parse cgroup config file.
2025-09-25 04:54:17.336 [unknown] [unknown] localhost 140180191845248 0[0:0#0] 0 [EXECUTOR] WARNING: Failed to obtain environment value $GAUSSLOG!
2025-09-25 04:54:17.336 [unknown] [unknown] localhost 140180191845248 0[0:0#0] 0 [EXECUTOR] DETAIL: N/A
2025-09-25 04:54:17.336 [unknown] [unknown] localhost 140180191845248 0[0:0#0] 0 [EXECUTOR] CAUSE: Incorrect environment value.
2025-09-25 04:54:17.336 [unknown] [unknown] localhost 140180191845248 0[0:0#0] 0 [EXECUTOR] ACTION: Please refer to backend log for more details.
....
[2025-09-25 04:54:22.861][28369][][vb_ctl]: done
[2025-09-25 04:54:22.861][28369][][vb_ctl]: server started (/home/vexdb/data/vexdb)
其他命令
根据需要,用户可以使用以下命令停止或重启数据库服务,并查询数据库状态。
-
停止数据库服务:
vb_ctl start -
重启数据库服务:
vb_ctl restart -
显示数据库状态:
vb_ctl status
使用VexDB
1. 连接数据库
安装完成后,默认提供 vsql 客户端工具。
[vexdb@node ~]$ vsql -U vexdb -d postgres
vsql ((VexDB Developer Edition V3.0 Release) compiled at 2025-09-01 19:05:51 commit 28146 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
2. 基本 SQL 操作验证
成功登录后,执行以下 SQL 确认数据库功能:
-- 查看数据库版本
SELECT version();
-- 创建测试数据库
CREATE DATABASE testdb;
-- 连接新数据库
\c testdb
-- 创建测试表
CREATE TABLE emp (
empno INT PRIMARY KEY,
ename VARCHAR(50),
sal NUMERIC(10,2)
);
-- 插入测试数据
INSERT INTO emp VALUES (1001, 'Alice', 5000.00);
INSERT INTO emp VALUES (1002, 'Bob', 6000.00);
-- 查询数据
SELECT * FROM emp;
postgres=# SELECT version();
version
------------------------------------------------------------------------------
PostgreSQL 9.2.4 on x86_64-pc-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit
(1 row)
postgres=# CREATE DATABASE testdb;
CREATE DATABASE
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+----------+-------------+-------------+-------------------
postgres | vexdb | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | vexdb | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/vexdb +
| | | | | vexdb=CTc/vexdb
template1 | vexdb | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/vexdb +
| | | | | vexdb=CTc/vexdb
testdb | vexdb | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
vastbase | vexdb | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(5 rows)
postgres=# \c testdb
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "testdb" as user "vexdb".
testdb=# CREATE TABLE emp (
testdb(# empno INT PRIMARY KEY,
testdb(# ename VARCHAR(50),
testdb(# sal NUMERIC(10,2)
testdb(# );
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "emp_pkey" for table "emp"
CREATE TABLE
testdb=# INSERT INTO emp VALUES (1001, 'Alice', 5000.00);
INSERT 0 1
testdb=# INSERT INTO emp VALUES (1002, 'Bob', 6000.00);
INSERT 0 1
testdb=# SELECT * FROM emp;
empno | ename | sal
-------+-------+------
1001 | Alice | 5000
1002 | Bob | 6000
(2 rows)
作者:Digital Observer(施嘉伟)
更多推荐

所有评论(0)