openGauss5.0企业版使用指南之企业版安装

news2025/1/11 14:27:21

文章目录

    • 0. 前言
    • 1. 安装
    • 1.1 获取安装包
      • 1.1.1 操作步骤
      • 1.1.2 准备软硬件安装环境
      • 1.1.3 软硬件环境要求
      • 1.1.4 修改操作系统配置
      • 1.1.5 **关闭操作系统防火墙**
      • 1.1.6 **设置字符集参数**
      • 1.1.7 **设置时区和时间**
      • 1.1.8 **(可选)关闭swap交换内存**
      • 1.1.9 **关闭RemoveIPC**
      • 1.1.10 关闭HISTORY记录
    • 1.2. 创建XML配置文件
      • 1.2.1 配置数据库名称及各项目录
      • 1.2.2 **表 1** 参数说明
      • 1.2.4 配置Host基本信息
      • 1.2.5 配置数据库主节点信息
      • 1.2.6 配置CM\_SERVER(主、非主)信息
      • 1.2.7 示例
        • 1.2.7.1 单节点配置文件
        • 1.2.7.2 一主一备配置文件
        • 1.2.7.3 一主一备一级联配置文件
        • 1.2.7.4 一主二备配置文件
        • 1.2.7.6 一主三备配置文件
        • 1.2.7.8 一主四备配置文件(支持自定义利用FIRST、ANY设置同步备机)
    • 1.3 上传安装包和XML文件 | 上传安装包和XML配置文件到待安装的服务器。 |
    • 1.4 解压安装包 | 使用tar命令解压安装包。
  • 2. 初始化安装环境
    • 准备安装用户及环境
      • 前提条件
      • 注意事项
      • 操作步骤
      • 示例
      • 错误排查
    • 手工建立互信
      • 前提条件
      • 使用脚本建立互信
      • 手工建立互信
      • 删除root用户互信
      • 示例
    • 配置操作系统参数
      • 操作系统参数
      • 文件系统参数
      • transparent_hugepage设置
      • 文件句柄设置
      • 系统支持的最大进程数设置
      • 网卡参数配置
  • 执行安装
    • 前提条件
    • 操作步骤
    • 安装生成的目录
    • 示例
    • 错误排查

在这里插入图片描述

0. 前言

openGauss5.0企业版 大概如下8个步骤

序号流程说明
1安装前准备openGauss安装前需要准备相应的软硬件环境以及完成相关配置。本文档提供了openGauss安装所需的最低要求,实际安装中,请用户根据实际情况进行规划。更多信息,请参考安装准备。
2获取并校验安装包安装包需要在openGauss开源社区下载并且对安装包内容进行检查,详细请参见获取安装包。
3配置XML文件安装openGauss前需要创建XML文件。XML文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。用于告知openGauss如何部署。用户需根据不同场景配置对应的XML文件。关于如何配置XML文件,详细请参见创建XML配置文件。
4上传安装包和XML文件上传安装包和XML配置文件到待安装的服务器。
5解压安装包使用tar命令解压安装包。
6初始化安装环境安装环境的初始化包含上传安装包和XML文件、解压安装包、使用gs_preinstall准备好安装环境。关于如何初始化安装环境,详细请参见初始化安装环境。
7执行安装使用gs_install安装openGauss。关于如何执行安装,详细请参见执行安装。
8设置备机可读可选操作。在开启备机可读之后,备机将支持读操作,并满足数据一致性要求。

1. 安装

1.1 获取安装包

openGauss开源社区上提供了安装包的获取方式。

1.1.1 操作步骤

  1. 从openGauss开源社区下载对应平台的安装包。

    a. 通过https://opengauss.org/zh/download/登录openGauss开源社区,选择对应平台的极简版安装包。

    b. 单击“下载”。

  2. 检查安装包。

    解压安装包,检查安装目录及文件是否齐全。在安装包所在目录执行以下命令:

    ""tar -jxf openGauss-x.x.x-openEuler-64bit.tar.bz2
    ls -lb
    

    执行ls命令,显示类似如下信息:

    ""total 90296
    drwx------ 3 root root     4096 Mar 31 21:18 bin
    drwx------ 3 root root     4096 Mar 31 21:18 etc
    drwx------ 3 root root     4096 Mar 31 21:18 include
    drwx------ 4 root root     4096 Mar 31 21:18 jre
    drwx------ 5 root root     4096 Mar 31 21:18 lib
    -rw------- 1 root root 92427499 Apr  1 09:43 openGauss-x.x.x-openEuler-64bit.tar.bz2
    drwx------ 5 root root     4096 Mar 31 21:18 share
    drwx------ 2 root root     4096 Mar 31 21:18 simpleInstall
    -rw------- 1 root root       32 Mar 31 21:18 version.cfg
    

1.1.2 准备软硬件安装环境

本章节描述安装前需要进行的环境准备。

1.1.3 软硬件环境要求

介绍openGauss的软硬件环境要求。建议部署openGauss的各服务器具有等价的软硬件配置。

硬件环境要求

表1 列出了openGauss服务器应具备的最低硬件要求。在实际产品中,硬件配置的规划需考虑数据规模及所期望的数据库响应速度。请根据实际情况进行规划。

表 1 硬件环境要求

项目配置描述
内存功能调试建议32GB以上。性能测试和商业部署时,单实例部署建议128GB以上。复杂的查询对内存的需求量比较高,在高并发场景下,可能出现内存不足。此时建议使用大内存的机器,或使用负载管理限制系统的并发。
CPU功能调试最小1×8核,2.0GHz。性能测试和商业部署时,建议1×16核,2.0GHz。CPU超线程和非超线程两种模式都支持。说明:个人开发者最低配置2核4G,推荐配置4核8G。目前,openGauss仅支持ARM服务器和基于x86_64通用PC服务器的CPU。
硬盘用于安装openGauss的硬盘需最少满足如下要求:- 至少1GB用于安装openGauss的应用程序。

软件环境要求

表 2 软件环境要求

软件类型配置描述
Linux操作系统- ARM:
-   openEuler 20.03LTS(推荐采用此操作系统)
-   openEuler 22.03LTS
-   麒麟V10
-   Asianux 7.5

软件依赖要求

openGauss的软件依赖要求如表3 所示。

建议使用上述操作系统安装光盘或者源中,下列依赖软件的默认安装包,若不存在下列软件,可参看软件对应的建议版本。

表 3 软件依赖要求

所需软件建议版本
libaio-devel建议版本:0.3.109-13
flex要求版本:2.5.31 以上
bison建议版本:2.7-4
ncurses-devel建议版本:5.9-13.20130511
glibc-devel建议版本:2.17-111
patch建议版本:2.7.1-10
redhat-lsb-core建议版本:4.1
readline-devel建议版本:7.0-13
libnsl(openEuler+x86环境中)建议版本:2.28-36

1.1.4 修改操作系统配置

注意:

以下动作需要以root用户进行操作操作完成后请及时注销root用户,避免误操作。

1.1.5 关闭操作系统防火墙

为了在防火墙开启的状态下,确保openGauss的正常使用,用户需要将同openGauss相关的服务、协议、IP以及端口添加到openGauss主机的防火墙白名单中。

以openEuler操作系统为例,假设openGauss信息如表4所示。

表 4 openGauss信息

主机名称内部IP外部IP
plat1192.168.0.1110.10.0.11
管理网络-10.10.64.236

目前仅支持在防火墙关闭的状态下进行安装。

  1. 修改/etc/selinux/config文件中的“SELINUX”值为“disabled”。

    a. 使用VIM打开config文件。

    ""vim /etc/selinux/config
    

    b. 修改“SELINUX”的值“disabled”,执行**:wq**保存并退出修改。

    ""SELINUX=disabled
    
  2. 重新启动操作系统。

    ""reboot
    
  3. 检查防火墙是否关闭。

    ""systemctl status firewalld
    

    若防火墙状态显示为active (running),则表示防火墙未关闭,请执行4;

    若防火墙状态显示为inactive (dead),则无需再关闭防火墙。

  4. 关闭防火墙。

    ""systemctl disable firewalld.service
    systemctl stop firewalld.service
    
  5. 在其他主机上重复步骤1到步骤4。

1.1.6 设置字符集参数

将各数据库节点的字符集设置为相同的字符集,可以在/etc/profile文件中添加“export LANG=XXX”(XXX为Unicode编码)。

""vim /etc/profile

1.1.7 设置时区和时间

在各数据库节点上,确保时区和时间一致。

  1. 执行如下命令检查各数据库节点时间和时区是否一致。如果各数据库节点时间和时区不一致区,请执行步骤2~步骤3。

    ""date
    
  2. 使用如下命令将各数据库节点/usr/share/zoneinfo/目录下的时区文件拷贝为/etc/localtime文件。

    ""cp /usr/share/zoneinfo/$地区/$时区 /etc/localtime
    

    说明:
    $地区/$时区为需要设置时区的信息,例如:Asia_Shanghai。

  3. 使用date -s命令将各数据库节点的时间设置为统一时间,举例如下。

    ""date -s "Sat Sep 27 16:00:07 CST 2020"
    

1.1.8 (可选)关闭swap交换内存

关闭swap交换内存是为了保障数据库的访问性能,避免把数据库的缓冲区内存淘汰到磁盘上。 如果服务器内存比较小,内存过载时,可打开swap交换内存保障正常运行。

在各数据库节点上,使用swapoff -a命令将交换内存关闭。

""swapoff -a

1.1.9 关闭RemoveIPC

在各数据库节点上,关闭RemoveIPC。CentOS操作系统默认为关闭,可以跳过该步骤。

  1. 修改/etc/systemd/logind.conf文件中的“RemoveIPC”值为“no”。

    a. 使用VIM打开logind.conf文件。

    ""vim  /etc/systemd/logind.conf
    

    b. 修改“RemoveIPC”值为“no”。

    ""RemoveIPC=no
    
  2. 修改/usr/lib/systemd/system/systemd-logind.service文件中的“RemoveIPC”值为“no”。

    a. 使用VIM打开systemd-logind.service文件。

    ""vim /usr/lib/systemd/system/systemd-logind.service
    

    b. 修改“RemoveIPC”值为“no”。

    ""RemoveIPC=no
    
  3. 重新加载配置参数。

    ""systemctl daemon-reload
    systemctl restart systemd-logind
    
  4. 检查修改是否生效。

    ""loginctl show-session | grep RemoveIPC
    systemctl show systemd-logind | grep RemoveIPC
    
  5. 在其他主机上重复步骤1到步骤4。

1.1.10 关闭HISTORY记录

说明:

为避免指令历史记录安全隐患,需关闭各主机的history指令。

步骤 1 修改根目录下/etc/profile文件。

""vim /etc/profile

步骤 2 设置HISTSIZE值为0。例如,系统中HISTSIZE默认值为1000,将其修改为0。

""HISTSIZE=0

步骤 3 保存/etc/profile。

"":wq

步骤 4 设置/etc/profile生效。

""source /etc/profile

1.2. 创建XML配置文件

安装openGauss前需要创建cluster_config.xml文件。cluster_config.xml文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。用于告知openGauss如何部署。用户需根据不同场景配置对应的XML文件。

下面以一主一备的方案为例,说明如何创建XML配置文件。

  • 配置数据库名称及各项目录
  • 配置Host基本信息
  • 配置数据库主节点信息
  • 配置CM_SERVER(主、非主)信息
  • 示例

1.2.1 配置数据库名称及各项目录

在script/gspylib/etc/conf/cluster_config_template.xml获取XML文件模板。以下配置内容为示例,可自行替换。每行信息均有注释进行说明。

""<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
  <!-- 整体信息 -->
  <CLUSTER>
  <!-- 数据库名称 -->
    <PARAM name="clusterName" value="Cluster_template" />  
  <!-- 数据库节点名称(hostname) -->
    <PARAM name="nodeNames" value="node1_hostname,node2_hostname" />
  <!-- 数据库安装目录-->
    <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />
  <!-- 日志目录-->
    <PARAM name="gaussdbLogPath" value="/var/log/omm" />
  <!-- 临时文件目录-->
    <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp" />
  <!--数据库工具目录-->
    <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />
  <!--数据库core文件目录-->
    <PARAM name="corePath" value="/opt/huawei/corefile"/>
  <!-- 节点IP,与nodeNames一一对应 -->
    <PARAM name="backIp1s" value="192.168.0.1,192.168.0.2"/>
    <!-- 是否开启数据库节点自选主 -->
    <PARAM name="enable_dcf" value="on"/>
    <!-- 开启开关后对应的节点IP、PORT和角色信息 -->
    <PARAM name="dcf_config" value="[{&quot;stream_id&quot;:1,&quot;node_id&quot;:1,&quot;ip&quot;:&quot;8.92.1.85&quot;,&quot;port&quot;:16683,&quot;role&quot;:&quot;LEADER&quot;},{&quot;stream_id&quot;:1,&quot;node_id&quot;:2,&quot;ip&quot;:&quot;8.92.1.86&quot;,&quot;port&quot;:16683,&quot;role&quot;:&quot;FOLLOWER&quot;},{&quot;stream_id&quot;:1,&quot;node_id&quot;:3,&quot;ip&quot;:&quot;8.92.1.87&quot;,&quot;port&quot;:16683,&quot;role&quot;:&quot;FOLLOWER&quot;}]"/>
    <!-- 资源池化模式开关 -->
    <PARAM name="enable_dss" value="on"/>
    <!-- dss实例目录 -->
    <PARAM name="dss_home" value="/opt/huawei/install/data/dss"/>
    <!-- dss共享卷名 -->
    <PARAM name="ss_dss_vg_name" value="data"/>
    <!-- dss挂载卷组名和卷组信息,包含共享卷 -->
    <PARAM name="dss_vg_info" value="data:/dev/sdb,p0:/dev/sdc,p1:/dev/sdd"/>
    <!-- cm投票卷 -->
    <PARAM name="votingDiskPath" value="/dev/sde"/>
    <!-- cm共享卷 -->
    <PARAM name="shareDiskDir" value="/dev/sdf"/>
    <!-- dss开启ssl认证开关 -->
    <PARAM name="dss_ssl_enable" value="on"/>
    <!-- mes通信协议类型  -->
    <PARAM name="ss_interconnect_type" value="TCP"/>
    <!-- rdma绑定cpu序列  -->
    <PARAM name="ss_rdma_work_config" value="1 7"/>

    <!-- VIP信息  -->
    <PARAM name="floatIp1" value="10.10.10.100"/>
    <PARAM name="floatIp2" value="20.20.20.100"/>
    <PARAM name="floatIp3" value="30.30.30.100"/>
  
  </CLUSTER>

须知:

  • “/opt/huawei/install/om”存放互信等工具,为了避免权限问题,不要把实例数据目录放在此目录下。
  • 安装目录和数据目录需为空或者不存在,否则可能导致安装失败。
  • 在对数据库节点的实例进行具体配置时,需确保配置的目录之间不相互耦合。即各个配置目录不关联,删除其中任意一个目录,不会级联删除其它目录。如gaussdbAppPath为"/opt/huawei/install/app",gaussdbLogPath为"/opt/huawei/install/app/omm"。当gaussdbAppPath目录被删除时,会级联删除gaussdbLogPath目录,从而引起其它问题。
  • 若需要安装脚本自动创建安装用户时,各配置的目录需保证不与系统创建的默认用户目录耦合关联。
  • 配置openGauss路径和实例路径时,路径中不能包含"|“,”;“,”&“,”$“,”<“,”>“,”`“,”\“,”'“,”“”,“{”,“}”,“(”,“)”,“[”,“]”,“~”,“*”,"?“特殊字符。
  • 配置数据库节点名称时,请通过hostname命令获取数据库节点的主机名称,替换示例中的node1_hostname,node2_hostname。
  • 配置dcf_config时,角色的配置有leader,follower,passive,logger,其中可投票的角色有leader,follower,logger,配置角色组网时,可投票的角色不能少于3个,因此dcf模式下至少需要三个节点。
  • 资源池化中请谨慎配置所有包含磁盘信息的参数,安装时工具会低格所有参数中配置的磁盘,所有参数中的磁盘不能重复。
  • 资源池化中的ip和dn的数据ip保持一致,dss的端口是db端口+10,dms的端口是db端口+20。

1.2.2 表 1 参数说明

实例类型参数说明
整体信息clusterNameopenGauss名称。
nodeNamesopenGauss中主机名称。
backIp1s主机在后端存储网络中的IP地址(内网IP)。所有openGauss主机使用后端存储网络通讯。
gaussdbAppPathopenGauss程序安装目录。此目录应满足如下要求:- 磁盘空间>1GB。

1.2.4 配置Host基本信息

说明:

每台Host服务器都必须有如下信息,如下示例以node1为例。

内容为示例,可自行替换。每行信息均有注释进行说明。

Host配置以下信息。

""<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- 节点1上的部署信息 -->
<DEVICE sn="node1_hostname">
<!-- 节点1的主机名称 -->
<PARAM name="name" value="node1_hostname" />
<!-- 节点1所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.0.1"/>
<PARAM name="sshIp1" value="192.168.0.1"/>
<!-- node1是否为级联备, on表示该实例为级联备,另外级联备机在相同的AZ里需要配有备机 -->
<PARAM name="cascadeRole" value="on"/>

表 1 参数说明

实例类型参数说明
整体信息name主机名称。
azName指定azName(Available Zone Name),字符串(不能含有特殊字符),例如AZ1、AZ2、AZ3。
azPriority指定azPriority的优先级。
backIp1主机在后端存储网络中的IP地址(内网IP)。所有openGauss主机使用后端存储网络通讯。
sshIp1设置SSH可信通道IP地址(外网IP)。若无外网,则可以不设置该选项或者同backIp1设置相同IP。

说明: 配置文件中所有IP参数(包含backIp、sshIp、listenIp等)均只支持配置一个IP。如果配置第二个IP参数,则不会读取第二个参数的配置值。 示例:xml配置文件中同时配置backIp1和backIp2参数: 在解析配置文件时仅读取backIp1参数的配置值,不会读取backIp2参数的配置值。

""<PARAM name="backIp1" value="192.168.0.1"/>
<PARAM name="backIp2" value="192.168.0.2"/>

1.2.5 配置数据库主节点信息

内容为示例,可自行替换。每行信息均有注释进行说明。

数据库主节点配置以下信息。

""<!--DBnode-->
<PARAM name="dataNum" value="1"/>
<!--数据库端口号-->
<PARAM name="dataPortBase" value=""/>
<!--DBnode侦听IP-->
<PARAM name="dataListenIp1" value="172.31.13.124,172.31.6.198"/>
<!--数据库主节点上的数据目录,及备机数据目录-->
<PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node2_hostname,/opt/huawei/install/data/dn"/>
<!--数据库主节点上的xlog目录,及备机xlog目录-->
<PARAM name="dataNodeXlogPath1" value="/home/omm/gauss_xlog,/home/omm/gauss_xlog "/>
<!--数据库节点上设定同步模式的节点数-->
<PARAM name="dataNode1_syncNum" value="0"/>
<!--数据库节点上自定义设定同步模式的节点方式、数量及顺序,hostname根据主机名自行替换-->
<PARAM name="syncNode_hostname" value="ANY 1(node1_hostname,node2_hostname)"/>

表 1 参数说明

实例类型参数说明
DBnodedataNum当前主机上需要部署的数据库节点个数。
dataPortBase数据库节点的基础端口号,默认值40000。
dataListenIp1侦听的IP地址。未设置时,使用对应主机上的backIp1生成。第一个IP是主节点所在主机IP,第二个IP是备节点所在主机IP。
dataNode1用于指定当前主机上的数据库节点的数据存储目录。此目录为数据库的数据存储目录。应规划到数据盘上。
dataNodeXlogPath1可选参数,用于指定当前数据库中xlog存储路径。此目录为数据库xlog日志存储目录,只支持绝对路径。如不指定,则默认存放在数据目录的pg_xlog目录下。
dataNode1_syncNum可选参数,与syncNode_hostname参数二选一。如需配置,仅在主机节点下配置。用于指定当前数据库中同步模式的节点数目。取值范围为0~数据库备机节点数。
syncNode_hostname可选参数,与dataNode1_syncNum参数二选一。如需配置,需要在所有的节点下同时配置。用于指定当前数据库中同步模式的备机节点方式、数量及顺序。syncNode_hostname中的hostname根据主机名自行替换。参数中指定同步备主机名存在且正确,同步备数量不能超过备选同步备主机个数。参数中FIRST与ANY不可以同时存在,ANY支持组合配置,FIRST不支持组合配置,具体见:一主四备配置文件(支持自定义利用FIRST、ANY设置同步备机)。
dataListenIp1可选参数,各节点监听ip,若不配置,则默认使用backIp1s的值
floatIpMap1可选参数,配置VIP时需要配置,表示floatIp与dataListenIp的对应关系,其顺序与dataListenIp1的顺序要相互对应

1.2.6 配置CM_SERVER(主、非主)信息

非CMS主节点配置以下信息。

""<!-- cm --> 
<PARAM name="cmServerPortStandby" value="25500"/> 
<PARAM name="cmDir" value="/opt/huawei/data/cm"/>

表 1 参数说明

实例类型参数说明
CMcmServerPortBase主CM Server端口号,默认值5000。
cmServerPortStandby备CM Server端口号,默认值5500。
cmServerListenIp1CM Server用于侦听CM Agent连接请求或DBA管理请求的IP地址。
cmServerHaIp1主、备CM Server间通信的IP地址。Value中左边为主CM Server的主机IP地址,右边为备CM Server的主机IP地址。未设置时,默认根据主、备CM Server所在主机的backIp1生成。
cmDirCM数据文件路径。保存CM Server和CM Agent用到的数据文件,参数文件等。各集群主机上均需配置该参数。

表 2 目录说明

目录说明
/opt/huawei/data集群实例的数据存储总目录。此目录为数据库的数据存储目录。应规划到数据盘上。此目录应满足如下要求:- 磁盘空间请根据实际业务数据量大小规划。
  • 各实例间的数据路径相互独立,彼此间没有包含关系。例如本指南中各实例的数据目录规划如表3所示。 |

表 3 数据库实例数据目录

实例名称实例数据目录
CM/opt/huawei/data/cm
主DN/opt/huawei/data/masterX其中,X为从1开始的连续正整数,用于标识当前主机上的第X个DN。
备DN/opt/huawei/data/slaveX其中,X为从1开始的连续正整数,用X标识当前主机上的第X个备DN。

1.2.7 示例

1.2.7.1 单节点配置文件

    ""<?xml version="1.0" encoding="UTF-8"?>
    <ROOT>
        <!-- openGauss整体信息 -->
        <CLUSTER>
            <!-- 数据库名称 -->
            <PARAM name="clusterName" value="dbCluster" />
            <!-- 数据库节点名称(hostname) -->
            <PARAM name="nodeNames" value="node1_hostname" />
            <!-- 数据库安装目录-->
            <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />
            <!-- 日志目录-->
            <PARAM name="gaussdbLogPath" value="/var/log/omm" />
            <!-- 临时文件目录-->
            <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp" />
            <!-- 数据库工具目录-->
            <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />
            <!-- 数据库core文件目录-->
            <PARAM name="corePath" value="/opt/huawei/corefile" />
            <!-- 节点IP,与数据库节点名称列表一一对应 -->
            <PARAM name="backIp1s" value="192.168.0.1"/> 
        </CLUSTER>
        <!-- 每台服务器上的节点部署信息 -->
        <DEVICELIST>
            <!-- 节点1上的部署信息 -->
            <DEVICE sn="node1_hostname">
                <!-- 节点1的主机名称 -->
                <PARAM name="name" value="node1_hostname"/>
                <!-- 节点1所在的AZ及AZ优先级 -->
                <PARAM name="azName" value="AZ1"/>
                <PARAM name="azPriority" value="1"/>
                <!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
                <PARAM name="backIp1" value="192.168.0.1"/>
                <PARAM name="sshIp1" value="192.168.0.1"/>
                   
    	    <!--dbnode-->
    	    <PARAM name="dataNum" value="1"/>
    	    <PARAM name="dataPortBase" value="15400"/>
    	    <PARAM name="dataNode1" value="/opt/huawei/install/data/dn"/>
                <PARAM name="dataNode1_syncNum" value="0"/>
            </DEVICE>
        </DEVICELIST>
    </ROOT>

1.2.7.2 一主一备配置文件

    ""<?xml version="1.0" encoding="UTF-8"?>
    <ROOT>
        <!-- openGauss整体信息 -->
        <CLUSTER>
            <!-- 数据库名称 -->
            <PARAM name="clusterName" value="Cluster_template" />
            <!-- 数据库节点名称(hostname) -->
            <PARAM name="nodeNames" value="node1_hostname,node2_hostname" />
            <!-- 数据库安装目录-->
            <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />
            <!-- 日志目录-->
            <PARAM name="gaussdbLogPath" value="/var/log/omm" />
            <!-- 临时文件目录-->
            <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp"/>
            <!-- 数据库工具目录-->
            <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />
            <!-- 数据库core文件目录-->
            <PARAM name="corePath" value="/opt/huawei/corefile"/>
            <!-- 节点IP,与数据库节点名称列表一一对应 -->
            <PARAM name="backIp1s" value="192.168.0.1,192.168.0.2"/> 
        </CLUSTER>
        <!-- 每台服务器上的节点部署信息 -->
        <DEVICELIST>
            <!-- 节点1上的部署信息 -->
            <DEVICE sn="node1_hostname">
                <!-- 节点1的主机名称 -->
                <PARAM name="name" value="node1_hostname"/>
                <!-- 节点1所在的AZ及AZ优先级 -->
                <PARAM name="azName" value="AZ1"/>
                <PARAM name="azPriority" value="1"/>
                <!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
                <PARAM name="backIp1" value="192.168.0.1"/>
                <PARAM name="sshIp1" value="192.168.0.1"/>
                
    	    <!--dn-->
                <PARAM name="dataNum" value="1"/>
    	    <PARAM name="dataPortBase" value="15400"/>
    	    <PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node2_hostname,/opt/huawei/install/data/dn"/>
                <PARAM name="dataNode1_syncNum" value="0"/>
            </DEVICE>

            <!-- 节点2上的节点部署信息,其中“name”的值配置为主机名称 -->
            <DEVICE sn="node2_hostname">
                <!-- 节点2的主机名称 -->
                <PARAM name="name" value="node2_hostname"/>
                <!-- 节点2所在的AZ及AZ优先级 -->
                <PARAM name="azName" value="AZ1"/>
                <PARAM name="azPriority" value="1"/>
                <!-- 节点2的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
                <PARAM name="backIp1" value="192.168.0.2"/>
                <PARAM name="sshIp1" value="192.168.0.2"/>
    	</DEVICE>
        </DEVICELIST>
    </ROOT>

1.2.7.3 一主一备一级联配置文件

    ""<?xml version="1.0" encoding="UTF-8"?>
    <ROOT>
        <!-- openGauss整体信息 -->
        <CLUSTER>
            <PARAM name="clusterName" value="Cluster_template" />
            <PARAM name="nodeNames" value="node1_hostname,node2_hostname,node3_hostname" />
       
            <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />
            <PARAM name="gaussdbLogPath" value="/var/log/omm" />
            <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp"/>
            <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />
            <PARAM name="corePath" value="/opt/huawei/corefile"/>
            <PARAM name="backIp1s" value="192.168.0.1,192.168.0.2,192.168.0.3"/>
        
        </CLUSTER>
        <!-- 每台服务器上的节点部署信息 -->
        <DEVICELIST>
            <!-- node1上的节点部署信息 -->
            <DEVICE sn="node1_hostname">
                <PARAM name="name" value="node1_hostname"/>
                <PARAM name="azName" value="AZ1"/>
                <PARAM name="azPriority" value="1"/>
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
                <PARAM name="backIp1" value="192.168.0.1"/>
                <PARAM name="sshIp1" value="192.168.0.1"/>
                
          	<!-- cm主 --> 
    	    <PARAM name="cmsNum" value="1"/> 
    	    <PARAM name="cmDir" value="/opt/huawei/install/cm"/> 
    	    <PARAM name="cmServerPortBase" value="15300"/> 
    	    <PARAM name="cmServerListenIp1" value="192.168.0.1,192.168.0.2,192.168.0.3"/> 
    	    <PARAM name="cmServerHaIp1" value="192.168.0.1,192.168.0.2,192.168.0.3"/> 
    	    <!-- cmServerlevel目前只支持1 --> 
    	    <PARAM name="cmServerlevel" value="1"/> 
    	    <!-- cms主及所有备的hostname --> 
    	    <PARAM name="cmServerRelation" value="node1_hostname,node2_hostname,node3_hostname"/>       
    	   
           <!--dn-->
             <PARAM name="dataNum" value="1"/>
    	    <PARAM name="dataPortBase" value="26000"/>
    	    <PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node2_hostname,/opt/huawei/install/data/dn,node3_hostname,/opt/huawei/install/data/dn"/>
            <PARAM name="dataNode1_syncNum" value="0"/>
            </DEVICE>

            <!-- node2上的节点部署信息,其中“name”的值配置为主机名称 -->
            <DEVICE sn="node2_hostname">
                <PARAM name="name" value="node2_hostname"/>
                <PARAM name="azName" value="AZ1"/>
                <PARAM name="azPriority" value="1"/>
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
                <PARAM name="backIp1" value="192.168.0.2"/>
                <PARAM name="sshIp1" value="192.168.0.2"/>
                 <!-- cm --> 
                <PARAM name="cmDir" value="/opt/huawei/install/cm"/> 
                <PARAM name="cmServerPortStandby" value="15300"/> 
    	</DEVICE>

            <!-- node3上的节点部署信息,其中“name”的值配置为主机名称 -->
            <DEVICE sn="node3_hostname">
                <PARAM name="name" value="node3_hostname"/>
                <PARAM name="azName" value="AZ1"/>
                <PARAM name="azPriority" value="1"/>
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
                <PARAM name="backIp1" value="192.168.0.3"/>
                <PARAM name="sshIp1" value="192.168.0.3"/>
                <PARAM name="cascadeRole" value="on"/>
                <!-- cm --> 
                <PARAM name="cmDir" value="/opt/huawei/install/cm"/> 
                <PARAM name="cmServerPortStandby" value="15300"/> 
    	</DEVICE>
        </DEVICELIST>
    </ROOT>

1.2.7.4 一主二备配置文件

    ""<?xml version="1.0" encoding="UTF-8"?> 
    <ROOT> 
        <!-- openGauss整体信息 --> 
        <CLUSTER> 
            <PARAM name="clusterName" value="Cluster_template" /> 
            <PARAM name="nodeNames" value="node1_hostname,node2_hostname,node3_hostname" /> 
        
            <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" /> 
            <PARAM name="gaussdbLogPath" value="/var/log/omm" /> 
            <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp"/> 
            <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" /> 
            <PARAM name="corePath" value="/opt/huawei/corefile"/> 
            <PARAM name="backIp1s" value="192.168.0.1,192.168.0.2,192.168.0.3"/> 
         
        </CLUSTER> 
        <!-- 每台服务器上的节点部署信息 --> 
        <DEVICELIST> 
            <!-- node1上的节点部署信息 --> 
            <DEVICE sn="node1_hostname"> 
                <PARAM name="name" value="node1_hostname"/> 
                <PARAM name="azName" value="AZ1"/> 
                <PARAM name="azPriority" value="1"/> 
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
                <PARAM name="backIp1" value="192.168.0.1"/> 
                <PARAM name="sshIp1" value="192.168.0.1"/> 
                <!--CM节点部署信息--> 
                <PARAM name="cmsNum" value="1"/> 
                <PARAM name="cmServerPortBase" value="15000"/> 
                <PARAM name="cmServerListenIp1" value="192.168.0.1,192.168.0.2,192.168.0.3"/> 
                <PARAM name="cmServerHaIp1" value="192.168.0.1,192.168.0.2,192.168.0.3"/> 
                <PARAM name="cmServerlevel" value="1"/> 
                <PARAM name="cmServerRelation" value="node1_hostname,node2_hostname,node3_hostname"/> 
                <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
    	    <!--dn--> 
                <PARAM name="dataNum" value="1"/> 
    	    <PARAM name="dataPortBase" value="15400"/> 
    	    <PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node2_hostname,/opt/huawei/install/data/dn,node3_hostname,/opt/huawei/install/data/dn"/> 
                <PARAM name="dataNode1_syncNum" value="0"/> 
            </DEVICE> 
     
            <!-- node2上的节点部署信息,其中“name”的值配置为主机名称 --> 
            <DEVICE sn="node2_hostname"> 
                <PARAM name="name" value="node2_hostname"/> 
                <PARAM name="azName" value="AZ1"/> 
                <PARAM name="azPriority" value="1"/> 
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
                <PARAM name="backIp1" value="192.168.0.2"/> 
                <PARAM name="sshIp1" value="192.168.0.2"/> 
                <!-- cm --> 
                <PARAM name="cmServerPortStandby" value="15000"/> 
                <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
    	</DEVICE> 
     
            <!-- node3上的节点部署信息,其中“name”的值配置为主机名称 --> 
            <DEVICE sn="node3_hostname"> 
                <PARAM name="name" value="node3_hostname"/> 
                <PARAM name="azName" value="AZ1"/> 
                <PARAM name="azPriority" value="1"/> 
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
                <PARAM name="backIp1" value="192.168.0.3"/> 
                <PARAM name="sshIp1" value="192.168.0.3"/> 
                <!-- cm --> 
                <PARAM name="cmServerPortStandby" value="15000"/> 
                <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
    	</DEVICE> 
        </DEVICELIST> 
    </ROOT>

1.2.7.6 一主三备配置文件


    ""<?xml version="1.0" encoding="UTF-8"?> 
    <ROOT> 
        <!-- openGauss整体信息 --> 
        <CLUSTER> 
            <PARAM name="clusterName" value="Cluster_template" /> 
            <PARAM name="nodeNames" value="node1_hostname,node2_hostname,node3_hostname,node4_hostname" /> 
        
            <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" /> 
            <PARAM name="gaussdbLogPath" value="/var/log/omm" /> 
            <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp"/> 
            <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" /> 
            <PARAM name="corePath" value="/opt/huawei/corefile"/> 
            <PARAM name="backIp1s" value="192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4"/> 
             
        </CLUSTER> 
        <!-- 每台服务器上的节点部署信息 --> 
        <DEVICELIST> 
            <!-- node1上的节点部署信息 --> 
            <DEVICE sn="node1_hostname"> 
                <PARAM name="name" value="node1_hostname"/> 
                <PARAM name="azName" value="AZ1"/> 
                <PARAM name="azPriority" value="1"/> 
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
                <PARAM name="backIp1" value="192.168.0.1"/> 
                <PARAM name="sshIp1" value="192.168.0.1"/> 
                <!--CM节点部署信息--> 
                <PARAM name="cmsNum" value="1"/> 
                <PARAM name="cmServerPortBase" value="15000"/> 
                <PARAM name="cmServerListenIp1" value="192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4"/> 
                <PARAM name="cmServerHaIp1" value="192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4"/> 
                <PARAM name="cmServerlevel" value="1"/> 
                <PARAM name="cmServerRelation" value="node1_hostname,node2_hostname,node3_hostname,node4_hostname"/> 
                <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
    	    <!--dn--> 
                <PARAM name="dataNum" value="1"/> 
    	    <PARAM name="dataPortBase" value="15400"/> 
    	    <PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node2_hostname,/opt/huawei/install/data/dn,node3_hostname,/opt/huawei/install/data/dn,node4_hostname,/opt/huawei/install/data/dn"/>
                <PARAM name="dataNode1_syncNum" value="0"/>
            </DEVICE> 
     
            <!-- node2上的节点部署信息,其中“name”的值配置为主机名称 --> 
            <DEVICE sn="node2_hostname"> 
                <PARAM name="name" value="node2_hostname"/> 
                <PARAM name="azName" value="AZ1"/> 
                <PARAM name="azPriority" value="1"/> 
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
                <PARAM name="backIp1" value="192.168.0.2"/> 
                <PARAM name="sshIp1" value="192.168.0.2"/> 
                <!-- cm --> 
                <PARAM name="cmServerPortStandby" value="15000"/> 
                <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
    	</DEVICE> 
     
            <!-- node3上的节点部署信息,其中“name”的值配置为主机名称 --> 
            <DEVICE sn="node3_hostname"> 
                <PARAM name="name" value="node3_hostname"/> 
                <PARAM name="azName" value="AZ1"/> 
                <PARAM name="azPriority" value="1"/> 
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
                <PARAM name="backIp1" value="192.168.0.3"/> 
                <PARAM name="sshIp1" value="192.168.0.3"/> 
                <!-- cm --> 
                <PARAM name="cmServerPortStandby" value="15000"/> 
                <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
    	</DEVICE> 
     
            <!-- node4上的节点部署信息,其中“name”的值配置为主机名称 --> 
            <DEVICE sn="node4_hostname"> 
                <PARAM name="name" value="node4_hostname"/> 
                <PARAM name="azName" value="AZ1"/> 
                <PARAM name="azPriority" value="1"/> 
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
                <PARAM name="backIp1" value="192.168.0.4"/> 
                <PARAM name="sshIp1" value="192.168.0.4"/> 
                <!-- cm --> 
                <PARAM name="cmServerPortStandby" value="15000"/> 
                <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
    	</DEVICE> 
        </DEVICELIST> 
    </ROOT>

#### 1.2.7.7  一主四备配置文件
```xml
    ""<?xml version="1.0" encoding="UTF-8"?> 
    <ROOT> 
        <!-- openGauss整体信息 --> 
        <CLUSTER> 
            <PARAM name="clusterName" value="Cluster_template" /> 
            <PARAM name="nodeNames" value="node1_hostname,node2_hostname,node3_hostname,node4_hostname,node5_hostname" /> 
        
            <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" /> 
            <PARAM name="gaussdbLogPath" value="/var/log/omm" /> 
            <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp"/> 
            <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" /> 
            <PARAM name="corePath" value="/opt/huawei/corefile"/> 
            <PARAM name="backIp1s" value="192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,192.168.0.5"/> 
             
        </CLUSTER> 
        <!-- 每台服务器上的节点部署信息 --> 
        <DEVICELIST> 
            <!-- node1上的节点部署信息 --> 
            <DEVICE sn="node1_hostname"> 
                <PARAM name="name" value="node1_hostname"/> 
                <PARAM name="azName" value="AZ1"/> 
                <PARAM name="azPriority" value="1"/> 
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
                <PARAM name="backIp1" value="192.168.0.1"/> 
                <PARAM name="sshIp1" value="192.168.0.1"/> 
                <!--CM节点部署信息--> 
                <PARAM name="cmsNum" value="1"/> 
                <PARAM name="cmServerPortBase" value="15000"/> 
                <PARAM name="cmServerListenIp1" value="192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,192.168.0.5"/> 
                <PARAM name="cmServerHaIp1" value="192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,192.168.0.5"/> 
                <PARAM name="cmServerlevel" value="1"/> 
                <PARAM name="cmServerRelation" value="node1_hostname,node2_hostname,node3_hostname,node4_hostname,node5_hostname"/> 
                <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
    	    <!--dn--> 
                <PARAM name="dataNum" value="1"/> 
    	    <PARAM name="dataPortBase" value="15400"/> 
    	    <PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node2_hostname,/opt/huawei/install/data/dn,node3_hostname,/opt/huawei/install/data/dn,node4_hostname,/opt/huawei/install/data/dn,node5_hostname,/opt/huawei/install/data/dn"/> 
                <PARAM name="dataNode1_syncNum" value="0"/> 
            </DEVICE> 
     
            <!-- node2上的节点部署信息,其中“name”的值配置为主机名称 --> 
            <DEVICE sn="node2_hostname"> 
                <PARAM name="name" value="node2_hostname"/> 
                <PARAM name="azName" value="AZ1"/> 
                <PARAM name="azPriority" value="1"/> 
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
                <PARAM name="backIp1" value="192.168.0.2"/> 
                <PARAM name="sshIp1" value="192.168.0.2"/> 
                <!-- cm --> 
                <PARAM name="cmServerPortStandby" value="15000"/> 
                <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
    	</DEVICE> 
     
            <!-- node3上的节点部署信息,其中“name”的值配置为主机名称 --> 
            <DEVICE sn="node3_hostname"> 
                <PARAM name="name" value="node3_hostname"/> 
                <PARAM name="azName" value="AZ1"/> 
                <PARAM name="azPriority" value="1"/> 
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
                <PARAM name="backIp1" value="192.168.0.3"/> 
                <PARAM name="sshIp1" value="192.168.0.3"/> 
                <!-- cm --> 
                <PARAM name="cmServerPortStandby" value="15000"/> 
                <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
    	</DEVICE> 
     
            <!-- node4上的节点部署信息,其中“name”的值配置为主机名称 --> 
            <DEVICE sn="node4_hostname"> 
                <PARAM name="name" value="node4_hostname"/> 
                <PARAM name="azName" value="AZ1"/> 
                <PARAM name="azPriority" value="1"/> 
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
                <PARAM name="backIp1" value="192.168.0.4"/> 
                <PARAM name="sshIp1" value="192.168.0.4"/> 
                <!-- cm --> 
                <PARAM name="cmServerPortStandby" value="15000"/> 
                <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
    	</DEVICE> 
     
            <!-- node5上的节点部署信息,其中“name”的值配置为主机名称 --> 
            <DEVICE sn="node5_hostname"> 
                <PARAM name="name" value="node5_hostname"/> 
                <PARAM name="azName" value="AZ1"/> 
                <PARAM name="azPriority" value="1"/> 
                <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
                <PARAM name="backIp1" value="192.168.0.5"/> 
                <PARAM name="sshIp1" value="192.168.0.5"/> 
                <!-- cm --> 
                <PARAM name="cmServerPortStandby" value="15000"/> 
                <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
    	</DEVICE> 
        </DEVICELIST> 
    </ROOT>

1.2.7.8 一主四备配置文件(支持自定义利用FIRST、ANY设置同步备机)

""<?xml version="1.0" encoding="UTF-8"?> 
<ROOT> 
    <!-- openGauss整体信息 --> 
    <CLUSTER> 
        <PARAM name="clusterName" value="Cluster_template" /> 
        <PARAM name="nodeNames" value="node1_hostname,node2_hostname,node3_hostname,node4_hostname,node5_hostname" /> 
    
        <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" /> 
        <PARAM name="gaussdbLogPath" value="/var/log/omm" /> 
        <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp"/> 
        <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" /> 
        <PARAM name="corePath" value="/opt/huawei/corefile"/> 
        <PARAM name="backIp1s" value="192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,192.168.0.5"/> 
         
    </CLUSTER> 
    <!-- 每台服务器上的节点部署信息 --> 
    <DEVICELIST> 
        <!-- node1上的节点部署信息 --> 
        <DEVICE sn="node1_hostname"> 
            <PARAM name="name" value="node1_hostname"/> 
            <PARAM name="azName" value="AZ1"/> 
            <PARAM name="azPriority" value="1"/> 
            <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
            <PARAM name="backIp1" value="192.168.0.1"/> 
            <PARAM name="sshIp1" value="192.168.0.1"/> 
            <!--CM节点部署信息--> 
            <PARAM name="cmsNum" value="1"/> 
            <PARAM name="cmServerPortBase" value="15000"/> 
            <PARAM name="cmServerListenIp1" value="192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,192.168.0.5"/> 
            <PARAM name="cmServerHaIp1" value="192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,192.168.0.5"/> 
            <PARAM name="cmServerlevel" value="1"/> 
            <PARAM name="cmServerRelation" value="node1_hostname,node2_hostname,node3_hostname,node4_hostname,node5_hostname"/> 
            <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
	    <!--dn--> 
            <PARAM name="dataNum" value="1"/> 
	    <PARAM name="dataPortBase" value="15400"/> 
	    <PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node2_hostname,/opt/huawei/install/data/dn,node3_hostname,/opt/huawei/install/data/dn,node4_hostname,/opt/huawei/install/data/dn,node5_hostname,/opt/huawei/install/data/dn"/> 
            <!-- syncNode_hostname中的hostname替换为自己的主机名称 -->
            <PARAM name="syncNode_node1_hostname" value="ANY 2(node2_hostname, node4_hostname), ANY 1(node3_hostname, node5_hostname)"/> 
        </DEVICE> 
 
        <!-- node2上的节点部署信息,其中“name”的值配置为主机名称 --> 
        <DEVICE sn="node2_hostname"> 
            <PARAM name="name" value="node2_hostname"/> 
            <PARAM name="azName" value="AZ1"/> 
            <PARAM name="azPriority" value="1"/> 
            <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
            <PARAM name="backIp1" value="192.168.0.2"/> 
            <PARAM name="sshIp1" value="192.168.0.2"/> 
            <!-- syncNode_hostname中的hostname替换为自己的主机名称 -->
            <PARAM name="syncNode_node2_hostname" value="ANY 2(node1_hostname, node3_hostname), ANY 1(node5_hostname, node4_hostname)"/>
            <!-- cm --> 
            <PARAM name="cmServerPortStandby" value="15000"/> 
            <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
	</DEVICE> 
 
        <!-- node3上的节点部署信息,其中“name”的值配置为主机名称 --> 
        <DEVICE sn="node3_hostname"> 
            <PARAM name="name" value="node3_hostname"/> 
            <PARAM name="azName" value="AZ1"/> 
            <PARAM name="azPriority" value="1"/> 
            <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
            <PARAM name="backIp1" value="192.168.0.3"/> 
            <PARAM name="sshIp1" value="192.168.0.3"/> 
            <!-- syncNode_hostname中的hostname替换为自己的主机名称 -->
            <PARAM name="syncNode_node3_hostname" value="FIRST 3(node2_hostname, node1_hostname, node4_hostname, node5_hostname)"/>
            <!-- cm --> 
            <PARAM name="cmServerPortStandby" value="15000"/> 
            <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
	</DEVICE> 
 
        <!-- node4上的节点部署信息,其中“name”的值配置为主机名称 --> 
        <DEVICE sn="node4_hostname"> 
            <PARAM name="name" value="node4_hostname"/> 
            <PARAM name="azName" value="AZ1"/> 
            <PARAM name="azPriority" value="1"/> 
            <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
            <PARAM name="backIp1" value="192.168.0.4"/> 
            <PARAM name="sshIp1" value="192.168.0.4"/> 
            <!-- syncNode_hostname中的hostname替换为自己的主机名称 -->
            <PARAM name="syncNode_node4_hostname" value="ANY 2(node2_hostname, node1_hostname, node5_hostname, node3_hostname)"/>
            <!-- cm --> 
            <PARAM name="cmServerPortStandby" value="15000"/> 
            <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
	</DEVICE> 
 
        <!-- node5上的节点部署信息,其中“name”的值配置为主机名称 --> 
        <DEVICE sn="node5_hostname"> 
            <PARAM name="name" value="node5_hostname"/> 
            <PARAM name="azName" value="AZ1"/> 
            <PARAM name="azPriority" value="1"/> 
            <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
            <PARAM name="backIp1" value="192.168.0.5"/> 
            <PARAM name="sshIp1" value="192.168.0.5"/> 
            <!-- syncNode_hostname中的hostname替换为自己的主机名称 -->
            <PARAM name="syncNode_node5_hostname" value="ANY 1(node1_hostname, node2_hostname, node3_hostname, node4_hostname)"/>
            <!-- cm --> 
            <PARAM name="cmServerPortStandby" value="15000"/> 
            <PARAM name="cmDir" value="/opt/huawei/data/cmserver"/> 
	</DEVICE> 
    </DEVICELIST> 
</ROOT>

1.3 上传安装包和XML文件 | 上传安装包和XML配置文件到待安装的服务器。 |

1.4 解压安装包 | 使用tar命令解压安装包。

2. 初始化安装环境

为了保证openGauss的正确安装,请首先对主机环境进行配置。

  • 准备安装用户及环境
  • 手工建立互信
  • 配置操作系统参数

准备安装用户及环境

创建完openGauss配置文件后,在执行安装前,为了后续能以最小权限进行安装及openGauss管理操作,保证系统安全性,需要运行安装前置脚本gs_preinstall准备好安装用户及环境。

安装前置脚本gs_preinstall可以协助用户自动完成如下的安装环境准备工作:

  • 自动设置Linux内核参数以达到提高服务器负载能力的目的。这些参数直接影响数据库系统的运行状态,请仅在确认必要时调整。openGauss所设置的Linux内核参数取值请参见配置操作系统参数。
  • 自动将openGauss配置文件、安装包拷贝到openGauss主机的相同目录下。
  • openGauss安装用户、用户组不存在时,自动创建安装用户以及用户组。
  • 读取openGauss配置文件中的目录信息并创建,将目录权限授予安装用户。

前提条件

  • 已完成安装准备的所有任务。

注意事项

  • 用户需要检查上层目录权限,保证安装用户对安装包和配置文件目录读写执行的权限。
  • xml文件中各主机的名称与IP映射配置正确。
  • 只能使用root用户执行gs_preinstall命令。

操作步骤

  1. 以root用户登录待安装openGauss的任意主机,并按规划创建存放安装包的目录。
""mkdir -p /opt/software/openGauss
chmod 755 -R /opt/software

说明:

  • 不建议把安装包的存放目录规划到openGauss用户的根目录或其子目录下,可能导致权限问题。
  • openGauss用户须具有/opt/software/openGauss目录的读写权限。

2.将安装包“openGauss-x.x.x-openEuler-64bit-all.tar.gz”和配置文件“cluster_config.xml”都上传至上一步所创建的目录中。

3.在安装包所在的目录下,解压安装包openGauss-x.x.x-openEuler-64bit-all.tar.gz。安装包解压后,会有OM安装包和Server安装包。继续解压OM安装包,会在/opt/software/openGauss路径下自动生成script子目录,并且在script目录下生成gs_preinstall等各种OM工具脚本。

""cd /opt/software/openGauss
tar -zxvf openGauss-x.x.x-openEuler-64bit-all.tar.gz
tar -zxvf openGauss-x.x.x-openEuler-64bit-om.tar.gz

说明:

  • 在执行前置脚本gs_preinstall时,需要规划好openGauss配置文件路径、安装包存放路径、程序安装目录、实例数据目录,后续普通用户使用过程中不能再更改这些路径。
  • 运行前置脚本gs_preinstall准备安装环境时,脚本内部会自动将openGauss配置文件、解压后的安装包同步拷贝到其余服务器的相同目录下。
  • 在执行前置脚本或者互信前,请检查/etc/profile文件中是否包含错误输出信息,如果存在错误输出,需手动处理。

4.进入到工具脚本存放目录下。

""cd /opt/software/openGauss/script

5.如果是openEuler的操作系统,执行如下命令打开performance.sh文件,用#注释sysctl -w vm.min_free_kbytes=112640 &> /dev/null,键入“ESC”键进入指令模式,执行**:wq**保存并退出修改。

""vi /etc/profile.d/performance.sh

6.为确保成功安装,检查hostname与/etc/hostname是否一致。预安装过程中,会对hostname进行检查。

7.使用gs_preinstall准备好安装环境。若为共用环境需加入–sep-env-file=ENVFILE参数分离环境变量,避免与其他用户相互影响,ENVFILE为用户自行指定的环境变量分离文件的路径,可以为一个空文件。

  • 采用交互模式执行前置,并在执行过程中自动创建操作系统root用户互信和omm用户互信:
""./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml

omm为数据库管理员(也是运行openGauss的操作系统用户),dbgrp为运行openGauss的操作系统用户的群组名称,/opt/software/openGauss/cluster_config.xml为openGauss配置文件路径。在执行过程中,用户根据提示选择是否创建互信,并输入操作系统root用户或omm用户的密码。

  • 不允许创建root用户互信时,创建omm用户,在各主机上执行本地模式前置,然后用户手动创建openGauss用户互信:如果预安装指定-L参数,预安装前需手动将所有节点的主机名和ip映射关系,写入各个主机的/etc/hosts,并在每个映射关系后边加入注释内容:#Gauss OM IP Hosts Mapping。

    a.执行下面命令准备安装环境。

    ""cd /opt/software/openGauss/script
    ./gs_preinstall -U omm -G dbgrp -L -X /opt/software/openGauss/cluster_config.xml
    

    说明: 此操作需要在每台主机上执行该命令。

    • 采用非交互模式执行前置:

    a.参考手工建立互信章节手工建立root用户互信和openGauss用户互信。

    b.执行下面命令准备安装环境。

    ""cd /opt/software/openGauss/script
    ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml --non-interactive
    

    说明:

    • 此模式要求用户确保在执行前,已经建立了各节点root用户互信和openGauss用户互信。
    • root用户互信可能会存在安全隐患,因此建议用户在执行完安装后,立即删除各主机上root用户的互信。

示例

执行前置脚本:

""plat1:/opt/software/openGauss/script # ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml
Parsing the configuration file.
Successfully parsed the configuration file.
Installing the tools on the local node.
Successfully installed the tools on the local node.
Are you sure you want to create trust for root (yes/no)? yes
Please enter password for root.
Password:
Creating SSH trust for the root permission user.
Checking network information.
All nodes in the network are Normal.
Successfully checked network information.
Creating SSH trust.
Creating the local key file.
Successfully created the local key files.
Appending local ID to authorized_keys.
Successfully appended local ID to authorized_keys.
Updating the known_hosts file.
Successfully updated the known_hosts file.
Appending authorized_key on the remote node.
Successfully appended authorized_key on all remote node.
Checking common authentication file content.
Successfully checked common authentication content.
Distributing SSH trust file to all node.
Successfully distributed SSH trust file to all node.
Verifying SSH trust on all hosts.
Successfully verified SSH trust on all hosts.
Successfully created SSH trust.
Successfully created SSH trust for the root permission user.
Setting pssh path
Successfully set core path.
Distributing package.
Begin to distribute package to tool path.
Successfully distribute package to tool path.
Begin to distribute package to package path.
Successfully distribute package to package path.
Successfully distributed package.
Are you sure you want to create the user[omm] and create trust for it (yes/no)? yes
Please enter password for cluster user.
Password:
Please enter password for cluster user again.
Password:
Successfully created [omm] user on all nodes.
Preparing SSH service.
Successfully prepared SSH service.
Installing the tools in the cluster.
Successfully installed the tools in the cluster.
Checking hostname mapping.
Successfully checked hostname mapping.
Creating SSH trust for [omm] user.
Checking network information.
All nodes in the network are Normal.
Successfully checked network information.
Creating SSH trust.
Creating the local key file.
Successfully created the local key files.
Appending local ID to authorized_keys.
Successfully appended local ID to authorized_keys.
Updating the known_hosts file.
Successfully updated the known_hosts file.
Appending authorized_key on the remote node.
Successfully appended authorized_key on all remote node.
Checking common authentication file content.
Successfully checked common authentication content.
Distributing SSH trust file to all node.
Successfully distributed SSH trust file to all node.
Verifying SSH trust on all hosts.
Successfully verified SSH trust on all hosts.
Successfully created SSH trust.
Successfully created SSH trust for [omm] user.
Checking OS software.
Successfully check os software.
Checking OS version.
Successfully checked OS version.
Creating cluster's path.
Successfully created cluster's path.
Set and check OS parameter.
Setting OS parameters.
Successfully set OS parameters.
Preparing CRON service.
Successfully prepared CRON service.
Setting user environmental variables.
Successfully set user environmental variables.
Setting the dynamic link library.
Successfully set the dynamic link library.
Setting Core file
Successfully set core path.
Setting pssh path
Successfully set pssh path.
Set ARM Optimization.
No need to set ARM Optimization.
Fixing server package owner.
Setting finish flag.
Successfully set finish flag.
PreInstallationGuide succeeded.

如果主备机的root用户密码不同,且不能统一修改为一致时,执行前置脚本本地安装模式:

""plat1:/opt/software/openGauss/script # ./gs_preinstall -U omm -G dbgrp -L -X /opt/software/openGauss/cluster_config.xml 
Parsing the configuration file.
Successfully parsed the configuration file.
Installing the tools on the local node.
Successfully installed the tools on the local node.
Checking OS version.
Successfully checked OS version.
Creating cluster's path.
Successfully created cluster's path.
Set and check OS parameter.
Setting OS parameters.
Successfully set OS parameters.
Warning: InstallationGuide environment contains some warning messages.
Please get more details by "/home/package/r8c00/script/gs_checkos -i A -h SIA1000068990".
Set and check OS parameter completed.
Preparing CRON service.
Successfully prepared CRON service.
Preparing SSH service.
Successfully prepared SSH service.
Setting user environmental variables.
Successfully set user environmental variables.
Configuring alarms on the cluster nodes.
Successfully configured alarms on the cluster nodes.
Setting the dynamic link library.
Successfully set the dynamic link library.
Setting Cgroup.
Successfully set Cgroup.
Setting finish flag.
Successfully set finish flag.
PreInstallationGuide succeeded.

以非交互模式执行前置:

""plat1:/opt/software/openGauss/script # ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml --non-interactive
Parsing the configuration file.
Successfully parsed the configuration file.
Installing the tools on the local node.
Successfully installed the tools on the local node.
Distributing package.
Begin to distribute package to tool path.
Successfully distribute package to tool path.
Begin to distribute package to package path.
Successfully distribute package to package path.
Successfully distributed package.
Installing the tools in the cluster.
Successfully installed the tools in the cluster.
Checking hostname mapping.
Successfully checked hostname mapping.
Checking OS version.
Successfully checked OS version.
Creating cluster's path.
Successfully created cluster's path.
Set and check OS parameter.
Setting OS parameters.
Successfully set OS parameters.
Set and check OS parameter completed.
Preparing CRON service.
Successfully prepared CRON service.
Preparing SSH service.
Successfully prepared SSH service.
Setting user environmental variables.
Successfully set user environmental variables.
Configuring alarms on the cluster nodes.
Successfully configured alarms on the cluster nodes.
Setting the dynamic link library.
Successfully set the dynamic link library.
Setting Cgroup.
Successfully set Cgroup.
Set ARM Optimization.
Successfully set ARM Optimization.
Setting finish flag.
Successfully set finish flag.
PreInstallationGuide succeeded.

错误排查

如果准备安装环境失败请根据openGauss日志目录“ G A U S S L O G / o m ”下的“ g s p r e i n s t a l l − Y Y Y Y − M M − D D H H M M S S . l o g ”和“ g s l o c a l − Y Y Y Y − M M − D D H H M M S S . l o g ”中的日志信息排查错误。例如配置文件中“ g a u s s d b L o g P a t h ”参数指定的路径为“ / v a r / l o g / g a u s s d b ”,则“ GAUSSLOG/om”下的“gs_preinstall-YYYY-MM-DD_HHMMSS.log”和“gs_local-YYYY-MM-DD_HHMMSS.log”中的日志信息排查错误。例如配置文件中“gaussdbLogPath”参数指定的路径为“/var/log/gaussdb”,则“ GAUSSLOG/om下的gspreinstallYYYYMMDDHHMMSS.loggslocalYYYYMMDDHHMMSS.log中的日志信息排查错误。例如配置文件中gaussdbLogPath参数指定的路径为“/var/log/gaussdb,则GAUSSLOG/om”路径为“/var/log/gaussdb/omm/om”,omm用户为运行openGauss的用户。

须知:

准备安装用户及环境的过程中会使用root添加定时任务用于定时巡检和上报。

手工建立互信

openGauss在安装过程中,需要在openGauss中的主机间执行命令、传送文件等操作。因此,在普通用户安装前需要确保互信是连通的。前置脚本中会先建立root用户间的互信,然后创建普通用户,并建立普通用户间的互信。

须知:

root用户互信可能会存在安全隐患,因此建议用户在使用完成后,立即删除各主机上root用户的互信。

前提条件

  • 确保ssh服务打开。

  • 确保ssh端口不会被防火墙关闭。

  • 确保xml文件中各主机名称和IP配置正确。

  • 确保所有机器节点间网络畅通。

  • 如果为普通用户建立互信,需要提前在各主机创建相同用户并设置密码。

  • 如果各主机安装并启动了SELinux服务,需要确保/root和/home目录安全上下文为默认值(home目录:system_u:object_r:home_root_t:s0,root目录:system_u:object_r:admin_home_t:s0)或者关闭掉SELinux服务。

    检查系统SELinux状态的方法:执行命令getenforce,如果返回结果是Enforcing,说明SELinux安装并启用。

    检查目录安全上下文的命令:

    ""ls -ldZ  /root | awk '{print $4}'
    
    ""ls -ldZ  /home | awk '{print $4}'
    

    恢复目录安全上下文命令:

    ""restorecon -r -vv /home/
    
    ""restorecon -r -vv /root/
    

使用脚本建立互信

1.创建一个执行互信脚本所需要的输入文本,并在此文件中添加openGauss中所有主机IP。

""plat1:/opt/software/openGauss> vim hostfile
192.168.0.1
192.168.0.2
192.168.0.3

2.以需要创建互信的用户执行脚本。 3.执行下面脚本建立互信。

""plat1:/opt/software/openGauss/script# ./gs_sshexkey -f /opt/software/hostfile

/opt/software/hostfile为主机列表,列出所有需要建立互信机器的主机IP。

手工建立互信

如果openGauss各主机的root密码不一致,gs_preinstall脚本无法建立互信,可以手工建立互信。

说明:

建立互信的过程中需要生成如下4个文件:authorized_keys、id_rsa、id_rsa.pub、known_hosts。请勿删除或破坏这些互信相关的文件。

手工建立信任关系,步骤如下,plat1、plat2、plat3是主机名:

1.在其中一个主机上,生成root用户的本机授权文件。假设在主机plat1上执行。

a. 生成密钥。

""ssh-keygen -t rsa

示例如下:

""plat1:~ # ssh-keygen -t rsa 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
d5:35:46:33:27:22:09:f0:1e:12:a7:87:fa:33:3f:ab root@plat1
The key's randomart image is:
+--[ RSA 2048]----+
|      o.o.....O .|
|       *  .o + * |
|      + + . .    |
|     . + o       |
|    .   S        |
|     .           |
|      +          |
|       +.        |
|      E.oo       |
+-----------------+

b. 生成本机授权文件。

""cat .ssh/id_rsa.pub >> ~/.ssh/authorized_keys

示例如下:

""plat1:~ # cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

2.收集所有的待建互信主机的公钥,写入到本机的known_hosts文件中。此步骤需要在步骤1执行的主机上执行。需要收集plat1、plat2、plat3三个主机的公钥。

a. 收集plat1的公钥,写入到本机known_hosts文件中。

""ssh-keyscan -t rsa plat1 >> ~/.ssh/known_hosts

示例如下:

""plat1:~ # ssh-keyscan -t rsa plat1 >> ~/.ssh/known_hosts 
# plat1 SSH-2.0-OpenSSH_5.1 

b. 收集plat2的公钥,写入到本机known_hosts文件中。

""ssh-keyscan -t rsa plat2 >> ~/.ssh/known_hosts

示例如下:

""plat1:~ # ssh-keyscan -t rsa plat2 >> ~/.ssh/known_hosts 
# plat2 SSH-2.0-OpenSSH_5.1 

c. 收集plat3的公钥,写入到本机known_hosts文件中。

""ssh-keyscan -t rsa plat3 >> ~/.ssh/known_hosts

示例如下:

""plat1:~ # ssh-keyscan -t rsa plat3 >> ~/.ssh/known_hosts 
# plat3 SSH-2.0-OpenSSH_5.1 

说明:

  • 当远程主机的公钥被接受以后,它就会被保存在文件$HOME/.ssh/known_hosts之中。下次再连接这台主机,系统就会认出它的公钥已经保存在本地了,从而跳过警告部分。
  • 如果该主机上known_hosts文件被删除,互信仍然可以使用,但是会有告警提示信息。如果需要规避告警提示信息,请将/etc/ssh/ssh_config配置文件中,StrictHostKeyChecking参数设置为no。

3.将互信文件分发到其它所有主机上。在本例中,需要将plat1上的互信文件分发到plat2和plat3上。

a. 将互信文件分发到plat2上。Password输入拷贝目标主机的密码。

""scp -r ~/.ssh plat2:~

示例如下:

""plat1:~ # scp -r ~/.ssh plat2:~
Password: 
authorized_keys                 100%  796     0.8KB/s   00:00    
id_rsa                          100% 1675     1.6KB/s   00:00    
id_rsa.pub                      100%  398     0.4KB/s   00:00    
known_hosts                     100% 1089     1.1KB/s   00:00    

b. 将互信文件分发到plat3上。Password输入拷贝目标主机的密码。

""scp -r ~/.ssh plat3:~

示例如下:

""plat1:~ # scp -r ~/.ssh plat3:~
Password: 
authorized_keys                 100%  796     0.8KB/s   00:00    
id_rsa                          100% 1675     1.6KB/s   00:00    
id_rsa.pub                      100%  398     0.4KB/s   00:00    
known_hosts                     100% 1089     1.1KB/s   00:00    

4.查看互信是否建成功,可以互相ssh主机名。输入exit退出。

""plat1:~ # ssh plat2
Last login: Sat Jun 20 14:01:07 2020
plat2:~ # exit
logout
Connection to plat2 closed.
plat1:~ # 

说明:

如果openGauss集群包含三个以上服务器节点,操作过程和上述步骤类似。假设节点名为plat1、plat2、plat3、……。第一步,需要在plat1上生成root用户的本机授权文件;第二步,需要收集所有待建互信主机(plat1、plat2、plat3、……)的公钥并写入到本机known_hosts文件中;第三步,需要将互信文件分发到除本机外的所有其它主机(plat2、plat3、……)上;第四步,检查互信是否建立成功。

删除root用户互信

为了避免root用户互信可能存在的安全隐患,因此建议用户在使用完成后,立即删除各主机上root用户的互信。

1.删除openGauss数据库各节点上的互信相关文件/root/.ssh。

""rm –rf ~/.ssh

2.查看互信是否删除成功,可以互相ssh主机名,提示不能互信,互信删除成功。

""plat1:~ # ssh plat2

he authenticity of host ' plssat2 (plat2)' can't be established.

ECDSA key fingerprint is SHA256:Q4DPRedFytsjsJSKf4l2lHKuzVw4prq3bIUCNVKIa7M.

ECDSA key fingerprint is MD5:e2:77:6c:aa:4c:43:5f:f2:c4:58:ec:d5:53:de:7c:fc.

Are you sure you want to continue connecting (yes/no)?

示例

root用户建立互信示例:

""plat1:~ # gs_sshexkey -f /opt/software/hostfile -W Gauss_123
Checking network information.
All nodes in the network are Normal.
Successfully checked network information.
Creating SSH trust.
Creating the local key file.
Successfully created the local key files.
Appending local ID to authorized_keys.
Successfully appended local ID to authorized_keys.
Updating the known_hosts file.
Successfully updated the known_hosts file.
Appending authorized_key on the remote node.
Successfully appended authorized_key on all remote node.
Checking common authentication file content.
Successfully checked common authentication content.
Distributing SSH trust file to all node.
Successfully distributed SSH trust file to all node.
Verifying SSH trust on all hosts.
Successfully verified SSH trust on all hosts.
Successfully created SSH trust.

普通用户建立互信示例:

""gaussdb@plat1:~ > gs_sshexkey -f /opt/software/hostfile -W Gauss_123
Checking network information.
All nodes in the network are Normal.
Successfully checked network information.
Creating SSH trust.
Creating the local key file.
Successfully created the local key files.
Appending local ID to authorized_keys.
Successfully appended local ID to authorized_keys.
Updating the known_hosts file.
Successfully updated the known_hosts file.
Appending authorized_key on the remote node.
Successfully appended authorized_key on all remote node.
Checking common authentication file content.
Successfully checked common authentication content.
Distributing SSH trust file to all node.
Successfully distributed SSH trust file to all node.
Verifying SSH trust on all hosts.
Successfully verified SSH trust on all hosts.
Successfully created SSH trust.

安全模式下建立互信示例,需要用户根据提示,手动输入建立互信的用户密码(建议使用安全模式):

""plat1:~ # gs_sshexkey -f /opt/software/hostfile
Please enter password for current user[root].
Password: 
Checking network information.
All nodes in the network are Normal.
Successfully checked network information.
Creating SSH trust.
Creating the local key file.
Appending local ID to authorized_keys.
Successfully appended local ID to authorized_keys.
Updating the known_hosts file.
Successfully updated the known_hosts file.
Appending authorized_key on the remote node.
Successfully appended authorized_key on all remote node.
Checking common authentication file content.
Successfully checked common authentication content.
Distributing SSH trust file to all node.
Successfully distributed SSH trust file to all node.
Verifying SSH trust on all hosts.
Successfully verified SSH trust on all hosts.
Successfully created SSH trust.

配置操作系统参数

openGauss要求各主机上的操作系统参数设置成一定的值,以满足系统运行的性能要求等。

这些参数有些会在openGauss安装环境准备阶段完成设置,且这些参数将直接影响openGauss的运行状态,请仅在确认必要时进行手动调整。方法如下:

1.以root用户身份登录服务器。

2.对文件“/etc/sysctl.conf”进行编辑修改。

具体参数的修改请参见操作系统参数。

3.执行如下命令使修改配置生效。

""sysctl -p

操作系统参数

表 1 操作系统参数

参数名称参数说明预安装时是否由脚本自动设置推荐取值
net.ipv4.tcp_max_tw_buckets表示同时保持TIME_WAIT状态的TCP/IP连接最大数量。如果超过所配置的取值,TIME_WAIT将立刻被释放并打印警告信息。10000
net.ipv4.tcp_tw_reuse允许将TIME-WAIT状态的sockets重新用于新的TCP连接。- 0表示关闭。

文件系统参数

  • soft nofile

    说明:soft nofile表示软限制,用户使用的文件句柄数量可以超过该限制,但是如果超过会有告警信息。

    推荐取值:1000000

  • hard nofile

    说明:hard nofile表示硬限制,是一个严格的限制,用户使用的文件句柄数量一定不能超过该设置。

    推荐取值:1000000

  • stack size

    说明:线程堆栈大小。

    推荐值:3072

transparent_hugepage设置

openGauss默认关闭使用transparent_hugepage服务,并将关闭命令写入操作系统启动文件。

文件句柄设置

需要对文件句柄数进行手动设置时,使用root用户执行如下命令进行参数修改:

""echo "* soft nofile 1000000" >>/etc/security/limits.conf
echo "* hard nofile 1000000" >>/etc/security/limits.conf

完成修改后,需重启操作系统使得设置的参数生效。

表 2 文件句柄数设置

参数名说明预安装时是否由脚本自动设置推荐取值
* soft nofilesoft nofile表示软限制,即表示任何用户能打开的最大文件数量为1000000,不管它开启多少个shell。1000000
* hard nofilehard nofile表示硬限制,软限制要小于等于硬限制。1000000

系统支持的最大进程数设置

需要对系统支持的最大进程数进行手动设置时,执行如下命令打开conf文件。

""vim /etc/security/limits.d/90-nproc.conf

修改* soft nproc参数。

完成修改后,需重启操作系统使得设置的参数生效。

表 3 系统支持的最大进程数设置

参数名说明预安装时是否由脚本自动设置推荐取值
* soft nprocsoft nproc参数用来限制每个用户的最大processes数量。unlimited

网卡参数配置

表 4 网卡参数配置

参数名说明预安装时是否由脚本自动设置推荐取值
rx网卡接收队列长度设置4096
tx网卡传送队列长度设置4096

须知:

  • 网卡参数配置功能只针对万兆及万兆以上级别的业务网卡,即backIp1所绑定的网卡。
  • 设置网卡参数的命令只有在设置成功后,才会被写入系统启动文件。执行失败的信息会被记入后台日志中。

执行安装

执行前置脚本准备好openGauss安装环境之后,按照启动安装过程部署openGauss。

前提条件

  • 已成功执行前置脚本gs_preinstall。即完成了准备安装用户及环境。
  • 所有服务器操作系统和网络均正常运行。
  • 用户需确保各个主机上的locale保持一致。

操作步骤

  1. 检查安装包和openGauss配置文件在规划路径下是否已存在,如果没有,重新执行预安装,确保预安装成功,再执行以下步骤。

    说明:

    omm用户需要拥有安装包所在目录及子目录的权限。

  2. 登录到openGauss的主机,并切换到omm用户。

    ""su - omm
    

    说明:

    • omm指的是前置脚本gs_preinstall中-U参数指定的用户。
    • 安装脚本gs_install必须以前置脚本中指定的omm执行,否则,脚本执行会报错。
    • openGauss在海思高版本芯片上编译的不能在海思低版本芯片的服务器上运行,比如Hi620编译的版本不能在Hi1616环境上运行。
  3. 使用gs_install安装openGauss。若为环境变量分离的模式安装的数据库需要source环境变量分离文件ENVFILE。

    ""gs_install -X /opt/software/openGauss/cluster_config.xml
    

    /opt/software/openGauss/cluster_config.xml为openGauss配置文件的路径。在执行过程中,用户需根据提示输入数据库的密码,密码具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码。

    设置的密码要符合复杂度要求:

    • 最少包含8个字符,最多包含16个字符。
    • 不能和用户名、当前密码(ALTER)、或当前密码反序相同。
    • 至少包含大写字母(A-Z)、小写字母(a-z)、数字、非字母数字字符(限定为~!@#$%^&*()-_=+|[{}];:,<.>/?)四类字符中的三类字符。

    安装过程中会生成ssl证书,证书存放路径为{gaussdbAppPath}/share/sslcert/om,其中{gaussdbAppPath}为openGauss配置文件中指定的程序安装目录。

    日志文件路径下会生成两个日志文件:“gs_install-YYYY-MMDD_HHMMSS.log”和“gs_local-YYYY-MM-DD_HHMMSS.log”。

    说明:

    • openGauss支持字符集的多种写法:gbk/GBK、UTF-8/UTF8/utf8/utf-8和Latine1/latine1。
    • 安装时若不指定字符集,默认字符集为SQL_ASCII,为简化和统一区域loacle默认设置为C,若想指定其他字符集和区域,请在安装时使用参数–gsinit-parameter="–locale=LOCALE"来指定,LOCALE为新数据库设置缺省的区域。
    ""例如用户要将数据库编码格式初始化为UTF-8,可以采用如下步骤:
    
    用locale -a |grep utf8命令查看系统支持UTF-8编码的区域,如下:
    ```
    omm@linux:~>  locale -a|grep utf8
    ```
    显示类似如下信息,其中en_US.utf8表示区域en_US支持UTF-8编码。
    ```
    en_SG.utf8 
    en_US.utf8 
    ```
    根据需要选择区域,如en_US.utf8,初始化数据库时加入--locale=en_US.utf8选项进行安装,示例如下:
    ```
    gs_install -X /opt/software/openGauss/cluster_config.xml --gsinit-parameter="--locale=en_US.utf8"
    ```
    
  4. 安装执行成功之后,需要手动删除主机root用户的互信,即删除openGauss数据库各节点上的互信文件。

    ""rm –rf ~/.ssh
    

安装生成的目录

安装后的目录及各目录下的文件说明请参见表1。

表 1 安装生成的目录

序号项目目录说明目录子目录说明
1openGauss安装目录/opt/huawei/install/appbin存放数据库二进制文件的目录。
etccgroup工具配置文件。
include存放数据库运行所需要的头文件。
lib存放数据库的库文件的目录。
share存放数据库运行所需要的公共文件,如配置文件模板。
2openGauss数据目录/opt/huawei/install/data/dn/DBnode实例的数据目录。
3openGauss日志目录/var/log/omm/用户名bin二进制程序的日志目录。
gs_profile数据库内核性能日志目录。
omOM的日志目录。例如:部分local脚本产生的日志、增删数据库节点接口的日志、gs_om接口的日志、前置接口的日志、节点替换接口的日志等。
pg_audit数据库审计日志目录。
pg_log数据库节点实例的运行日志目录。
4openGauss系统工具目录/opt/huawei/install/omscript用于openGauss用户进行openGauss管理的脚本文件。
libbin目录下的二进制文件依赖的库文件。
5openGauss临时文件目录/opt/huawei/tmp用于放置临时文件。

示例

执行安装:

""omm@plat1:~> gs_install -X /opt/software/openGauss/cluster_config.xml
Parsing the configuration file.
Check preinstall on every node.
Successfully checked preinstall on every node.
Creating the backup directory.
Successfully created the backup directory.
begin deploy..
Installing the cluster.
begin prepare Install Cluster..
Checking the InstallationGuide environment on all nodes.
begin install Cluster..
Installing applications on all nodes.
Successfully installed APP.
begin init Instance..
encrypt ciper and rand files for database.
Please enter password for database:
Please repeat for database:
begin to create CA cert files
The sslcert will be generated in /opt/gaussdb/cluster/app/share/sslcert/om
Cluster InstallationGuide is completed.
Configuring.
Deleting instances from all nodes.
Successfully deleted instances from all nodes.
Checking node configuration on all nodes.
Initializing instances on all nodes.
Updating instance configuration on all nodes.
Check consistence of memCheck and coresCheck on DN nodes.
Successful check consistence of memCheck and coresCheck on all nodes.
Configuring pg_hba on all nodes.
Configuration is completed.
Successfully started cluster.
Successfully installed application.

错误排查

如果安装失败请根据openGauss日志目录下的“gs_install-YYYY-MM-DD_HHMMSS.log”和“gs_local-YYYY-MM-DD_HHMMSS.log”中的日志信息排查错误

—-结束
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/629810.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MOVEit Transfer 漏洞似乎被广泛利用

Progress Software 已在其文件传输软件 MOVEit Transfer 中发现一个漏洞&#xff0c;该漏洞可能导致权限提升和潜在的未经授权访问环境&#xff0c;该公司在一份安全公告中表示。 在 MOVEit Transfer Web 应用程序中发现了一个 SQL 注入漏洞&#xff0c;可能允许未经身份验证…

【ARMv8 SIMD和浮点指令编程】NEON 逻辑指令——与或非有多少?

NEON 逻辑指令主要包括与、或、异或、位清除、或非、为 False 时按位插入、为 True 时按位插入和按位选择指令,下面我们来详细学习这些指令。 一、逻辑指令 1.1 AND 按位与(向量),该指令将两个源 SIMD&FP 寄存器按位与,并将结果写入目标 SIMD&FP 寄存器。 AND …

基于JDBC的账务管理系统

一、项目介绍 1.1 项目目标 本项目为JAVAEE基础和数据库的综合项目&#xff0c;包含了若干个知识点&#xff0c;达到将从基础班到现在所学的知识综合使用&#xff0c;提高了我们对项目的理解与知识点的运用。熟练View层、Service层、Dao层之间的方法相互调用操作熟练使用工具类…

chatgpt赋能python:Python怎么入侵别人微信:一种黑客行为的技术探讨

Python怎么入侵别人微信&#xff1a;一种黑客行为的技术探讨 随着社交媒体微信的普及和使用程度的不断提高&#xff0c;对微信的攻击和入侵成为了目前互联网安全领域的热点问题之一。其中&#xff0c;Python编程语言的广泛应用和强大的功能使得其逐渐成为了微信黑客行为的利器…

robots.txt的作用是什么,看完了我默默加在了自己网站上

文章目录 背景robots.txt的主要作用使用示范User-agentDisallowAllowSitemap 总结 背景 最近在研究网站SEO相关的东西&#xff0c;第一次接触到robots.txt&#xff0c;才发现实际上很多网站都用到了它&#xff0c;尤其是对搜索引擎依赖特别高的C端系统或者网站&#xff0c;是一…

论文解读:SuperGlue: Learning Feature Matching with Graph Neural Networks

SuperGlue: Learning Feature Matching with Graph Neural Networks 发表时间&#xff1a;2020 论文地址&#xff1a;https://arxiv.org/abs/1911.11763 项目地址&#xff1a;http://github.com/magicleap/SuperGluePretrainedNetwork。 本文介绍了一种通过联合寻找对应和拒绝…

Git介绍及安装

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;Git ⭐如果觉得文章写的不错&#xff0c;欢迎点个关注一键三连&#x1f609;有写的不好的地方也欢迎指正&#x…

通往AGI之路;首个自研全开源自然语言低代码 GPT 应用快速开发框架PromptAppGPT

&#x1f989; AI新闻 &#x1f680; 商汤科技将发布元萝卜AI下棋机器人新品(围棋版) 摘要&#xff1a;商汤科技将于6月14日召开元萝卜AI下棋机器人新品发布会&#xff0c;预计会发布下棋机器人(围棋版)。这款AI下棋机器人融合了传统围棋文化和人工智能技术&#xff0c;拥有落…

论文解读:Segment Anything

Segment Anything 发表时间&#xff1a;2023 论文地址&#xff1a;https://arxiv.org/abs/2304.02643 项目地址&#xff1a;https://github.com/facebookresearch/segment-anything 介绍了Segment Anything&#xff08;SA&#xff09;项目&#xff1a;一个新的任务、模型集和…

ViT 论文逐段精读——B站up:跟李沐学AI讲解笔记

https://www.bilibili.com/video/BV15P4y137jb Vision Transformer 挑战了 CNN 在 CV 中绝对的统治地位。Vision Transformer 得出的结论是如果在足够多的数据上做预训练&#xff0c;在不依赖 CNN 的基础上&#xff0c;直接用自然语言上的 Transformer 也能 CV 问题解决得很好…

PotPlayer结合alist播放网盘视频

目录 1. PotPlayer的下载安装2. 新建专辑3. 测试播放视频总结 欢迎关注 『发现你走远了』 博客&#xff0c;持续更新中 欢迎关注 『发现你走远了』 博客&#xff0c;持续更新中 书接上文 AList挂载工具安装搭建使用教程&#xff0c;快速访问多个网盘的资源&#xff08;保姆级图…

12-git-pycharm配置.ignore文件

pycharm配置.ignore文件 前言安装插件使用添加其他忽略文件 前言 在开发中经常需要配置提交git的忽略文件&#xff0c;本篇来学习下使用pycharm自动生成.ignore文件 安装插件 Files->setting->Plugins&#xff0c;搜索ignore 使用 右键项目根目录&#xff0c;新建.…

AI大模型私有化部署流程

私有化部署AI大模型需要一定的GPU支持&#xff0c;适合有一定经济实力的公司&#xff0c;今天和大家分享一下如何进行私有化部署&#xff0c;这涉及很专业的知识&#xff0c;包括硬件和软件环境、模型部署、API集成、测试验证等&#xff0c;这里只是初步讨论一下&#xff0c;希…

chatgpt赋能python:Python分词:从原理到实践

Python分词&#xff1a;从原理到实践 分词是自然语言处理中的关键步骤之一&#xff0c;它是指将一句话或一段文本分成若干个词语&#xff08;token&#xff09;并进行标注。Python作为一种非常流行的编程语言&#xff0c;具备强大的文本处理能力&#xff0c;而分词也是它的强项…

chatgpt赋能python:Python函数调用函数

Python函数调用函数 Python中的函数是一组可重用的代码&#xff0c;用于执行特定的任务。当我们需要在一个程序中执行类似的操作多次时&#xff0c;就可以定义一个函数来完成该操作&#xff0c;这样可以减少重复代码&#xff0c;使程序更加易读、易维护。 在Python中&#xf…

OpenCV实战——提取视频中的前景对象

OpenCV实战——提取视频中的前景对象 0. 前言1. 提取视频中的前景对象2. 混合高斯方法3. 完整代码相关链接 0. 前言 当固定摄像机观察场景时&#xff0c;背景基本保持不变。在这种情况下&#xff0c;我们真正感兴趣的目标是场景中的移动物体。为了提取这些前景物体&#xff0c…

关系数据模型

1.键的概念 超键&#xff1a;在一个关系中&#xff0c;能唯一标识元组的属性或属性集&#xff08;可能存在多余的属性&#xff09; 侯选建&#xff1a;如果一个属性集能唯一标识元组&#xff08;超键&#xff09;&#xff0c;且又不含有多余的属性&#xff0c;那么这个属性集…

C#,码海拾贝(40)——求解“线性最小二乘问题”的“豪斯荷尔德Householder变换法”之C#源代码

using System; namespace Zhou.CSharp.Algorithm { /// <summary> /// 求解线性方程组的类 LEquations /// 原作 周长发 /// 改编 深度混淆 /// </summary> public static partial class LEquations { /// <summary> /…

6月9日复盘总结|8H30min|7:30-7:50

7:20-8:10 乐词*93 【50min】 8:20-9:20 背书 【1h】 9:20-10:20 词汇笔记 【1h】 10:20-11:00 词汇笔记 【50min】 11:00-12:10 去上马吃饭啦 12:20-13:00 不背单词 【40min】 13:00-13:30 收作业 13:30-14:30 午休♨️ 14:40-15:59 不背单词 *1…

node.js的http模块

http模块 http协议:超文本传输协议&#xff08;互联网应用最广泛的协议之一&#xff09; http请求方法&#xff1a; get获取数据 post新增数据 put/patch更新数据 delete删除数据 head/options/connect/trace URL统一资源定位符&#xff0c;其本身也是一个字符串。 客户端与…