VexDB 安装使用初体验
前言
最近数据库领域出现了一个值得关注的新成员:VexDB,一款专为 AI 场景设计的向量数据库。

VexDB 这个名字其实挺有意思的,取自 Vector(向量) + X(代表多模态数据的无限可能) + Database(数据库)。
VexDB 目前分为两个版本:
- 开发版:适合应用开发商、个人开发者和开源项目使用的免费向量数据库,1年使用期限,社群支持;
- 商业版: 面向企业级AI应用场景的商业向量数据库,SLA服务保障,专业技术支持服务;
本文演示 VexDB 开发版的安装与简单使用,安装包下载地址:https://vexdb.com/download。
安装前准备
环境信息
本文演示环境配置如下:
| 主机名 | CPU | 内存 | 磁盘 | 主机版本 | VexDB版本 |
|---|---|---|---|---|---|
| VexDB | 8 | 16G | 100G | Centos7.9 | 3.0 |
以上仅为开发与测试环境的配置,生产环境请参考官方推荐配置进行部署。
关闭防火墙
数据库安装一般都建议关闭防火墙,VexDB 也不例外:
1 | [root@VexDB ~]# systemctl stop firewalld |

关闭 selinux
建议关闭 SELNUX,防止造成一些不必要的问题:
1 | ## 这里使用 setenforce 0 临时生效 |

可以看到 Mode from config file 是 disabled,代表已经禁用 selinux。
检查时区
数据库默认时区为中国时区,如果操作系统时区和数据库默认时区不一致,会导致数据库日志显示时间和实际时间不一致。

依赖包安装
和 Oracle 一样,VexDB 数据库在安装过程中也需要用到依赖包:
1 | yum install -y zlib-devel libaio libuuid readline-devel krb5-libs libicu libxslt tcl perl openldap pam openssl-devel libxml2 bzip2 |
当然前提是要配置本地软件源:
1 | ## 备份系统初始配置文件 |
配置完软件源之后,直接执行依赖包安装即可:

确保依赖包都已经成功安装。
配置 RemoveIPC
systemd-logind 服务中引入的一个特性 RemoveIPC,会造成程序信号丢失等问题,只有Redhat7 及以上和一些特殊的国产Linux的版本需要修改,改之前可先查看此项是否为默认yes),需要设置 RemoveIPC=no:
1 | [root@VexDB ~]# sed -i 's/#RemoveIPC=no/RemoveIPC=no/' /etc/systemd/logind.conf |
配置 /usr/lib/systemd/system/systemd-logind.service 文件:
1 | [root@VexDB ~]# vi /usr/lib/systemd/system/systemd-logind.service |
重新加载 systemd 守护进程并重启 systemd-logind 服务生效:
1 | [root@VexDB ~]# systemctl daemon-reload |
修改后检查是否生效:
1 | [root@VexDB ~]# loginctl show-session | grep RemoveIPC |

由于 CentOS 操作系统环境的 RemoveIPC 默认为关闭,则执行如下语句是无返回结果的。
关闭透明大页
透明大页可能会对数据库性能产生负面影响,建议关闭透明大页:
1 | [root@VexDB ~]# cat /sys/kernel/mm/transparent_hugepage/enabled |
显示结果:
- [always] madvise never:透明大页已开启。
- always [madvise] never:透明大页已开启。
- always madvise [never]:透明大页已关闭。
修改 /etc/default/grub 文件,在 GRUB_CMDLINE_LINUX 中添加或修改参数 transparent_hugepage=never:
1 | [root@VexDB ~]# sed -i 's/quiet/quiet transparent_hugepage=never/' /etc/default/grub |
通过以下指令检查当前系统的引导类型:
1 | [root@VexDB ~]# [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS |
两种引导的启动文件路径分别为:
- BIOS:/boot/grub2/grub.cfg
- UEFI:/boot/efi/EFI/<distro_name>/grub.cfg,distro_name 为系统发行版本名称,例如 ubuntu、fedora、debian 等。
执行 grub2–mkconfig 指令重新配置 grub.cfg:
1 | ## BIOS 引导 |

重启操作系统,使配置永久生效:
1 | [root@VexDB ~]# reboot |
验证透明大页已关闭:
1 | [root@VexDB ~]# cat /sys/kernel/mm/transparent_hugepage/enabled |

结果应显示 always madvise [never]。
内核参数配置
编译内核参数配置文件/etc/sysctl.conf,将内核信息写入文件末尾:
1 | # 物理内存(KB) |
复制以上命令,直接执行即可计算得出这两个参数值:
1 | [root@VexDB ~]# echo $shmall |

根据官方建议值,配置系统参数文件:
1 | [root@VexDB ~]# cat<<-\EOF>>/etc/sysctl.conf |

这里有个问题,就是官方文档中描述的两个参数:
- kernel.sem = 4096 2097152000 4096 512000
- kernel.shmmin = 819200
这个不适用于小内存的测试开发环境,直接照抄设置会报错:

建议修改为以上我的配置即可。
修改资源限制
将部分资源限制值(使用 ulimit -a 可查看所有的资源限制值)调整为推荐值或以上。
1 | cat<<-EOF>>/etc/security/limits.conf |
创建用户
创建 vexdb 用户:
1 | [root@vexdb ~]# useradd -d /home/vexdb -m vexdb |

创建目录
创建安装所需目录并且授权:
1 | [root@VexDB ~]# mkdir -p /vexdbdata/db_coredump /vexdbdata/vexdb /vexdbdata/soft |

解压安装包
创建 /soft 目录存放安装包:
1 | [root@vexdb ~]# mkdir /soft |

授予 vexdb 用户权限,解压安装包:
1 | [root@VexDB soft]# chown -R vexdb:vexdb /soft |

VexDB 安装
交互安装
执行交互安装:
1 | cd /soft/vexdb-installer |
安装详细过程如下:





密码:VexDB123456.


这里需要注意一点:如果用自定义路径,一定要用二级目录,一级目录 vexdb 用户会没有权限创建目录!


比如我的自定义路径是:/vexdbdata/soft 和 /vexdbdata/vexdb

初始化阶段:

安装数据库过程会生成随机口令作为管理员初始口令:

选择是否添加许可:

初始化环境变量:

安装完成。
静默安装
官方文档没有展示静默安装的相关内容,但是参考 vastbase G100 的静默文件,稍作修改,一样适用。
创建静默安装文件:
1 | [vexdb@VexDB ~]$ cat<<-EOF>/soft/vexdb-installer/db_install.rsp |

执行静默安装:
1 | [vexdb@VexDB vexdb-installer]$ ./vexdb_installer --silent -responseFile /soft/vexdb-installer/db_install.rsp |
安装过程如下:



安装完成。
VexDB 启停
刚安装完成的 VexDB 默认是关闭状态,需要手动开启:
1 | [vexdb@VexDB ~]$ vb_ctl start |


启动过程中的一些警告和配置问题可以忽略,VexDB 已经成功启动。
对应还有一些常用命令:
1 | [vexdb@VexDB ~]$ vb_ctl stop |
更多功能可以通过 vb_ctl --help 查阅。
连接使用
vsql 是 VexDB 提供的客户端连接工具,在数据库主机进行连接:
1 | [vexdb@VexDB ~]$ vsql -d postgres -p 5432 |

创建用户和数据库:
1 | CREATE USER lpc PASSWORD "VexDB@123"; |

创建表:
1 | \c lucifer lpc |

更多详细的使用请参考官方文档。
VexDB 卸载
VexDB 卸载比较简单,直接使用 --uninstall 选项即可:

卸载完成后,需要手动删除安装文件和数据文件:

卸载完成。
写在最后
本文仅是简单的 VexDB 安装部署,没有涉及到具体的应用场景,后续有机会再进行探索。