创建XML配置文件
安装openGauss前需要创建cluster_config.xml文件。cluster_config.xml文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。用于告知openGauss如何部署。用户需根据不同场景配置对应的XML文件。
下面以一主一备的方案为例,说明如何创建XML配置文件。
配置数据库名称及各项目录
在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,与数据库节点名称列表一一对应 -->
<PARAM name="backIp1s" value="192.168.0.1,192.168.0.2"/>
是否开启DN自选主 -->
<PARAM name="enable_dcf" value="on"/>
开启开关后对应的节点IP、PORT和角色信息 -->
<PARAM name="dcf_config" value=" [{"stream_id":1,"node_id":1,"ip":"8.92.1.85","port":16683,"role":"LEADER"},{"stream_id":1,"node_id":2,"ip":"8.92.1.86","port":16683,"role":"FOLLOWER"},{"stream_id":1,"node_id":3,"ip":"8.92.1.87","port":16683,"role":"FOLLOWER"}]"/>
</CLUSTER>
须知:
“/opt/huawei/install/om”存放互信等工具,为了避免权限问题,不要把实例数据目录放在此目录下。
安装目录和数据目录需为空或者不存在,否则可能导致安装失败。
在对数据库节点的实例进行具体配置时,需确保配置的目录之间不相互耦合。即各个配置目录不关联,删除其中任意一个目录,不会级联删除其它目录。如gaussdbAppPath为“/opt/huawei/install/app”,gaussdbLogPath为“/opt/huawei/install/app/omm”。当gaussdbAppPath目录被删除时,会级联删除gaussdbLogPath目录,从而引起其它问题。
若需要安装脚本自动创建安装用户时,各配置的目录需保证不与系统创建的默认用户目录耦合关联。
配置openGauss路径和实例路径时,路径中不能包含“|”,“;”,“&”,“$”,“<”,“>”,“`”,“\\”,“’”,“\”,“,”,“{”,“}”,“(”,“)”,“[”,“]”,“~”,“*”,“?”特殊字符。
配置数据库节点名称时,请通过hostname命令获取数据库节点的主机名称,替换示例中的node1_hostname,node2_hostname。
表 1 参数说明
配置Host基本信息
说明:
每台Host服务器都必须有如下信息,如下示例以node1为例。
加粗字体内容为示例,可自行替换。每行信息均有注释进行说明。
每台服务器上的节点部署信息 -->
<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 参数说明
说明: 配置文件中所有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"/>
配置数据库主节点信息
加粗字体内容为示例,可自行替换。每行信息均有注释进行说明。
数据库主节点配置以下信息。
<!--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"/>
<!--DCF的数据文件配置-->
<PARAM name="dcf_data_path1" value="/opt/huawei/install/data/dn1,/opt/huawei/install/data/dn2"/>
<!--DCF的运行日志-->
<PARAM name="dcf_log_path1" value="/opt/huawei/install/data/dn1,/opt/huawei/install/data/dn2"/>
表 1 参数说明
可选参数,用于指定当前数据库中xlog存储路径。此目录为数据库xlog日志存储目录,只支持绝对路径。如不指定,则默认存放在数据目录的pg_xlog目录下。 |
||
示例
单节点配置文件
<?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>
一主一备配置文件
<?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>
一主一备一级联配置文件
<?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"/>
<!--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"/>
</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"/>
</DEVICE>
</DEVICELIST>
</ROOT>
一主二备配置文件
<?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,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" />
数据库core文件目录-->
<PARAM name="corePath" value="/opt/huawei/corefile"/>
节点IP,与数据库节点名称列表一一对应 -->
<PARAM name="backIp1s" value="192.168.0.1,192.168.0.2,192.168.0.3"/>
</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="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>
节点2上的部署信息 -->
<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>
节点3上的部署信息 -->
<DEVICE sn="node3_hostname">
节点3的主机名称 -->
<PARAM name="name" value="node3_hostname"/>
节点3所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
节点3的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.0.3"/>
<PARAM name="sshIp1" value="192.168.0.3"/>
</DEVICE>
</DEVICELIST>
</ROOT>
一主三备配置文件
<?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,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" />
数据库core文件目录-->
<PARAM name="corePath" value="/opt/huawei/corefile"/>
节点IP,与数据库节点名称列表一一对应 -->
<PARAM name="backIp1s" value="192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4"/>
</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="26000"/>
<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>
节点2上的部署信息 -->
<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>
节点3上的部署信息 -->
<DEVICE sn="node3_hostname">
节点3的主机名称 -->
<PARAM name="name" value="node3_hostname"/>
节点3所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
节点3的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.0.3"/>
<PARAM name="sshIp1" value="192.168.0.3"/>
</DEVICE>
节点4上的部署信息 -->
<DEVICE sn="node4_hostname">
节点4的主机名称 -->
<PARAM name="name" value="node4_hostname"/>
节点4所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
节点4的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.0.4"/>
<PARAM name="sshIp1" value="192.168.0.4"/>
</DEVICE>
</DEVICELIST>
</ROOT>
一主四备配置文件
<?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,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" />
数据库core文件目录-->
<PARAM name="corePath" value="/opt/huawei/corefile"/>
节点IP,与数据库节点名称列表一一对应 -->
<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>
节点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,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>
节点2上的部署信息 -->
<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>
节点3上的部署信息 -->
<DEVICE sn="node3_hostname">
节点3的主机名称 -->
<PARAM name="name" value="node3_hostname"/>
节点3所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
节点3的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.0.3"/>
<PARAM name="sshIp1" value="192.168.0.3"/>
</DEVICE>
节点4上的部署信息 -->
<DEVICE sn="node4_hostname">
节点4的主机名称 -->
<PARAM name="name" value="node4_hostname"/>
节点4所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
节点4的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.0.4"/>
<PARAM name="sshIp1" value="192.168.0.4"/>
</DEVICE>
节点5上的部署信息 -->
<DEVICE sn="node5_hostname">
节点5的主机名称 -->
<PARAM name="name" value="node5_hostname"/>
节点5所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
节点5的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.0.5"/>
<PARAM name="sshIp1" value="192.168.0.5"/>
</DEVICE>
</DEVICELIST>
</ROOT>