暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

带你体验VexDB数据库

今天发现各大公众号和朋友圈都在讲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

798412c475e88b5bc1e8c91d4887465c.png

防火墙配置

[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

关闭透明大页

开启透明大页可能会对数据库性能产生负面影响,所以本小节将指导用户如何关闭透明大页。

  1. 编辑 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
  1. 修改完成后,执行如下命令加载系统服务,并设置开机自启动。

    systemctl daemon-reload systemctl start disable-thp systemctl enable disable-thp
  2. 查看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。

  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

内核参数配置

  1. 编译内核参数配置文件 /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
  1. 重载配置,使其在不关机的情况下生效。
sysctl -p

SELinux配置

将 SELINUX=enforcing 修改为 SELINUX=disabled

交互安装

安装过程

步骤1:创建数据库安装用户和目录

  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:运行安装程序

执行安装脚本

  1. 切换到数据库安装用户 vexdb。安装程序不能由操作系统超级用户执行。

    su - vexdb
  2. 运行安装程序。

    cd /soft/vb/vexdb-installer/ ./vexdb_installer

交互步骤

根据回显信息进行交互,直至安装程序完成。

  1. 安装环境检查。
[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:
  1. 系统配置信息。
=============================================================================== System configuration information --------------- Operation System : CentOS Linux 7 (Core) CPU cores: 8 Memory size : 15884 MB Current user name: vexdb Type <Enter> to continue:
  1. 依赖检查(检查服务器是否已经安装需要的依赖包)。
=============================================================================== 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:
  1. IPC 参数检查。若检查通过,自动跳转下一步,否则根据提示进行设置即可。
------------------ Preparing the installation environment... Finish to prepare the installation environment =============================================================================== IPC parameter check --------------- The IPC parameter check is complete
  1. 选择是否进行实例化安装。若进行实例化安装则选 Y,若进行非实例化安装则选 N
=============================================================================== Install database --------------- Whether to instantiate the database (Y/N): Whether to instantiate the database (Y/N): Y
  1. 选择安装类型(选 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
  2. (非实例化安装无此步骤)设置超级管理员密码,需要输入密码,并再次输入密码确认(设置的密码最少包含 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):
  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 :
  1. (非实例化安装无此步骤)磁盘 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
  1. 初始化阶段。
=============================================================================== 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:
  1. 安装数据库过程会生成随机口令作为管理员初始口令,显示信息如下(非实例化安装无此步骤):
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
  1. 选择是否添加许可。

    说明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
  1. 安装完成。
=============================================================================== 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(施嘉伟)
Oracle ACE Pro
PostgreSQL ACE Partner
Oracle OCM、KCM、PGCM、YCP、DB2 、MySQL OCP、PCTP、PCSD、OCI、PolarDB技术专家、达梦师资认证,从业11年+
ITPUB认证专家、崖山YVP、PolarDB开源社区技术顾问、HaloDB技术顾问、TiDB社区技术布道师、青学会MOP技术社区专家顾问、国内某高校企业实践指导教师
公众号/墨天轮/金仓社区/IF Club:Digital Observer;CSDN/PGfans:施嘉伟;ITPUB:sjw1933
hhh7.jpg

最后修改时间:2025-09-26 09:47:16
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论