• 抢鲜体验:openGauss 安装编译过程要点及问题解决


    墨墨导读:OpenGauss1.0.0基于PostgreSQL9.2.4,支持标准的SQL92/SQL99/SQL2003/SQL2011规范,支持一主多备,目前支持最多4备。

    OpenGauss支持单机或者主备两种部署方式,下面分享在Centos7.6安装过程中遇到的几个问题。


    系统环境要求

    软硬件环境要求(https://opengauss.org/zh/docs/1.0.0/docs/installation.html)

    参考官网使用centos7.6,centos只能是这个版本。

    单机虚拟机功能测试最小内存2G。


    SSL问题

    Centos7.6自带的openssl版本比较低,需要安装openssl-1.1.1

    tar -zxvf openssl-1.1.1.tar.gz
    cd openssl-1.1.1
    ./config --prefix=/opt/openssl shared zlib
    make -j 4
    make -j 4 install
    

    openssl依赖perl,如果没有安装,需要提前安装perl5,参考如下

    tar -xzf perl-5.30.2.tar.gz
    cd perl-5.30.2
    ./Configure -des -Dprefix=/opt/perl
    make -j 4
    make -j 4 test
    make -j 4 instal
    

    Python问题

    OpenGauss在Centos7.6安装依赖Python3.6.X,测试过Python3.6.8和Python3.6.10都是可以的。

    yum和部分依赖python2需要在安装完Python3,修改python引用版本,如下:

    vi /usr/bin/yum
    第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2"
    
    
    vi /usr/libexec/urlgrabber-ext-down
    第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2"
    

    源码编译完Python3后需要建立符号链接

    ln -sf /opt/python3/bin/python3 /usr/bin/python
    

    编译完Python后,修改Modules/Setup文件,修改SSL路径,如下

    _socket socketmodule.c
    SSL=/opt/openssl
    _ssl _ssl.c 
            -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl 
            -L$(SSL)/lib -lssl -lcrypto
    

    注意:因为源码安装openssl时没有使用默认路径,自定义安装在/opt/openssl目录下,所以需要需改。

    3.6以上版本可以直接通过编译参数指定ssl路径,3.6需要手工修改。

    下面是编译安装完整过程

    tar -zxvf Python-3.6.10.tgz
    
    
    cd Python-3.6.10
    
    
    ./configure --prefix=/opt/python3 
    --enable-shared 
    --enable-optimizations
    
    
    make -j 4
    
    
    make -j 4 install
    
    
    cp /opt/python3/lib/libpython3.6m.so.1.0 /usr/lib64
    

    导入测试ssl

    /opt/python3/bin/python3
    >>> import ssl
    >>> import _ssl
    

    上面两个import不报错则正常。


    初始化问题

    比较常见的问题是SSH互信问题,单机初始化可以不需要配置SSH互信
    单机环境可以使用下面的两个参数

    • 使用-L选项本地安装

    • 使用–non-interactive非交换模式

    ./gs_preinstall -U omm -G dbgrp -L 
    -X /opt/software/openGauss/clusterconfig.xml 
    --non-interactive
    

    /opt/software/openGauss/clusterconfig.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <ROOT>
        <CLUSTER>
            <PARAM name="clusterName" value="dbCluster" />
            <PARAM name="nodeNames" value="opengauss" />
            <PARAM name="backIp1s" value="127.0.0.1"/>
            <PARAM name="gaussdbAppPath" value="/opt/gaussdb/app" />
            <PARAM name="gaussdbLogPath" value="/var/log/gaussdb" />
            <PARAM name="gaussdbToolPath" value="/opt/huawei/wisequery" />
            <PARAM name="corePath" value="/opt/opengauss/corefile"/>
            <PARAM name="clusterType" value="single-inst"/>
        </CLUSTER>
        <DEVICELIST>
            <DEVICE sn="1000001">
                <PARAM name="name" value="opengauss"/>
                <PARAM name="azName" value="AZ1"/>
                <PARAM name="azPriority" value="1"/>
                <PARAM name="backIp1" value="127.0.0.1"/>
                <PARAM name="sshIp1" value="127.0.0.1"/>
            <!--dbnode-->
            <PARAM name="dataNum" value="1"/>
            <PARAM name="dataPortBase" value="26000"/>
            <PARAM name="dataNode1" value="/gaussdb/data/db1"/>
            </DEVICE>
        </DEVICELIST>
    </ROOT>
    

    手工建立SSH互信(主备安装需要配置)
    root用户

    # ssh-keygen -t rsa
    # ssh-copy-id -i .ssh/id_rsa.pub root@opengauss
    # ssh-copy-id -i .ssh/id_rsa.pub root@opengauss2
    

    omm用户

    # su - omm
    $ ssh-keygen -t rsa
    $ ssh-copy-id -i .ssh/id_rsa.pub omm@opengauss
    $ ssh-copy-id -i .ssh/id_rsa.pub omm@opengauss2
    

    配置数据库参数

    默认参数配置的内存较大,使用虚拟机测试时需要调小内存参数

    gs_install 
    -X /opt/software/openGauss/clusterconfig.xml 
    -l /home/omm/gs_install.log 
    --gsinit-parameter="--encoding=UTF8" 
    --dn-guc="max_connections=10" 
    --dn-guc="max_process_memory=2GB" 
    --dn-guc="shared_buffers=128MB" 
    --dn-guc="bulk_write_ring_size=128MB" 
    --dn-guc="cstore_buffers=16MB" 
    --autostart=yes
    

    数据库密码加密算法配置

    默认加密算法是sha256,如果要兼容使用psql
    可以修改为md5,对应password_encryption_type参数


    远程访问

    默认的omm超级用户不允许远程访问,需要新建用户,同时配置pg_hba防火墙,或者通过gs_guc设置

    墨天轮原文链接:https://www.modb.pro/db/27006(复制到浏览器中打开或者点击“阅读原文”)


    云和恩墨开源软件研发团队已率先在Docker Hub上发布了第一版可公开下载的openGauss容器镜像,感兴趣的朋友可以自己装上玩儿玩儿。

    现在就去“尝鲜” 

    推荐阅读:144页!分享珍藏已久的数据库技术年刊

    数据和云

    ID:OraNews

    如有收获,请划至底部,点击“在看”,谢谢!

    点击下图查看更多 ↓

    云和恩墨大讲堂 | 一个分享交流的地方

    长按,识别二维码,加入万人交流社群

    请备注:云和恩墨大讲堂

      点个“在看”

    你的喜欢会被看到❤

  • 相关阅读:
    Linux下如何查看版本信息
    linux的top命令参数详解
    浅谈Linux内存管理机制
    python3 判断字符串是否为纯空格组成的方法
    python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
    python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
    python3 list列表随机选取一个元素、随机选择一个user-agent
    windows系统中,在当前目录下打开cmd命令行的两种方法
    name 'reload' is not defined解决方法
    Vue.js05:vue内联样式
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13311618.html
Copyright © 2020-2023  润新知