一.创建XML配置文件
安装openGauss多机主从需要创建cluster_config.xml文件,cluster_config.xml文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。用于告知openGauss如何部署。用户需根据不同场景配置对应的XML文件。 官方提供各种模版,详情见链接,如一主一备,一主一备一级联,一主二备,一主三备,一主四备等等。
1.一主二备官方配置文件案例
cat cluster_config.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" />
<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.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
二.一主二备集群安装
创建XML配置文件---初始化安装环境---执行安装---安装验证
1.创建一主二备的XML配置文件
#master节点
cd /gauss/soft/
cat >>cluster_config.xml<<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<PARAM name="clusterName" value="Cluster_alibaby" />
<PARAM name="nodeNames" value="master,slave1,slave2" />
<PARAM name="gaussdbAppPath" value="/gauss/gaussdb/app" />
<PARAM name="gaussdbLogPath" value="/gauss/gaussdb/log" />
<PARAM name="tmpMppdbPath" value="/gauss/gaussdb/tmp"/>
<PARAM name="gaussdbToolPath" value="/gauss/gaussdb/om" />
<PARAM name="corePath" value="/gauss/gaussdb/corefile"/>
<PARAM name="backIp1s" value="192.168.77.161,192.168.77.162,192.168.77.163"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- node1上的节点部署信息 -->
<DEVICE sn="master">
<PARAM name="name" value="master"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.77.161"/>
<PARAM name="sshIp1" value="192.168.77.161"/>
<!--CM节点部署信息-->
<!--暂不配置
<PARAM name="cmsNum" value="1"/>
<PARAM name="cmServerPortBase" value="15000"/>
<PARAM name="cmServerListenIp1" value="192.168.77.161,192.168.77.162,192.168.77.163"/>
<PARAM name="cmServerHaIp1" value="192.168.77.161,192.168.77.162,192.168.77.163"/>
<PARAM name="cmServerlevel" value="1"/>
<PARAM name="cmServerRelation" value="master,slave1,slave2"/>
<PARAM name="cmDir" value="/gauss/gaussdb/data/cmserver"/>
-->
<!--dn数据库主节点部署信息-->
<!--DBnode-->
<PARAM name="dataNum" value="1"/>
<!--数据库端口号-->
<PARAM name="dataPortBase" value="15400"/>
<!--数据库主节点上的数据目录,及备机数据目录-->
<PARAM name="dataNode1" value="/gauss/gaussdb/data/dn,slave1,/gauss/gaussdb/data/dn,slave2,/gauss/gaussdb/data/dn"/>
<!--数据库主节点上的xlog目录,及备机xlog目录-->
<PARAM name="dataNodeXlogPath1" value="/gauss/gaussdb/gauss_xlog,/gauss/gaussdb/gauss_xlog,/gauss/gaussdb/gauss_xlog "/>
<!--数据库节点上设定同步模式的节点数-->
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
<!-- node2上的节点部署信息,其中“name”的值配置为主机名称 -->
<DEVICE sn="slave1">
<PARAM name="name" value="slave1"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.77.162"/>
<PARAM name="sshIp1" value="192.168.77.162"/>
<!-- cm -->
<!-- 暂不配置
<PARAM name="cmServerPortStandby" value="15000"/>
<PARAM name="cmDir" value="/gauss/gaussdb/data/cmserver"/>
-->
</DEVICE>
<!-- node3上的节点部署信息,其中“name”的值配置为主机名称 -->
<DEVICE sn="slave2">
<PARAM name="name" value="slave2"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.77.163"/>
<PARAM name="sshIp1" value="192.168.77.163"/>
<!-- cm -->
<!-- 暂不配置
<PARAM name="cmServerPortStandby" value="15000"/>
<PARAM name="cmDir" value="/opt/huawei/data/cmserver"/>
-->
</DEVICE>
</DEVICELIST>
</ROOT>
EOF
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
2.初始化安装环境
#master节点
#软件包准备
su - root
cd /gauss/soft
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.0.0/x86/openGauss-3.0.0-CentOS-64bit-all.tar.gz
tar xf openGauss-3.0.0-CentOS-64bit-all.tar.gz
tar xf openGauss-3.0.0-CentOS-64bit-om.tar.gz
#执行预安装 root用户执行
su - root
cd /gauss/soft/script
./gs_preinstall -U gauss -G gauss -X /gauss/soft/cluster_config.xml
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
预安装过程提示:
...
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: 输入root密码
...
Are you sure you want to create the user[gauss] and create trust for it (yes/no)? 输入yes
...
Please enter password for current user[gauss].
Password: 输入gauss用户当前密码(准备阶段创建的gauss用户)
....
Preinstallation succeeded. 最后提示预安装完成
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
3.执行安装
#master节点
su - gauss
gs_install -X /gauss/soft/cluster_config.xml
#可选参数
--gsinit-parameter="--locale=en_US.utf8" 或
--gsinit-parameter="--encoding=UTF8"
#内存参数调整
--dn-guc="cstore_buffers=256MB"
--dn-guc="max_process_memory=4GB"
--dn-guc="shared_buffers=256MB"
--dn-guc="bulk_write_ring_size=256MB
#安装执行成功之后,需要手动删除主机root用户(gauss用户互信没关系)的互信,即删除openGauss数据库各节点上的互信文件
#master
su - gauss
ssh slave1 #gauss用户免密登录可删除可不删除,,若要删除rm –rf ~/.ssh
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
执行安装过程提示:
4.安装验证 主备节点状态查看
#master节点
su - gauss
#查看集群状态
gs_om -t status
gs_om -t status --detail
#查看slvae的状态
gs_om -t status -h slave1
#关闭开启重启集群maser操作
gs_om -t stop|start|restart
#登录验证,数据库主节点端口15400
#非SSL连接登录
gsql -d postgres -p 15400
#SSL安全连接登录
gsql -h 127.0.0.1 -p 15400 -U gauss -W Alibaby@007 -d postgres
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
5.测试
#登录
su - gauss
gsql -h 127.0.0.1 -p 15400 -U gauss -W Alibaby@007 -d postgres
#创建用户并授权
create user alibaby with password 'Alibaby@007';
grant all privileges to alibaby;
create database alibabydb owner alibaby;
grant all privileges on all tables in schema public to alibaby;
grant all privileges on database alibabydb to alibaby;
\q
#增加alibaby用户的访问控制,只需master节点,其他节点会同步
gs_guc reload -I all -N all -h "host alibabydb alibaby 192.168.77.0/24 sha256"
#验证访问控制是否写进配置文件
grep alibaby /gauss/gaussdb/data/dn/pg_hba.conf
#alibaby用户登录
gsql -h 192.168.77.161 -p 15400 -U alibaby -W Alibaby@007 -d alibabydb
#创建测试数据
#创建表
CREATE TABLE student
(
std_id INT PRIMARY KEY,
std_name VARCHAR(20) NOT NULL,
std_sex VARCHAR(6),
std_birth DATE,
std_in DATE NOT NULL,
std_address VARCHAR(100)
);
#插入数据
INSERT INTO student(std_id,std_name,std_sex,std_birth,std_in,std_address) VALUES (1,'张一','男','1993-01-01','2011-09-01','江苏省南京市雨花台区');
INSERT INTO student(std_id,std_name,std_sex,std_birth,std_in,std_address) VALUES (2,'张二','男','1993-01-02','2011-09-01','江苏省南京市雨花台区');
INSERT INTO student(std_id,std_name,std_sex,std_birth,std_in,std_address) VALUES (3,'张三','男','1993-01-03','2011-09-01','江苏省南京市雨花台区');
INSERT INTO student(std_id,std_name,std_sex,std_birth,std_in,std_address) VALUES (4,'张四','男','1993-01-04','2011-09-01','江苏省南京市雨花台区');
#查询
select * from student;
#退出
\q
#登录slave1 slave2验证是否同步
#alibaby用户登录slave1
gsql -h 192.168.77.162 -p 15400 -U alibaby -W Alibaby@007 -d alibabydb
#查询验证
select * from student;
#alibaby用户登录slave2
gsql -h 192.168.77.163 -p 15400 -U alibaby -W Alibaby@007 -d alibabydb
#查询验证
select * from student;
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
三.一主一备一级联集群安装
1.创建一主一备一级联的XML配置文件
节点3增加 <PARAM name="cascadeRole" value="on"/> 其他都一样,不再部署。
#master节点
cd /gauss/soft/
cat >>cluster_config.xml<<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<PARAM name="clusterName" value="Cluster_alibaby" />
<PARAM name="nodeNames" value="master,slave1,slave2" />
<PARAM name="gaussdbAppPath" value="/gauss/gaussdb/app" />
<PARAM name="gaussdbLogPath" value="/gauss/gaussdb/log" />
<PARAM name="tmpMppdbPath" value="/gauss/gaussdb/tmp"/>
<PARAM name="gaussdbToolPath" value="/gauss/gaussdb/om" />
<PARAM name="corePath" value="/gauss/gaussdb/corefile"/>
<PARAM name="backIp1s" value="192.168.77.161,192.168.77.162,192.168.77.163"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- node1上的节点部署信息 -->
<DEVICE sn="master">
<PARAM name="name" value="master"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.77.161"/>
<PARAM name="sshIp1" value="192.168.77.161"/>
<!--CM节点部署信息-->
<!--暂不配置
<PARAM name="cmsNum" value="1"/>
<PARAM name="cmServerPortBase" value="15000"/>
<PARAM name="cmServerListenIp1" value="192.168.77.161,192.168.77.162,192.168.77.163"/>
<PARAM name="cmServerHaIp1" value="192.168.77.161,192.168.77.162,192.168.77.163"/>
<PARAM name="cmServerlevel" value="1"/>
<PARAM name="cmServerRelation" value="master,slave1,slave2"/>
<PARAM name="cmDir" value="/gauss/gaussdb/data/cmserver"/>
-->
<!--dn数据库主节点部署信息-->
<!--DBnode-->
<PARAM name="dataNum" value="1"/>
<!--数据库端口号-->
<PARAM name="dataPortBase" value="15400"/>
<!--数据库主节点上的数据目录,及备机数据目录-->
<PARAM name="dataNode1" value="/gauss/gaussdb/data/dn,slave1,/gauss/gaussdb/data/dn,slave2,/gauss/gaussdb/data/dn"/>
<!--数据库主节点上的xlog目录,及备机xlog目录-->
<PARAM name="dataNodeXlogPath1" value="/gauss/gaussdb/gauss_xlog,/gauss/gaussdb/gauss_xlog,/gauss/gaussdb/gauss_xlog "/>
<!--数据库节点上设定同步模式的节点数-->
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
<!-- node2上的节点部署信息,其中“name”的值配置为主机名称 -->
<DEVICE sn="slave1">
<PARAM name="name" value="slave1"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.77.162"/>
<PARAM name="sshIp1" value="192.168.77.162"/>
<!-- cm -->
<!-- 暂不配置
<PARAM name="cmServerPortStandby" value="15000"/>
<PARAM name="cmDir" value="/gauss/gaussdb/data/cmserver"/>
-->
</DEVICE>
<!-- node3上的节点部署信息,其中“name”的值配置为主机名称 -->
<DEVICE sn="slave2">
<PARAM name="name" value="slave2"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.77.163"/>
<PARAM name="sshIp1" value="192.168.77.163"/>
<PARAM name="cascadeRole" value="on"/>
<!-- cm -->
<!-- 暂不配置
<PARAM name="cmServerPortStandby" value="15000"/>
<PARAM name="cmDir" value="/opt/huawei/data/cmserver"/>
-->
</DEVICE>
</DEVICELIST>
</ROOT>
EOF
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
所有评论(0)