鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

openGauss向量数据库部署(机密虚机)

本章节部署使用的硬件服务器需搭载鲲鹏920新型号处理器。请参见特性指南-TEE套件-鲲鹏BoostKit机密计算开发文档,获取License使能TEE,参照软件编译、软件部署安装章节完成机密计算软件环境部署,根据实际需要配置机密虚机内存、cpu等规格参数,完成机密虚机创建。按如下步骤进入机密虚机进行向量数据库部署。

  1. 查看机密虚机是否已经是运行状态。若机密虚机已运行则跳过步骤2,否则执行步骤2。
    virsh list --all
  2. 启动机密虚机(start后面是定义的虚机名称,按实际情况输入)。
    virsh start cvm
  3. 进入机密虚机串口(console后面是定义的虚机名称,按实际情况输入)。
    virsh console cvm

安装openGauss数据库。

  1. 创建用户组和用户,当前指定用户名为omm,指定用户密码Dify@123。
    groupadd omm
    useradd -g omm -m -s /bin/bash omm
    passwd omm(回车后键入用户密码)
  2. 修改root用户下单个进程的上限以及新用户omm的软限制和硬限制。
    ulimit -n 1000000
    vi /etc/security/limits.conf
    在文件结尾处添加一下两行内容,然后保存(:wq)退出:
    omm hard nofile 1000000
    omm soft nproc 1000000
  3. 切换到新创建的用户下。
    su - omm
  4. 获取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
  5. 解压openGauss压缩包到安装目录,假定安装目录为“/opt/software/openGauss”,请用实际值替换。
    tar -jxf openGauss-Server-x.x.x-openEuler20.03-x86_64.tar.bz2 -C /opt/software/openGauss
  6. 进入解压后目录下的simpleInstall。
    cd /opt/software/openGauss/simpleInstall
  7. 执行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的数据库。第一次连接数据库时可以连接到此数据库。
  8. 安装执行完成后,使用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用户下进行。

  1. 修改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
  2. 修改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
  3. 重启数据库以使修改生效。
    gs_ctl restart -D /opt/software/openGauss/data/single_node
  4. 连接数据库。
    gsql -d postgres -p 8888 -r
  5. 创建数据库用户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权限安装。

  1. 鲲鹏社区获取检索加速包,上传到服务器并解压。
    unzip BoostKit-SRA_Recall-1.1.0.zip
  2. 安装加速包。
    rpm -ivh boostkit-sra_recall-1.1.0-1.aarch64.rpm

    执行后显示如下信息:

  3. 修改omm用户环境变量,添加DATAVEC_PQ_LIB_PATH环境变量。
    su omm
    vim ~/.bashrc

    添加DATAVEC_PQ_LIB_PATH=/usr/local/sra_recall/lib。

    source ~/.bashrc
  4. 修改postgresql.conf文件,添加enable_pq = on。
    ps ux
    vim /opt/software/openGauss/data/single_node/postgresql.conf(该路径为ps_ux命令回显的-D之后的路径加该配置文件名)
    添加enable_pq = on

  5. 重启以使修改生效。
    gs_ctl restart -D /opt/software/openGauss/data/single_node
  6. 重启完成后可以连接数据库。
    gsql -d postgres -p 8888 -r
  7. 执行以下语句测试配置是否生效。
    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]';

    显示如下结果: