本章节部署使用的硬件服务器需搭载鲲鹏920新型号处理器。请参见《鲲鹏BoostKit机密计算 机密虚拟机与机密容器 特性指南》获取License使能TEE,参照软件编译、软件部署安装章节完成机密计算软件环境部署,根据实际需要配置机密虚拟机内存、CPU等规格参数,完成机密虚拟机创建。按如下步骤进入机密虚拟机进行向量数据库部署。
groupadd omm useradd -g omm -m -s /bin/bash omm passwd omm(回车后键入用户密码)
ulimit -n 1000000
vi /etc/security/limits.conf
omm hard nofile 1000000 omm soft nproc 1000000
su - omm
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/7.0.0-RC2/openEuler24.03/arm/openGauss-Server-7.0.0-RC2-openEuler24.03-aarch64.tar.bz2
tar -jxf openGauss-Server-x.x.x-openEuler24.03-aarch64.tar.bz2 -C /opt/software/openGauss
cd /opt/software/openGauss/simpleInstall
sh install.sh -w "Dify@123" -p 8888 &&source ~/.bashrc
sysctl -w kernel.sem="250 85000 250 330"
ps ux | grep gaussdb gs_ctl query -D /opt/software/openGauss/data/single_node
omm 24209 11.9 1.0 1852000 355816 pts/0 Sl 01:54 0:33 /opt/software/openGauss/bin/gaussdb -D /opt/software/openGauss/data/single_node omm 20377 0.0 0.0 119880 1216 pts/0 S+ 15:37 0:00 grep --color=auto gaussdb
gs_ctl query ,datadir is /opt/software/openGauss/data/single_node
HA state:
local_role : Normal
static_connections : 0
db_state : Normal
detail_information : Normal
Senders info:
No information
Receiver info:
No information
远程连接机密虚拟机内的数据库,需要修改数据库的postgresql.conf和pg_hba.conf配置文件,以下操作均在创建的omm用户下进行。
ps ux vim /opt/software/openGauss/data/single_node/postgresql.conf
listen_addresses为listen_addresses = '*' local_bind_address为local_bind_address = '0.0.0.0' password_encryption_type为password_encryption_type = 1
ps ux vim /opt/software/openGauss/single_node/pg_hba.conf
host all all 0.0.0.0/0 md5
gs_ctl restart -D /opt/software/openGauss/data/single_node
gsql -d postgres -p 8888 -r
create user gaussdb with password 'Dify@123' sysadmin;
执行后显示如下信息:
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE
随后便可以在宿主机远程连进数据库,下图为使用Python测试结果。
下图是Python的脚本(这里测试使用的用户为test):

下图为运行结果:

远程连接机密虚拟机下载并且安装加速包,其中安装加速包需要以root权限安装。
unzip BoostKit-SRA_Recall-1.1.0.zip
rpm -ivh boostkit-sra_recall-1.1.0-1.aarch64.rpm
执行后显示如下信息:

su omm vim ~/.bashrc
DATAVEC_PQ_LIB_PATH=/usr/local/sra_recall/lib

source ~/.bashrc
ps ux vim /opt/software/openGauss/data/single_node/postgresql.conf
enable_pq = on

gs_ctl restart -D /opt/software/openGauss/data/single_node
gsql -d postgres -p 8888 -r
drop table if exists t;
CREATE TABLE t (val vector(3));
INSERT INTO t (val) VALUES ('[0,0,0]'), ('[1,2,3]'), ('[1,1,1]'), (NULL);
CREATE INDEX ON t USING hnsw (val vector_l2_ops) with (enable_pq = on, pq_m=1, pq_ksub=256);
INSERT INTO t (val) VALUES ('[1,2,4]');
SELECT * FROM t ORDER BY val <-> '[3,3,3]';
显示如下结果:
