openGauss数据库源码解析 | openGauss开发快速入门(4)

2.1.6  创建XML配置文件

安装openGauss前需要创建cluster_config.xml文件。cluster_config.xml文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。用于告知openGauss如何部署。用户需根据不同场配置对应的XML(extensible markup language,可扩展标记语言)文件。

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

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

在“script/gspylib/etc/conf/cluster_config_template.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"/> 
   
  </CLUSTER>

配置文件中参数说明请见表2-5。

表2-5  参数说明

实例类型

参数

说明

整体信息

clusterName

openGauss名称

nodeNames

openGauss中主机名称

通过hostname命令可以获取数据库节点的主机名称

backIp1s

主机在后端存储网络中的IP地址(内网IP)。所有openGauss主机使用后端存储网络通信

gaussdbAppPath

openGauss程序安装目录。此目录应满足如下要求。

  • 磁盘空间>1GB
  • 与数据库所需其他路径相互独立,没有包含关系

gaussdbLogPath

openGauss运行日志和操作日志存储目录。此目录应满足如下要求。

  • 磁盘空间建议根据主机上的数据库节点数规划。数据库节点预留1GB空间的基础上,再适当预留冗余空间
  • 与openGauss所需其他路径相互独立,没有包含关系
  • 此路径可选。不指定的情况下,openGauss安装时会默认指定“$GAUSSLOG/安装用户名”作为日志目录

tmpMppdbPath

数据库临时文件存放目录

若不配置tmpMppdbPath,默认存放在/opt/huawei/wisequery/安装用户名_mppdb目录下,其中"opt/huawei/wisequery"是默认指定的数据库系统工具目录

gaussdbToolPath

openGauss系统工具目录,主要用于存放互信工具等。此目录应满足如下要求。

  • 磁盘空间>100MB
  • 固定目录,与数据库所需其他目录相互独立,没有包含关系
  • 此目录可选。不指定的情况下,openGauss安装时会默认指定“/opt/huawei/wisequery”作为数据库系统工具目录

corePath

openGauss core文件的指定目录

配置数据库名称及各项目录时请注意如下事项。

(1) “/opt/huawei/install/om”目录存放互信等工具,具有特殊权限。为了避免权限冲突问题,不要将实例数据目录放在此目录下。

(2) 安装目录和数据目录需为空或者不存在,否则可能导致安装失败。

数据库节点的实例目录之间不相互耦合。即各个配置目录不关联,删除其中任意一个目录,不会级联删除其他目录。如gaussdbAppPath为"/opt/huawei/install/app",gaussdbLogPath为"/opt/huawei/install/app/omm"。当gaussdbAppPath目录被删除时,会级联删除gaussdbLogPath目录,从而引起其他问题。

(3) 如果需要安装脚本自动创建安装用户时,配置的目录不能与系统创建的默认用户目录耦合关联。

(4) 配置openGauss路径和实例路径时,路径中不能包含这些引号中的特殊字符:“|;&$<>`\\'\"{}()[]~*?”。

2. 配置Host基本信息

每台Host服务器都必须有如下基本信息,加粗字体内容为示例,可自行替换。每行信息均有注释进行说明。

<!-- 每台服务器上的节点部署信息 --> 
<DEVICELIST> 
<!-- node1上的节点部署信息 --> 
<DEVICE sn="node1_hostname"> 
<!-- node1的hostname --> 
<PARAM name="name" value="node1_hostname"/> 
<!-- node1所在的AZ(availability zone,可用区)及AZ优先级 --> 
<PARAM name="azName" value="AZ1"/> 
<PARAM name="azPriority" value="1"/> 
<!-- node1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> 
<PARAM name="backIp1" value="192.168.0.1"/> 
<PARAM name="sshIp1" value="192.168.0.1"/>

配置文件中的参数说明请参见表2-6。

表2-6  参数说明

实例类型

参数

说明

整体信息

name

主机名称

azName

指定azName(available zone name),字符串(不能含有特殊字符),例如AZ1、AZ2、AZ3

azPriority

指定azPriority的优先级。优先级与azName无关

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"/>
3. 配置数据库主节点信息

数据库主节点需要配置以下信息,加粗字体内容为示例,可自行替换。每行信息均有注释进行说明。

<!--DBnode--> 
<PARAM name="dataNum" value="1"/> 
<!--DBnode端口号--> 
<PARAM name="dataPortBase" value="15400"/> 
<!--DBnode主节点上数据目录,及备机数据目录--> 
<PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node2_hostname,/opt/huawei/install/data/dn"/> 
<!--DBnode节点上设定同步模式的节点数--> 
<PARAM name="dataNode1_syncNum" value="0"/>

代码中的参数说明请参见表2-7。

表2-7  参数说明

实例类型

参数

说明

DBnode

dataNum

当前主机上需要部署的数据库节点个数

dataPortBase

数据库节点的基础端口号,默认值40000

dataNode1

用于指定当前主机上的数据库节点的数据存储目录。此目录为数据库的数据存储目录,应规划到数据盘上

dataNode1_syncNum

可选参数,用于指定当前集群中同步模式的节点数目。取值范围为0~数据库备机节点数

4. 一主一备配置文件示例

完整的一主一备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" />
        
        <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"/>
        
    </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"/>
            
  <!--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>

        <!-- 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"/>
</DEVICE>
    </DEVICELIST>
</ROOT>
  • 15
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值