一、概述
如果两台服务器root密码不一致,两种解决方案
1、手动对root设置免密,还可以一键式安装
2、主备机器分开搭建,初始化环境,然后数据库安装
二、搭建主从
1、环境基础配置
2、配置文件
vi /opt/software/openGauss/cluster_config.xml
和一键式搭建没任何不同
<?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>
3、手动创建用户和用户组
groupadd dbgrp
useradd -g dbgrp -d /home/omm -m omm
echo '123456'|passwd --stdin root
4、本地初始化环境
两台机器同样操作
cd /opt/software/openGauss/script
[root@prod script]# ./gs_preinstall -U omm -G dbgrp -L -X /opt/software/openGauss/cluster_config.xml
#-L仅给当前服务器初始化opengauss安装环境
初始化完成处理warning
cat >>/etc/sysctl.conf <<EOF
net.ipv4.tcp_retries1 = 5
net.ipv4.tcp_syn_retries = 5
EOF
sysctl -p
初始化完以后会在/etc/hosts写入一条
127.0.0.1 localhost #Gauss OM IP Hosts Mapping
5、配置主机名映射
两台服务器配置主机名映射
vi /etc/hosts
192.168.0.1 node1_hostname #Gauss OM IP Hosts Mapping
192.168.0.2 node2_hostname #Gauss OM IP Hosts Mapping
一定要在初始化以后配置,不然初始化完就会把这两条删掉
6、配置omm用户互信
两台服务器相同操作:
su - omm
vi /tmp/hostfile
192.168.0.1
192.168.0.2
gs_sshexkey -f /tmp/hostfile -W omm账户的密码
#哪个个用户执行gs_sshexkey会对hostfile中的地址分发免密
这个命令会对当前omm建立针对本机omm用户和另一台服务器omm用户间的免密
执行完需要重新登陆才能免密,但是一键式搭建就不需要
可以验证
ssh omm@192.168.0.1 #免密直接登录
ssh omm@192.168.0.2 #免密直接登录
一定要两台机器都执行,不然没执行的那一台使用gs_om命令重启集群的时候,需要输入另一台omm的密码
7、数据库安装
su - omm
gs_install -X /opt/software/openGauss/cluster_config.xml \
--gsinit-parameter="--encoding=UTF8" \
--dn-guc="max_connections=10000" \
--dn-guc="max_process_memory=12GB" \
--dn-guc="shared_buffers=6GB" \
--dn-guc="bulk_write_ring_size=128MB" \
--dn-guc="cstore_buffers=16MB" \
--dn-guc="session_timeout = 0" \
--dn-guc="password_effect_time = 0"
过程和一键式搭建一样
8、验证
1、查看集群状态
gs_om -t status --detail
[ Cluster State ]
cluster_state : Normal
redistributing : No
current_az : AZ_ALL
[ Datanode State ]
node node_ip instance state
----------------------------------------------------------------------------------
1 192.168.0.11 6001 /gauss/data/db1 P Primary Normal
2 192.168.0.12 6002 /gauss/data/db1 S Standby Normal
2、执行重启会两台机器都重启,并且主从保持原样
gs_om -t restart
3、停掉所有节点服务
gs_om -t stop