openGauss源码解析(16)

openGauss源码解析:第2章 openGauss开发快速入门(6)

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>

posted @ 2024-04-15 15:55  openGauss-bot  阅读(17)  评论(0编辑  收藏  举报