openGauss向量数据库部署(机密虚机)
本章节部署使用的硬件服务器需搭载鲲鹏920新型号处理器。请参见特性指南-TEE套件-鲲鹏BoostKit机密计算开发文档,获取License使能TEE,参照软件编译、软件部署安装章节完成机密计算软件环境部署,根据实际需要配置机密虚机内存、cpu等规格参数,完成机密虚机创建。按如下步骤进入机密虚机进行向量数据库部署。
- 查看机密虚机是否已经是运行状态。若机密虚机已运行则跳过步骤2,否则执行步骤2。
virsh list --all
- 启动机密虚机(start后面是定义的虚机名称,按实际情况输入)。
virsh start cvm
- 进入机密虚机串口(console后面是定义的虚机名称,按实际情况输入)。
virsh console cvm
安装openGauss数据库。
- 创建用户组和用户,当前指定用户名为omm,指定用户密码Dify@123。
groupadd omm useradd -g omm -m -s /bin/bash omm passwd omm(回车后键入用户密码)
- 修改root用户下单个进程的上限以及新用户omm的软限制和硬限制。
ulimit -n 1000000 vi /etc/security/limits.conf 在文件结尾处添加一下两行内容,然后保存(:wq)退出: omm hard nofile 1000000 omm soft nproc 1000000
- 切换到新创建的用户下。
su - omm
- 获取openGauss安装包,请根据实际情况选择对应平台的极简版安装包。
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/7.0.0-RC1/openEuler24.03/arm/openGauss-Server-7.0.0-RC1-openEuler24.03-aarch64.tar.bz2
- 解压openGauss压缩包到安装目录,假定安装目录为“/opt/software/openGauss”,请用实际值替换。
tar -jxf openGauss-Server-x.x.x-openEuler20.03-x86_64.tar.bz2 -C /opt/software/openGauss
- 进入解压后目录下的simpleInstall。
cd /opt/software/openGauss/simpleInstall
- 执行install.sh脚本安装openGauss。当前指定数据库密码为Dify@123,指定端口号为8888。
sh install.sh -w "Dify@123" -p 8888 &&source ~/.bashrc
- -w:初始化数据库密码(gs_initdb指定),因安全需要,此项必须设置。
- -p:指定openGauss端口号,如不指定,默认为5432。
- -h|--help:打印使用说明。
- 安装后,该数据库部署节点的名称为sgnode(gs_initdb指定)。
- 执行时,如果出现报错“the maximum number of SEMMNI is not correct, the current SEMMNI is xxx. Please check it.”,请使用有root权限的用户执行如下命令。
sysctl -w kernel.sem="250 85000 250 330"
- 安装后,数据库目录安装路径/opt/software/openGauss/data/single_node,其中/opt/software/openGauss为解压包路径,data/single_node为新创建的数据库节点目录。
- 安装完成后,默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。
- 安装执行完成后,使用ps和gs_ctl查看进程是否正常。
ps ux | grep gaussdb gs_ctl query -D /opt/software/openGauss/data/single_node
执行ps命令,显示类似如下信息。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命令,显示类似如下信息。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用户下进行。
- 修改postgresql.conf配置文件。
ps ux vim /opt/software/openGauss/data/single_node/postgresql.conf (该路径为ps ux命令回显的-D之后的路径加该配置文件名) 修改listen_addresses为listen_addresses = '*' 修改local_bind_address为local_bind_address = '0.0.0.0' 修改password_encryption_type为password_encryption_type = 1
- 修改pg_hba.conf配置文件。
vim /opt/software/openGauss/single_node/pg_hba.conf (该路径与postgresql.conf仅文件名不一样) 在# IPv4 local connections:部分里新增一行 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
- 创建数据库用户gaussdb及密码'Dify@123'(用于远程连接数据库)。
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
执行后显示如下信息:
- 修改omm用户环境变量,添加DATAVEC_PQ_LIB_PATH环境变量。
su omm vim ~/.bashrc
添加DATAVEC_PQ_LIB_PATH=/usr/local/sra_recall/lib。
source ~/.bashrc
- 修改postgresql.conf文件,添加enable_pq = on。
ps ux vim /opt/software/openGauss/data/single_node/postgresql.conf(该路径为ps_ux命令回显的-D之后的路径加该配置文件名) 添加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]';
显示如下结果:
父主题: 方案部署指南