第一步:下载并安装好虚拟机第一步下载并安装好虚拟机
VMware-workstation-full-17.5.2-23775571.exe
虚拟机软件版本好17.5.2已经安装完成
秘钥许可证4A4RR-813DK-M81A9-4U35H-06KND
安装完成之后的界面如下:
第二步下载openEuler操作系统
openEuler下载 | openEuler ISO镜像 | openEuler社区官网
下载完成后的界面如下:
文件名称为:openEuler-22.03-LTS-SP4-x86_64-dvd.iso
第三步(安装openEuler操作系统)
打开虚拟机软件,准备安装openEuler-22.03-LTS-SP4-x86_64-dvd.iso
注意:这里要安装2台欧拉操作系统的虚拟机,IP地址分别为165和166,所以以这个命名好记。
注意:内存设置为4GB,是因为后期要安装高斯数据库。
注意:一定要选择桥接网络,操作系统安装完成之后,可以直接访问外网。
到此,虚拟机(165)配置完成。
第四步:开始安装操作系统
注意:默认自动分区
我们这里的密码是:Gauss_234@2024,当然也可以输入其他密码确定即可。
至此,操作系统安装完成。
第五步:配置操作系统远程操作
输入用户名:root 密码:Gauss_234@2024
修改IP地址的配置,修改IP地址为192.168.0.165
SSH配置完成。然后重启操作系统
第六步(复制虚拟机165到虚拟机166)
本次安装需要完成主从模式配置,至少需要2台虚拟机。
下面修改IP地址为192.168.0.166,其他配置不动。
注意:只将165修改为166,然后执行wq命令保存
重新进入之后的界面如上所示,IP地址已修改,禁止了防火墙,启动了SSH远程服务。
第七步(安装openGauss6.0数据库)
下载数据库:
文件名称:openGauss-6.0.0-RC1-openEuler-64bit-all.tar.gz
主数据库 | 备数据库 |
192.168.0.165 | 192.168.0.166 |
用远程工具软件安装:
在192.168.0.165(主)安装:
上图表示165和166两台虚拟机可以远程控制了。
在165和166两台机器上同时配置omm用户:
groupadd dbgroup
useradd -g dbgroup omm
passwd omm
密码这里设置为 omm_234@2024
两台服务器上的omm用户创建完成
然后给 omm 授予 root 权限
chmod u+w /etc/sudoers
vi /etc/sudoers
追加如下内容
omm ALL=(ALL) NOPASSWD: ALL
两台服务器上保存即可。
给omm用户创建软件包路径并授权
mkdir -p /opt/software/openGauss
chmod +x /opt/software/openGauss/
chown -R omm:dbgroup /opt/software
在 root 用户下验证下述命令是否执行成功
注如果不成功,请检查上述 3 个步骤
su - omm -c 'cd /opt/software/openGauss/'
两台服务器都要执行,已成功
上传数据库安装文件到 /opt/software/openGauss目录下。
开始解压缩到scripts文件夹下面
因为是操作系统最小化安装,缺少不少基础命令,所以没有tar命令,重新下载安装。
DNF安装失败,需要用yum install tar 命令安装
安装成功。
解压缩成功
下一步是配置环境变量,因为6.0版本的数据库用了更高版本的pssh远程链接工具,不配置会出现很多错误,所以我们提前配置
vi /etc/profile
追击:
export packagePath=/opt/software/openGauss
export LD_LIBRARY_PATH=$packagePath/script/gspylib/clib:$LD_LIBRARY_PATH
然后执行
Source /etc/profile
执行缺少的安装包:
yum install libaio-devel flex bison ncurses-devel glibc-devel patch readline-devel libnsl2 bzip2 python3 expect
配置hosts主机
Vi /etc/hosts
hostnamectl set-hostname openGauss166
Vi /etc/selinux/config
重新启动操作系统
Reboot
检查防火墙是否关闭
systemctl status firewalld
systemctl disable firewalld.service
systemctl stop firewalld.service
修改/etc/profile
增加Lang=EN_US.UTF-8
然后执行Source /etc/profile
vi /etc/systemd/logind.conf
修改“RemoveIPC”值为“no”。
RemoveIPC=no
配置SSH互信(不用配置)
配置一主一从XML模板文件
配置cluster_config.xml放到
/opt/software/openGauss 这个位置下方
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<!-- 数据库名称 -->
<PARAM name="clusterName" value="openGauss" />
<!-- 数据库节点名称(hostname) -->
<PARAM name="nodeNames" value="openGauss165,openGauss166" />
<!-- 数据库安装目录-->
<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.165,192.168.0.166"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- 节点1上的部署信息 -->
<DEVICE sn="openGauss165">
<!-- 节点1的主机名称 -->
<PARAM name="name" value="openGauss165"/>
<!-- 节点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.165"/>
<PARAM name="sshIp1" value="192.168.0.165"/>
<!--dn-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="15400"/>
<PARAM name="dataNode1" value="/opt/huawei/install/data/dn,openGauss166,/opt/huawei/install/data/dn"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
<!-- 节点2上的节点部署信息,其中“name”的值配置为主机名称 -->
<DEVICE sn="openGauss166">
<!-- 节点2的主机名称 -->
<PARAM name="name" value="openGauss166"/>
<!-- 节点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.166"/>
<PARAM name="sshIp1" value="192.168.0.166"/>
</DEVICE>
</DEVICELIST>
</ROOT>
可以下载这个模板进行修改。我们这个是按照一主一备模式配置的
用ROOT用户模拟安装
执行命令:
在cd /opt/software/openGauss/scripts目录下
./gs_preinstall -U omm -G dbgroup -X /opt/software/openGauss/cluster_config.xml
报错需要执行pip3 install psutil命令
出现这种错误,需要切换到166,执行yum install tar命令
出现上面的错误,需要执行一下命令。
cp /opt/software/openGauss/script/gspylib/pssh/bin/pscp /usr/bin/pscp
cp /opt/software/openGauss/script/gspylib/pssh/bin/pssh /usr/bin/pssh
cp /opt/software/openGauss/script/gspylib/pssh/bin/TaskPool.py /usr/bin/TaskPool.py
出现上面的错误,需要执行一下命令。
cd /usr/bin目录下执行权限命令:
chmod +x pssh
chmod +x Pscp
chmod +x TaskPool.py
出现上面的错误,166上需要执行一下命令:
cp /opt/software/openGauss/script/gspylib/pssh/bin/pscp /usr/bin/pscp
cp /opt/software/openGauss/script/gspylib/pssh/bin/pssh /usr/bin/pssh
cp /opt/software/openGauss/script/gspylib/pssh/bin/TaskPool.py /usr/bin/TaskPool.py
cd /usr/bin目录下执行权限命令:
chmod +x pssh
chmod +x Pscp
chmod +x TaskPool.py
直接删除/opt/huawei目录
安装成功。
OMM用户真实安装
cd /opt/software/openGauss/script
./gs_install -X /opt/software/openGauss/cluster_config.xml
数据库密码:omm_234@2024
至此,openGauss6主从数据库安装完成。
第八步(数据库链接配置)
数据库配置文件修改
修改配置文件pg_hba.conf
增加了一行
修改配置文件postgresql.conf文件
配置完成,执行gs_om -t restart 重启数据库
Navicate链接高斯数据库
创建数据库,创建管理员用户
执行gsql -d postgres -r
create database trexdb;
CREATE USER trexx IDENTIFIED BY 'Trex@123';
alter user trexx sysadmin;
在166上的pg_hba.conf和postgresql.conf配置成和165一样的。
可以进行同步数据验证:
数据已做到可以实时同步了。
第九步(SpringBoot 获取主从数据库数据)
以上是链接165主数据库获取的数据。
以上是链接166数据库获取出来的数据,完全一样。
数据取出来了,因为用的是JDK21,所以需要用更高版本的驱动程序。
需要在pom,.xml增加
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.3</version>
</dependency>